From 62cb40fef53ebb9a85c72470d78b3b443b802c2c Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 20 Oct 2021 20:28:24 +0300 Subject: [PATCH 01/54] Composer update --- composer.lock | 300 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 193 insertions(+), 107 deletions(-) diff --git a/composer.lock b/composer.lock index 341f2f7b27..df02b8d5ad 100644 --- a/composer.lock +++ b/composer.lock @@ -56,16 +56,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.2.10", + "version": "1.2.11", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8" + "reference": "0b072d51c5a9c6f3412f7ea3ab043d6603cb2582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/9fdb22c2e97a614657716178093cd1da90a64aa8", - "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0b072d51c5a9c6f3412f7ea3ab043d6603cb2582", + "reference": "0b072d51c5a9c6f3412f7ea3ab043d6603cb2582", "shasum": "" }, "require": { @@ -77,7 +77,7 @@ "phpstan/phpstan": "^0.12.55", "psr/log": "^1.0", "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" }, "type": "library", "extra": { @@ -112,7 +112,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.2.10" + "source": "https://github.com/composer/ca-bundle/tree/1.2.11" }, "funding": [ { @@ -128,7 +128,7 @@ "type": "tidelift" } ], - "time": "2021-06-07T13:58:28+00:00" + "time": "2021-09-25T20:32:43+00:00" }, { "name": "composer/semver", @@ -596,21 +596,21 @@ }, { "name": "filp/whoops", - "version": "2.14.3", + "version": "2.14.4", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "89584ce67dd32307f1063cc43846674f4679feda" + "reference": "f056f1fe935d9ed86e698905a957334029899895" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/89584ce67dd32307f1063cc43846674f4679feda", - "reference": "89584ce67dd32307f1063cc43846674f4679feda", + "url": "https://api.github.com/repos/filp/whoops/zipball/f056f1fe935d9ed86e698905a957334029899895", + "reference": "f056f1fe935d9ed86e698905a957334029899895", "shasum": "" }, "require": { "php": "^5.5.9 || ^7.0 || ^8.0", - "psr/log": "^1.0.1" + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "require-dev": { "mockery/mockery": "^0.9 || ^1.0", @@ -655,7 +655,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.14.3" + "source": "https://github.com/filp/whoops/tree/2.14.4" }, "funding": [ { @@ -663,7 +663,7 @@ "type": "github" } ], - "time": "2021-09-19T12:00:00+00:00" + "time": "2021-10-03T12:00:00+00:00" }, { "name": "getgrav/cache", @@ -778,16 +778,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.8.2", + "version": "1.8.3", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91" + "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", + "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", "shasum": "" }, "require": { @@ -824,13 +824,34 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, { "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" } ], @@ -847,9 +868,23 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.2" + "source": "https://github.com/guzzle/psr7/tree/1.8.3" }, - "time": "2021-04-26T09:17:50+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2021-10-05T13:56:00+00:00" }, { "name": "itsgoingd/clockwork", @@ -1118,21 +1153,21 @@ }, { "name": "maximebf/debugbar", - "version": "v1.17.1", + "version": "v1.17.2", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "0a3532556be0145603f8a9de23e76dc28eed7054" + "reference": "3541f09f09c003c4a9ff7ddb0eb3361a7f14d418" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0a3532556be0145603f8a9de23e76dc28eed7054", - "reference": "0a3532556be0145603f8a9de23e76dc28eed7054", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/3541f09f09c003c4a9ff7ddb0eb3361a7f14d418", + "reference": "3541f09f09c003c4a9ff7ddb0eb3361a7f14d418", "shasum": "" }, "require": { "php": "^7.1|^8", - "psr/log": "^1.0", + "psr/log": "^1|^2|^3", "symfony/var-dumper": "^2.6|^3|^4|^5" }, "require-dev": { @@ -1177,9 +1212,9 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.1" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.2" }, - "time": "2021-08-01T09:19:02+00:00" + "time": "2021-10-18T09:39:00+00:00" }, { "name": "miljar/php-exif", @@ -2048,16 +2083,16 @@ }, { "name": "rhukster/dom-sanitizer", - "version": "1.0.4", + "version": "1.0.6", "source": { "type": "git", "url": "https://github.com/rhukster/dom-sanitizer.git", - "reference": "ac73f962679dc83f8b3635b6182e15bfa67b3138" + "reference": "4db3ef1ac3d5505d044c5eb12aa106ba745bf129" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rhukster/dom-sanitizer/zipball/ac73f962679dc83f8b3635b6182e15bfa67b3138", - "reference": "ac73f962679dc83f8b3635b6182e15bfa67b3138", + "url": "https://api.github.com/repos/rhukster/dom-sanitizer/zipball/4db3ef1ac3d5505d044c5eb12aa106ba745bf129", + "reference": "4db3ef1ac3d5505d044c5eb12aa106ba745bf129", "shasum": "" }, "require": { @@ -2087,22 +2122,22 @@ "description": "A simple but effective DOM/SVG/MathML Sanitizer for PHP 7.4+", "support": { "issues": "https://github.com/rhukster/dom-sanitizer/issues", - "source": "https://github.com/rhukster/dom-sanitizer/tree/1.0.4" + "source": "https://github.com/rhukster/dom-sanitizer/tree/1.0.6" }, - "time": "2021-09-24T01:10:48+00:00" + "time": "2021-09-30T15:41:33+00:00" }, { "name": "rockettheme/toolbox", - "version": "1.5.9", + "version": "1.5.10", "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "2d6693235aaca2efaadb61c84dac927aaf4eabfa" + "reference": "d9738de013fa12df77754a0f11dded220b246efb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/2d6693235aaca2efaadb61c84dac927aaf4eabfa", - "reference": "2d6693235aaca2efaadb61c84dac927aaf4eabfa", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/d9738de013fa12df77754a0f11dded220b246efb", + "reference": "d9738de013fa12df77754a0f11dded220b246efb", "shasum": "" }, "require": { @@ -2143,9 +2178,9 @@ ], "support": { "issues": "https://github.com/rockettheme/toolbox/issues", - "source": "https://github.com/rockettheme/toolbox/tree/1.5.9" + "source": "https://github.com/rockettheme/toolbox/tree/1.5.10" }, - "time": "2021-04-14T19:52:40+00:00" + "time": "2021-09-29T16:50:13+00:00" }, { "name": "seld/cli-prompt", @@ -2472,16 +2507,16 @@ }, { "name": "symfony/http-client", - "version": "v4.4.27", + "version": "v4.4.31", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "ade6979785bb799e08912f3104959fb169739462" + "reference": "6b900ffa399e25203f30f79f6f4a56b89eee14c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/ade6979785bb799e08912f3104959fb169739462", - "reference": "ade6979785bb799e08912f3104959fb169739462", + "url": "https://api.github.com/repos/symfony/http-client/zipball/6b900ffa399e25203f30f79f6f4a56b89eee14c2", + "reference": "6b900ffa399e25203f30f79f6f4a56b89eee14c2", "shasum": "" }, "require": { @@ -2533,7 +2568,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v4.4.27" + "source": "https://github.com/symfony/http-client/tree/v4.4.31" }, "funding": [ { @@ -2549,7 +2584,7 @@ "type": "tidelift" } ], - "time": "2021-07-23T15:41:52+00:00" + "time": "2021-09-06T10:00:00+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3017,16 +3052,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.30", + "version": "v4.4.31", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "7f65c44c2ce80d3a0fcdb6385ee0ad535e45660c" + "reference": "1f12cc0c2e880a5f39575c19af81438464717839" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7f65c44c2ce80d3a0fcdb6385ee0ad535e45660c", - "reference": "7f65c44c2ce80d3a0fcdb6385ee0ad535e45660c", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1f12cc0c2e880a5f39575c19af81438464717839", + "reference": "1f12cc0c2e880a5f39575c19af81438464717839", "shasum": "" }, "require": { @@ -3086,7 +3121,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.30" + "source": "https://github.com/symfony/var-dumper/tree/v4.4.31" }, "funding": [ { @@ -3102,7 +3137,7 @@ "type": "tidelift" } ], - "time": "2021-08-04T20:31:23+00:00" + "time": "2021-09-24T15:30:11+00:00" }, { "name": "symfony/yaml", @@ -3313,25 +3348,24 @@ "packages-dev": [ { "name": "behat/gherkin", - "version": "v4.8.0", + "version": "v4.9.0", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "2391482cd003dfdc36b679b27e9f5326bd656acd" + "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/2391482cd003dfdc36b679b27e9f5326bd656acd", - "reference": "2391482cd003dfdc36b679b27e9f5326bd656acd", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4", + "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4", "shasum": "" }, "require": { "php": "~7.2|~8.0" }, "require-dev": { - "cucumber/cucumber": "dev-gherkin-16.0.0", + "cucumber/cucumber": "dev-gherkin-22.0.0", "phpunit/phpunit": "~8|~9", - "symfony/phpunit-bridge": "~3|~4|~5", "symfony/yaml": "~3|~4|~5" }, "suggest": { @@ -3340,7 +3374,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "4.x-dev" } }, "autoload": { @@ -3371,9 +3405,9 @@ ], "support": { "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.8.0" + "source": "https://github.com/Behat/Gherkin/tree/v4.9.0" }, - "time": "2021-02-04T12:44:21+00:00" + "time": "2021-10-12T13:05:09+00:00" }, { "name": "codeception/codeception", @@ -3907,24 +3941,25 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.3.0", + "version": "7.4.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "7008573787b430c1c1f650e3722d9bba59967628" + "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", - "reference": "7008573787b430c1c1f650e3722d9bba59967628", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94", + "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7 || ^2.0", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.8.3 || ^2.1", "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0" + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2" }, "provide": { "psr/http-client-implementation": "1.0" @@ -3934,7 +3969,7 @@ "ext-curl": "*", "php-http/client-integration-tests": "^3.0", "phpunit/phpunit": "^8.5.5 || ^9.3.5", - "psr/log": "^1.1" + "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { "ext-curl": "Required for CURL handler support", @@ -3944,7 +3979,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "7.3-dev" + "dev-master": "7.4-dev" } }, "autoload": { @@ -3960,19 +3995,43 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, { "name": "Márk Sági-Kazár", "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", "keywords": [ "client", "curl", @@ -3986,7 +4045,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.3.0" + "source": "https://github.com/guzzle/guzzle/tree/7.4.0" }, "funding": [ { @@ -3998,28 +4057,24 @@ "type": "github" }, { - "url": "https://github.com/alexeyshockov", - "type": "github" - }, - { - "url": "https://github.com/gmponos", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" } ], - "time": "2021-03-23T11:33:13+00:00" + "time": "2021-10-18T09:52:00+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0", + "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0", "shasum": "" }, "require": { @@ -4031,7 +4086,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { @@ -4047,10 +4102,25 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", @@ -4059,9 +4129,23 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.1" + "source": "https://github.com/guzzle/promises/tree/1.5.0" }, - "time": "2021-03-07T09:25:29+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2021-10-07T13:05:22+00:00" }, { "name": "myclabs/deep-copy", @@ -4343,16 +4427,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", "shasum": "" }, "require": { @@ -4363,7 +4447,8 @@ "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.2" + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -4393,22 +4478,22 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" }, - "time": "2020-09-03T19:13:55+00:00" + "time": "2021-10-19T17:43:47+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "30f38bffc6f24293dadd1823936372dfa9e86e2f" + "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/30f38bffc6f24293dadd1823936372dfa9e86e2f", - "reference": "30f38bffc6f24293dadd1823936372dfa9e86e2f", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae", + "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae", "shasum": "" }, "require": { @@ -4443,9 +4528,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1" }, - "time": "2021-09-17T15:28:14+00:00" + "time": "2021-10-02T14:08:47+00:00" }, { "name": "phpspec/prophecy", @@ -4949,16 +5034,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.9", + "version": "9.5.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b" + "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b", - "reference": "ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c814a05837f2edb0d1471d6e3f4ab3501ca3899a", + "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a", "shasum": "" }, "require": { @@ -4974,7 +5059,7 @@ "phar-io/version": "^3.0.2", "php": ">=7.3", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-code-coverage": "^9.2.7", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -5036,7 +5121,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.9" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.10" }, "funding": [ { @@ -5048,7 +5133,7 @@ "type": "github" } ], - "time": "2021-08-31T06:47:40+00:00" + "time": "2021-09-25T07:38:51+00:00" }, { "name": "psr/http-client", @@ -5955,6 +6040,7 @@ "type": "github" } ], + "abandoned": true, "time": "2020-09-28T06:45:17+00:00" }, { @@ -6535,5 +6621,5 @@ "platform-overrides": { "php": "7.3.6" }, - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.0.0" } From 777ac119def54f2cff03638bbe9463bf1fcf7069 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 20 Oct 2021 20:33:05 +0300 Subject: [PATCH 02/54] Update all libraries (WIP) --- composer.json | 61 ++- composer.lock | 709 ++++++++++++++++--------- system/src/Rockettheme/Event/Event.php | 23 + 3 files changed, 512 insertions(+), 281 deletions(-) create mode 100644 system/src/Rockettheme/Event/Event.php diff --git a/composer.json b/composer.json index e86c6aa06c..76655d2b3a 100644 --- a/composer.json +++ b/composer.json @@ -12,53 +12,52 @@ "homepage": "https://getgrav.org", "license": "MIT", "require": { - "php": "^7.3.6 || ^8.0", + "php": "^7.4.1 || ^8.0", "ext-json": "*", "ext-openssl": "*", "ext-curl": "*", "ext-zip": "*", "ext-dom": "*", "ext-libxml": "*", - "symfony/polyfill-mbstring": "~1.20", - "symfony/polyfill-iconv": "^1.20", - "symfony/polyfill-php74": "^1.20", - "symfony/polyfill-php80": "^1.20", + "symfony/polyfill-mbstring": "^1.23", + "symfony/polyfill-iconv": "^1.23", + "symfony/polyfill-php80": "^1.23", "psr/simple-cache": "^1.0", "psr/http-message": "^1.0", "psr/http-server-middleware": "^1.0", - "psr/container": "~1.0.0", + "psr/container": "^1.1", "nyholm/psr7-server": "^1.0", - "nyholm/psr7": "^1.3", - "twig/twig": "~1.44", + "nyholm/psr7": "^1.4", + "twig/twig": "~3.3", "erusev/parsedown": "^1.7", "erusev/parsedown-extra": "~0.8", - "symfony/contracts": "~1.1", - "symfony/yaml": "~4.4", - "symfony/console": "~4.4", - "symfony/event-dispatcher": "~4.4", - "symfony/var-dumper": "~4.4", - "symfony/process": "~4.4", - "doctrine/cache": "^1.10", + "symfony/contracts": "~v2.4", + "symfony/yaml": "~5.3", + "symfony/console": "~5.3", + "symfony/event-dispatcher": "~5.3", + "symfony/var-dumper": "~5.3", + "symfony/process": "~5.3", + "doctrine/cache": "^2.1", "doctrine/collections": "^1.6", - "guzzlehttp/psr7": "^1.7", - "filp/whoops": "~2.9", + "guzzlehttp/psr7": "^2.0", + "filp/whoops": "~2.14", "matthiasmullie/minify": "^1.3", - "monolog/monolog": "~1.25", + "monolog/monolog": "^2.3", "getgrav/image": "^3.0", "getgrav/cache": "^2.0", - "donatj/phpuseragentparser": "~1.1", + "donatj/phpuseragentparser": "~1.5", "pimple/pimple": "~3.3.0", - "rockettheme/toolbox": "~1.5", - "maximebf/debugbar": "~1.16", - "league/climate": "^3.6", + "rockettheme/toolbox": "v2.x-dev", + "maximebf/debugbar": "~1.17", + "league/climate": "^3.7", "antoligy/dom-string-iterators": "^1.0", "miljar/php-exif": "^0.6", "composer/ca-bundle": "^1.2", "dragonmantank/cron-expression": "^1.2", "willdurand/negotiation": "^3.0", - "itsgoingd/clockwork": "^5.0", - "symfony/http-client": "^4.4", - "composer/semver": "^1.4", + "itsgoingd/clockwork": "^5.1", + "symfony/http-client": "^5.3", + "composer/semver": "^1.7", "rhukster/dom-sanitizer": "^1.0" }, "require-dev": { @@ -71,9 +70,16 @@ "codeception/module-phpbrowser": "^1.0", "symfony/service-contracts": "*" }, + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/rockettheme/toolbox" + } + ], "replace": { "symfony/polyfill-php72": "*", - "symfony/polyfill-php73": "*" + "symfony/polyfill-php73": "*", + "symfony/polyfill-php74": "*" }, "suggest": { "ext-mbstring": "Recommended for better performance", @@ -87,12 +93,13 @@ "config": { "apcu-autoloader": true, "platform": { - "php": "7.3.6" + "php": "7.4.1" } }, "autoload": { "psr-4": { "Grav\\": "system/src/Grav", + "Rockettheme\\": "system/src/Rockettheme", "Twig\\": "system/src/Twig" }, "files": [ diff --git a/composer.lock b/composer.lock index df02b8d5ad..d0e0d67a98 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": "23dd68cea2a3f2d963e57638131f1122", + "content-hash": "4666002616421d25135851300406cba2", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -212,16 +212,16 @@ }, { "name": "doctrine/cache", - "version": "1.12.1", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8" + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/4cf401d14df219fa6f38b671f5493449151c9ad8", - "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8", + "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", "shasum": "" }, "require": { @@ -291,7 +291,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.12.1" + "source": "https://github.com/doctrine/cache/tree/2.1.1" }, "funding": [ { @@ -307,7 +307,7 @@ "type": "tidelift" } ], - "time": "2021-07-17T14:39:21+00:00" + "time": "2021-07-17T14:49:29+00:00" }, { "name": "doctrine/collections", @@ -778,29 +778,32 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.8.3", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85" + "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", - "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72", + "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0" }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "bamarni/composer-bin-plugin": "^1.4.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.8 || ^9.3.10" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -808,16 +811,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "2.1-dev" } }, "autoload": { "psr-4": { "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -853,6 +853,11 @@ "name": "Tobias Schultze", "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "PSR-7 message implementation that also provides common utility methods", @@ -868,7 +873,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.3" + "source": "https://github.com/guzzle/psr7/tree/2.1.0" }, "funding": [ { @@ -884,7 +889,7 @@ "type": "tidelift" } ], - "time": "2021-10-05T13:56:00+00:00" + "time": "2021-10-06T17:43:30+00:00" }, { "name": "itsgoingd/clockwork", @@ -1278,51 +1283,64 @@ }, { "name": "monolog/monolog", - "version": "1.26.1", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5" + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c6b00f05152ae2c9b04a448f99c7590beb6042f5", - "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" + "php": ">=7.2", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "provide": { - "psr/log-implementation": "1.0.0" + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" }, "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "php-amqplib/php-amqplib": "~2.4", + "elasticsearch/elasticsearch": "^7", + "graylog2/gelf-php": "^1.4.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", "php-console/php-console": "^3.1.3", - "phpstan/phpstan": "^0.12.59", - "phpunit/phpunit": "~4.5", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", + "phpspec/prophecy": "^1.6.1", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", + "ruflin/elastica": ">=0.90@dev", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, "autoload": { "psr-4": { "Monolog\\": "src/Monolog" @@ -1336,11 +1354,11 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "homepage": "https://github.com/Seldaek/monolog", "keywords": [ "log", "logging", @@ -1348,7 +1366,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/1.26.1" + "source": "https://github.com/Seldaek/monolog/tree/2.3.5" }, "funding": [ { @@ -1360,7 +1378,7 @@ "type": "tidelift" } ], - "time": "2021-05-28T08:32:12+00:00" + "time": "2021-10-01T21:08:31+00:00" }, { "name": "nyholm/psr7", @@ -1663,27 +1681,22 @@ }, { "name": "psr/container", - "version": "1.0.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.2.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -1696,7 +1709,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common Container Interface (PHP FIG PSR-11)", @@ -1710,9 +1723,59 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/master" + "source": "https://github.com/php-fig/container/tree/1.1.1" + }, + "time": "2021-03-05T17:36:06+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" }, - "time": "2017-02-14T16:28:37+00:00" + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" }, { "name": "psr/http-factory", @@ -2128,24 +2191,28 @@ }, { "name": "rockettheme/toolbox", - "version": "1.5.10", + "version": "v2.x-dev", "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "d9738de013fa12df77754a0f11dded220b246efb" + "reference": "dac55f5367cbd4844bff3662985504fe9f07b7ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/d9738de013fa12df77754a0f11dded220b246efb", - "reference": "d9738de013fa12df77754a0f11dded220b246efb", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/dac55f5367cbd4844bff3662985504fe9f07b7ba", + "reference": "dac55f5367cbd4844bff3662985504fe9f07b7ba", "shasum": "" }, + "archive": { + "exclude": [ + "tests" + ] + }, "require": { "ext-json": "*", - "php": ">=5.6.0", + "php": ">=7.2.5", "pimple/pimple": "~3.0", - "symfony/event-dispatcher": "^3.4|^4.0", - "symfony/yaml": "^3.4|^4.0" + "symfony/yaml": "^4.0|^5.0" }, "require-dev": { "phpstan/phpstan": "^0.12", @@ -2166,7 +2233,17 @@ "RocketTheme\\Toolbox\\StreamWrapper\\": "StreamWrapper/src" } }, - "notification-url": "https://packagist.org/downloads/", + "scripts": { + "test": [ + "vendor/bin/phpunit run unit" + ], + "test-windows": [ + "vendor\\bin\\phpunit run unit" + ], + "phpstan": [ + "vendor/bin/phpstan analyse -l 8 -c ./tests/phpstan/phpstan.neon . --memory-limit=128M" + ] + }, "license": [ "MIT" ], @@ -2177,10 +2254,10 @@ "rockettheme" ], "support": { - "issues": "https://github.com/rockettheme/toolbox/issues", - "source": "https://github.com/rockettheme/toolbox/tree/1.5.10" + "source": "https://github.com/rockettheme/toolbox/tree/v2", + "issues": "https://github.com/rockettheme/toolbox/issues" }, - "time": "2021-09-29T16:50:13+00:00" + "time": "2021-09-24T12:52:43+00:00" }, { "name": "seld/cli-prompt", @@ -2239,43 +2316,46 @@ }, { "name": "symfony/console", - "version": "v4.4.30", + "version": "v5.3.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a3f7189a0665ee33b50e9e228c46f50f5acbed22" + "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a3f7189a0665ee33b50e9e228c46f50f5acbed22", - "reference": "a3f7189a0665ee33b50e9e228c46f50f5acbed22", + "url": "https://api.github.com/repos/symfony/console/zipball/8b1008344647462ae6ec57559da166c2bfa5e16a", + "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2" + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" }, "conflict": { "psr/log": ">=3", - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", "symfony/lock": "<4.4", - "symfony/process": "<3.3" + "symfony/process": "<4.4" }, "provide": { "psr/log-implementation": "1.0|2.0" }, "require-dev": { "psr/log": "^1|^2", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/event-dispatcher": "^4.3", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", "symfony/lock": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.3|^5.0" + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -2308,8 +2388,14 @@ ], "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], "support": { - "source": "https://github.com/symfony/console/tree/v4.4.30" + "source": "https://github.com/symfony/console/tree/v5.3.7" }, "funding": [ { @@ -2325,29 +2411,31 @@ "type": "tidelift" } ], - "time": "2021-08-25T19:27:26+00:00" + "time": "2021-08-25T20:02:16+00:00" }, { "name": "symfony/contracts", - "version": "v1.1.10", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/contracts.git", - "reference": "011c20407c4b99d454f44021d023fb39ce23b73d" + "reference": "8434102b404d119dcaf98c8fe19a2655573ac17a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/011c20407c4b99d454f44021d023fb39ce23b73d", - "reference": "011c20407c4b99d454f44021d023fb39ce23b73d", + "url": "https://api.github.com/repos/symfony/contracts/zipball/8434102b404d119dcaf98c8fe19a2655573ac17a", + "reference": "8434102b404d119dcaf98c8fe19a2655573ac17a", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/cache": "^1.0", - "psr/container": "^1.0" + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0", + "psr/container": "^1.1", + "psr/event-dispatcher": "^1.0" }, "replace": { "symfony/cache-contracts": "self.version", + "symfony/deprecation-contracts": "self.version", "symfony/event-dispatcher-contracts": "self.version", "symfony/http-client-contracts": "self.version", "symfony/service-contracts": "self.version", @@ -2357,7 +2445,6 @@ "symfony/polyfill-intl-idn": "^1.10" }, "suggest": { - "psr/event-dispatcher": "When using the EventDispatcher contracts", "symfony/cache-implementation": "", "symfony/event-dispatcher-implementation": "", "symfony/http-client-implementation": "", @@ -2367,13 +2454,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "2.4-dev" } }, "autoload": { "psr-4": { "Symfony\\Contracts\\": "" }, + "files": [ + "Deprecation/function.php" + ], "exclude-from-classmap": [ "**/Tests/" ] @@ -2403,7 +2493,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/contracts/tree/v1.1.10" + "source": "https://github.com/symfony/contracts/tree/v2.4.0" }, "funding": [ { @@ -2419,43 +2509,44 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:08:58+00:00" + "time": "2021-04-11T23:07:08+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.30", + "version": "v5.3.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "2fe81680070043c4c80e7cedceb797e34f377bac" + "reference": "ce7b20d69c66a20939d8952b617506a44d102130" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2fe81680070043c4c80e7cedceb797e34f377bac", - "reference": "2fe81680070043c4c80e7cedceb797e34f377bac", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ce7b20d69c66a20939d8952b617506a44d102130", + "reference": "ce7b20d69c66a20939d8952b617506a44d102130", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher-contracts": "^2", "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/dependency-injection": "<3.4" + "symfony/dependency-injection": "<4.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" + "symfony/event-dispatcher-implementation": "2.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/error-handler": "~3.4|~4.4", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" + "symfony/stopwatch": "^4.4|^5.0" }, "suggest": { "symfony/dependency-injection": "", @@ -2487,7 +2578,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.30" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.7" }, "funding": [ { @@ -2503,26 +2594,27 @@ "type": "tidelift" } ], - "time": "2021-08-04T20:31:23+00:00" + "time": "2021-08-04T21:20:46+00:00" }, { "name": "symfony/http-client", - "version": "v4.4.31", + "version": "v5.3.8", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "6b900ffa399e25203f30f79f6f4a56b89eee14c2" + "reference": "c6370fe2c0a445aedc08f592a6a3149da1fea4c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/6b900ffa399e25203f30f79f6f4a56b89eee14c2", - "reference": "6b900ffa399e25203f30f79f6f4a56b89eee14c2", + "url": "https://api.github.com/repos/symfony/http-client/zipball/c6370fe2c0a445aedc08f592a6a3149da1fea4c7", + "reference": "c6370fe2c0a445aedc08f592a6a3149da1fea4c7", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/log": "^1|^2|^3", - "symfony/http-client-contracts": "^1.1.10|^2", + "symfony/deprecation-contracts": "^2.1", + "symfony/http-client-contracts": "^2.4", "symfony/polyfill-php73": "^1.11", "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.0|^2" @@ -2531,16 +2623,21 @@ "php-http/async-client-implementation": "*", "php-http/client-implementation": "*", "psr/http-client-implementation": "1.0", - "symfony/http-client-implementation": "1.1|2.0" + "symfony/http-client-implementation": "2.4" }, "require-dev": { + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", "guzzlehttp/promises": "^1.4", "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^4.3|^5.0", - "symfony/http-kernel": "^4.4.13", - "symfony/process": "^4.2|^5.0" + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4.13|^5.1.5", + "symfony/process": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0" }, "type": "library", "autoload": { @@ -2568,7 +2665,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v4.4.31" + "source": "https://github.com/symfony/http-client/tree/v5.3.8" }, "funding": [ { @@ -2584,7 +2681,7 @@ "type": "tidelift" } ], - "time": "2021-09-06T10:00:00+00:00" + "time": "2021-09-07T10:45:28+00:00" }, { "name": "symfony/polyfill-ctype", @@ -2746,24 +2843,24 @@ "time": "2021-05-27T09:27:20+00:00" }, { - "name": "symfony/polyfill-mbstring", + "name": "symfony/polyfill-intl-grapheme", "version": "v1.23.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "16880ba9c5ebe3642d1995ab866db29270b36535" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", - "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535", + "reference": "16880ba9c5ebe3642d1995ab866db29270b36535", "shasum": "" }, "require": { "php": ">=7.1" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-intl": "For best performance" }, "type": "library", "extra": { @@ -2777,7 +2874,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" }, "files": [ "bootstrap.php" @@ -2797,17 +2894,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "grapheme", + "intl", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.1" }, "funding": [ { @@ -2826,22 +2924,25 @@ "time": "2021-05-27T12:26:48+00:00" }, { - "name": "symfony/polyfill-php74", + "name": "symfony/polyfill-intl-normalizer", "version": "v1.23.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php74.git", - "reference": "a5d80cdf049bd3b0af6da91184a2cd37533c0fd8" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php74/zipball/a5d80cdf049bd3b0af6da91184a2cd37533c0fd8", - "reference": "a5d80cdf049bd3b0af6da91184a2cd37533c0fd8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", "shasum": "" }, "require": { "php": ">=7.1" }, + "suggest": { + "ext-intl": "For best performance" + }, "type": "library", "extra": { "branch-alias": { @@ -2854,10 +2955,13 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php74\\": "" + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, "files": [ "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2866,9 +2970,86 @@ ], "authors": [ { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-19T12:13:01+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.23.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -2878,16 +3059,17 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.4+ features to lower PHP versions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "mbstring", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php74/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" }, "funding": [ { @@ -2903,7 +3085,7 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2021-05-27T12:26:48+00:00" }, { "name": "symfony/polyfill-php80", @@ -2990,20 +3172,20 @@ }, { "name": "symfony/process", - "version": "v4.4.30", + "version": "v5.3.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "13d3161ef63a8ec21eeccaaf9a4d7f784a87a97d" + "reference": "38f26c7d6ed535217ea393e05634cb0b244a1967" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/13d3161ef63a8ec21eeccaaf9a4d7f784a87a97d", - "reference": "13d3161ef63a8ec21eeccaaf9a4d7f784a87a97d", + "url": "https://api.github.com/repos/symfony/process/zipball/38f26c7d6ed535217ea393e05634cb0b244a1967", + "reference": "38f26c7d6ed535217ea393e05634cb0b244a1967", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-php80": "^1.16" }, "type": "library", @@ -3032,7 +3214,90 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v4.4.30" + "source": "https://github.com/symfony/process/tree/v5.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-08-04T21:20:46+00:00" + }, + { + "name": "symfony/string", + "version": "v5.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/8d224396e28d30f81969f083a58763b8b9ceb0a5", + "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "files": [ + "Resources/functions.php" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.3.7" }, "funding": [ { @@ -3048,37 +3313,36 @@ "type": "tidelift" } ], - "time": "2021-08-04T20:31:23+00:00" + "time": "2021-08-26T08:00:08+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.4.31", + "version": "v5.3.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "1f12cc0c2e880a5f39575c19af81438464717839" + "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1f12cc0c2e880a5f39575c19af81438464717839", - "reference": "1f12cc0c2e880a5f39575c19af81438464717839", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eaaea4098be1c90c8285543e1356a09c8aa5c8da", + "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php72": "~1.5", "symfony/polyfill-php80": "^1.16" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<3.4" + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^3.4|^4.0|^5.0", + "symfony/console": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^1.43|^2.13|^3.0.4" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -3121,7 +3385,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.31" + "source": "https://github.com/symfony/var-dumper/tree/v5.3.8" }, "funding": [ { @@ -3137,35 +3401,39 @@ "type": "tidelift" } ], - "time": "2021-09-24T15:30:11+00:00" + "time": "2021-09-24T15:59:58+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.29", + "version": "v5.3.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "3abcc4db06d4e776825eaa3ed8ad924d5bc7432a" + "reference": "4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/3abcc4db06d4e776825eaa3ed8ad924d5bc7432a", - "reference": "3abcc4db06d4e776825eaa3ed8ad924d5bc7432a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7", + "reference": "4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/console": "<3.4" + "symfony/console": "<4.4" }, "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0" + "symfony/console": "^4.4|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", "autoload": { "psr-4": { @@ -3192,7 +3460,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v4.4.29" + "source": "https://github.com/symfony/yaml/tree/v5.3.6" }, "funding": [ { @@ -3208,40 +3476,38 @@ "type": "tidelift" } ], - "time": "2021-07-27T16:19:30+00:00" + "time": "2021-07-29T06:20:01+00:00" }, { "name": "twig/twig", - "version": "v1.44.5", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "dd4353357c5a116322e92a00d16043a31881a81e" + "reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/dd4353357c5a116322e92a00d16043a31881a81e", - "reference": "dd4353357c5a116322e92a00d16043a31881a81e", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a27fa056df8a6384316288ca8b0fa3a35fdeb569", + "reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-ctype": "^1.8" + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9" + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.44-dev" + "dev-master": "3.3-dev" } }, "autoload": { - "psr-0": { - "Twig_": "lib/" - }, "psr-4": { "Twig\\": "src/" } @@ -3274,7 +3540,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v1.44.5" + "source": "https://github.com/twigphp/Twig/tree/v3.3.3" }, "funding": [ { @@ -3286,7 +3552,7 @@ "type": "tidelift" } ], - "time": "2021-09-17T08:35:19+00:00" + "time": "2021-09-17T08:44:23+00:00" }, { "name": "willdurand/negotiation", @@ -6290,73 +6556,6 @@ ], "time": "2021-07-21T12:38:00+00:00" }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-03-23T23:28:01+00:00" - }, { "name": "symfony/dom-crawler", "version": "v5.3.7", @@ -6605,11 +6804,13 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "rockettheme/toolbox": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.3.6 || ^8.0", + "php": "^7.4.1 || ^8.0", "ext-json": "*", "ext-openssl": "*", "ext-curl": "*", @@ -6619,7 +6820,7 @@ }, "platform-dev": [], "platform-overrides": { - "php": "7.3.6" + "php": "7.4.1" }, "plugin-api-version": "2.0.0" } diff --git a/system/src/Rockettheme/Event/Event.php b/system/src/Rockettheme/Event/Event.php new file mode 100644 index 0000000000..9ee8f89329 --- /dev/null +++ b/system/src/Rockettheme/Event/Event.php @@ -0,0 +1,23 @@ + Date: Thu, 25 Nov 2021 11:51:40 +0200 Subject: [PATCH 03/54] Composer update --- composer.lock | 349 +++++++++++++++++++++++++++++++------------------- 1 file changed, 214 insertions(+), 135 deletions(-) diff --git a/composer.lock b/composer.lock index d0e0d67a98..10afb36985 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": "4666002616421d25135851300406cba2", + "content-hash": "238f2d0b6dac524185967fd7adbe3278", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -56,16 +56,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.2.11", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "0b072d51c5a9c6f3412f7ea3ab043d6603cb2582" + "reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0b072d51c5a9c6f3412f7ea3ab043d6603cb2582", - "reference": "0b072d51c5a9c6f3412f7ea3ab043d6603cb2582", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b", + "reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b", "shasum": "" }, "require": { @@ -112,7 +112,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.2.11" + "source": "https://github.com/composer/ca-bundle/tree/1.3.1" }, "funding": [ { @@ -128,7 +128,7 @@ "type": "tidelift" } ], - "time": "2021-09-25T20:32:43+00:00" + "time": "2021-10-28T20:44:15+00:00" }, { "name": "composer/semver", @@ -893,22 +893,22 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.1.0", + "version": "v5.1.1", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "b963dee47429a49c9669981cfa9a8362ce209278" + "reference": "2daf30fa6dfc5a1ccfdb2142df59243a72c473d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/b963dee47429a49c9669981cfa9a8362ce209278", - "reference": "b963dee47429a49c9669981cfa9a8362ce209278", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/2daf30fa6dfc5a1ccfdb2142df59243a72c473d8", + "reference": "2daf30fa6dfc5a1ccfdb2142df59243a72c473d8", "shasum": "" }, "require": { "ext-json": "*", "php": ">=5.6", - "psr/log": "1.*" + "psr/log": "1.* || ^2.0" }, "type": "library", "extra": { @@ -950,7 +950,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.0" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.1" }, "funding": [ { @@ -958,7 +958,7 @@ "type": "github" } ], - "time": "2021-08-07T23:04:17+00:00" + "time": "2021-11-01T17:38:35+00:00" }, { "name": "league/climate", @@ -1158,16 +1158,16 @@ }, { "name": "maximebf/debugbar", - "version": "v1.17.2", + "version": "v1.17.3", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "3541f09f09c003c4a9ff7ddb0eb3361a7f14d418" + "reference": "e8ac3499af0ea5b440908e06cc0abe5898008b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/3541f09f09c003c4a9ff7ddb0eb3361a7f14d418", - "reference": "3541f09f09c003c4a9ff7ddb0eb3361a7f14d418", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/e8ac3499af0ea5b440908e06cc0abe5898008b3c", + "reference": "e8ac3499af0ea5b440908e06cc0abe5898008b3c", "shasum": "" }, "require": { @@ -1217,9 +1217,9 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.2" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.3" }, - "time": "2021-10-18T09:39:00+00:00" + "time": "2021-10-19T12:33:27+00:00" }, { "name": "miljar/php-exif", @@ -1579,29 +1579,29 @@ }, { "name": "pimple/pimple", - "version": "v3.3.1", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/silexphp/Pimple.git", - "reference": "21e45061c3429b1e06233475cc0e1f6fc774d5b0" + "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/21e45061c3429b1e06233475cc0e1f6fc774d5b0", - "reference": "21e45061c3429b1e06233475cc0e1f6fc774d5b0", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a94b3a4db7fb774b3d78dad2315ddc07629e1bed", + "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.0" + "psr/container": "^1.1 || ^2.0" }, "require-dev": { - "symfony/phpunit-bridge": "^5.0" + "symfony/phpunit-bridge": "^5.4@dev" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3.x-dev" + "dev-master": "3.4.x-dev" } }, "autoload": { @@ -1626,9 +1626,9 @@ "dependency injection" ], "support": { - "source": "https://github.com/silexphp/Pimple/tree/v3.3.1" + "source": "https://github.com/silexphp/Pimple/tree/v3.5.0" }, - "time": "2020-11-24T20:35:42+00:00" + "time": "2021-10-28T11:13:42+00:00" }, { "name": "psr/cache", @@ -1681,20 +1681,20 @@ }, { "name": "psr/container", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "type": "library", "autoload": { @@ -1723,9 +1723,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "source": "https://github.com/php-fig/container/tree/1.1.2" }, - "time": "2021-03-05T17:36:06+00:00" + "time": "2021-11-05T16:50:12+00:00" }, { "name": "psr/event-dispatcher", @@ -2195,12 +2195,12 @@ "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "dac55f5367cbd4844bff3662985504fe9f07b7ba" + "reference": "29b132177388295f32a686cbc75f060c4c9d60f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/dac55f5367cbd4844bff3662985504fe9f07b7ba", - "reference": "dac55f5367cbd4844bff3662985504fe9f07b7ba", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/29b132177388295f32a686cbc75f060c4c9d60f8", + "reference": "29b132177388295f32a686cbc75f060c4c9d60f8", "shasum": "" }, "archive": { @@ -2257,7 +2257,7 @@ "source": "https://github.com/rockettheme/toolbox/tree/v2", "issues": "https://github.com/rockettheme/toolbox/issues" }, - "time": "2021-09-24T12:52:43+00:00" + "time": "2021-11-25T09:50:23+00:00" }, { "name": "seld/cli-prompt", @@ -2316,16 +2316,16 @@ }, { "name": "symfony/console", - "version": "v5.3.7", + "version": "v5.3.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a" + "reference": "3e7ab8f5905058984899b05a4648096f558bfeba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8b1008344647462ae6ec57559da166c2bfa5e16a", - "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a", + "url": "https://api.github.com/repos/symfony/console/zipball/3e7ab8f5905058984899b05a4648096f558bfeba", + "reference": "3e7ab8f5905058984899b05a4648096f558bfeba", "shasum": "" }, "require": { @@ -2338,7 +2338,6 @@ "symfony/string": "^5.1" }, "conflict": { - "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -2395,7 +2394,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.3.7" + "source": "https://github.com/symfony/console/tree/v5.3.11" }, "funding": [ { @@ -2411,20 +2410,20 @@ "type": "tidelift" } ], - "time": "2021-08-25T20:02:16+00:00" + "time": "2021-11-21T19:41:05+00:00" }, { "name": "symfony/contracts", - "version": "v2.4.0", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/symfony/contracts.git", - "reference": "8434102b404d119dcaf98c8fe19a2655573ac17a" + "reference": "1f4c95d47bddf0c1579779d4b85602c923ed2f1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/8434102b404d119dcaf98c8fe19a2655573ac17a", - "reference": "8434102b404d119dcaf98c8fe19a2655573ac17a", + "url": "https://api.github.com/repos/symfony/contracts/zipball/1f4c95d47bddf0c1579779d4b85602c923ed2f1c", + "reference": "1f4c95d47bddf0c1579779d4b85602c923ed2f1c", "shasum": "" }, "require": { @@ -2433,6 +2432,9 @@ "psr/container": "^1.1", "psr/event-dispatcher": "^1.0" }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, "replace": { "symfony/cache-contracts": "self.version", "symfony/deprecation-contracts": "self.version", @@ -2454,7 +2456,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" } }, "autoload": { @@ -2493,7 +2495,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/contracts/tree/v2.4.0" + "source": "https://github.com/symfony/contracts/tree/v2.5.0" }, "funding": [ { @@ -2509,20 +2511,20 @@ "type": "tidelift" } ], - "time": "2021-04-11T23:07:08+00:00" + "time": "2021-11-22T15:13:51+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.3.7", + "version": "v5.3.11", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "ce7b20d69c66a20939d8952b617506a44d102130" + "reference": "661a7a6e085394f8513945669e31f7c1338a7e69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ce7b20d69c66a20939d8952b617506a44d102130", - "reference": "ce7b20d69c66a20939d8952b617506a44d102130", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/661a7a6e085394f8513945669e31f7c1338a7e69", + "reference": "661a7a6e085394f8513945669e31f7c1338a7e69", "shasum": "" }, "require": { @@ -2578,7 +2580,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.7" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.11" }, "funding": [ { @@ -2594,20 +2596,20 @@ "type": "tidelift" } ], - "time": "2021-08-04T21:20:46+00:00" + "time": "2021-11-17T12:16:12+00:00" }, { "name": "symfony/http-client", - "version": "v5.3.8", + "version": "v5.3.11", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "c6370fe2c0a445aedc08f592a6a3149da1fea4c7" + "reference": "3f55da60fc3c3d6e6a4144ee65a37d23a637107e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/c6370fe2c0a445aedc08f592a6a3149da1fea4c7", - "reference": "c6370fe2c0a445aedc08f592a6a3149da1fea4c7", + "url": "https://api.github.com/repos/symfony/http-client/zipball/3f55da60fc3c3d6e6a4144ee65a37d23a637107e", + "reference": "3f55da60fc3c3d6e6a4144ee65a37d23a637107e", "shasum": "" }, "require": { @@ -2665,7 +2667,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.3.8" + "source": "https://github.com/symfony/http-client/tree/v5.3.11" }, "funding": [ { @@ -2681,7 +2683,7 @@ "type": "tidelift" } ], - "time": "2021-09-07T10:45:28+00:00" + "time": "2021-11-20T16:42:42+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3170,18 +3172,97 @@ ], "time": "2021-07-28T13:41:28+00:00" }, + { + "name": "symfony/polyfill-php81", + "version": "v1.23.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "e66119f3de95efc359483f810c4c3e6436279436" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436", + "reference": "e66119f3de95efc359483f810c4c3e6436279436", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.23.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-21T13:25:03+00:00" + }, { "name": "symfony/process", - "version": "v5.3.7", + "version": "v5.3.12", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "38f26c7d6ed535217ea393e05634cb0b244a1967" + "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/38f26c7d6ed535217ea393e05634cb0b244a1967", - "reference": "38f26c7d6ed535217ea393e05634cb0b244a1967", + "url": "https://api.github.com/repos/symfony/process/zipball/e498803a6e95ede78e9d5646ad32a2255c033a6a", + "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a", "shasum": "" }, "require": { @@ -3214,7 +3295,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.7" + "source": "https://github.com/symfony/process/tree/v5.3.12" }, "funding": [ { @@ -3230,20 +3311,20 @@ "type": "tidelift" } ], - "time": "2021-08-04T21:20:46+00:00" + "time": "2021-11-22T22:39:13+00:00" }, { "name": "symfony/string", - "version": "v5.3.7", + "version": "v5.3.10", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5" + "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/8d224396e28d30f81969f083a58763b8b9ceb0a5", - "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5", + "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", + "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", "shasum": "" }, "require": { @@ -3297,7 +3378,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.3.7" + "source": "https://github.com/symfony/string/tree/v5.3.10" }, "funding": [ { @@ -3313,20 +3394,20 @@ "type": "tidelift" } ], - "time": "2021-08-26T08:00:08+00:00" + "time": "2021-10-27T18:21:46+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.3.8", + "version": "v5.3.11", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da" + "reference": "a029b3a11b757f9cc8693040339153b4745a913f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eaaea4098be1c90c8285543e1356a09c8aa5c8da", - "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a029b3a11b757f9cc8693040339153b4745a913f", + "reference": "a029b3a11b757f9cc8693040339153b4745a913f", "shasum": "" }, "require": { @@ -3385,7 +3466,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.3.8" + "source": "https://github.com/symfony/var-dumper/tree/v5.3.11" }, "funding": [ { @@ -3401,20 +3482,20 @@ "type": "tidelift" } ], - "time": "2021-09-24T15:59:58+00:00" + "time": "2021-11-12T11:38:27+00:00" }, { "name": "symfony/yaml", - "version": "v5.3.6", + "version": "v5.3.11", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7" + "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7", - "reference": "4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7", + "url": "https://api.github.com/repos/symfony/yaml/zipball/226638aa877bc4104e619a15f27d8141cd6b4e4a", + "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a", "shasum": "" }, "require": { @@ -3460,7 +3541,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.3.6" + "source": "https://github.com/symfony/yaml/tree/v5.3.11" }, "funding": [ { @@ -3476,7 +3557,7 @@ "type": "tidelift" } ], - "time": "2021-07-29T06:20:01+00:00" + "time": "2021-11-20T16:42:42+00:00" }, { "name": "twig/twig", @@ -4331,16 +4412,16 @@ }, { "name": "guzzlehttp/promises", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0" + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0", - "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", "shasum": "" }, "require": { @@ -4395,7 +4476,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.0" + "source": "https://github.com/guzzle/promises/tree/1.5.1" }, "funding": [ { @@ -4411,7 +4492,7 @@ "type": "tidelift" } ], - "time": "2021-10-07T13:05:22+00:00" + "time": "2021-10-22T20:56:57+00:00" }, { "name": "myclabs/deep-copy", @@ -4473,16 +4554,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.13.0", + "version": "v4.13.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "50953a2691a922aa1769461637869a0a2faa3f53" + "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/50953a2691a922aa1769461637869a0a2faa3f53", - "reference": "50953a2691a922aa1769461637869a0a2faa3f53", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/63a79e8daa781cac14e5195e63ed8ae231dd10fd", + "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd", "shasum": "" }, "require": { @@ -4523,9 +4604,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.1" }, - "time": "2021-09-20T12:20:58+00:00" + "time": "2021-11-03T20:52:16+00:00" }, { "name": "phar-io/manifest", @@ -4867,16 +4948,16 @@ }, { "name": "phpstan/phpstan", - "version": "0.12.99", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7" + "reference": "cbe085f9fdead5b6d62e4c022ca52dc9427a10ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b4d40f1d759942f523be267a1bab6884f46ca3f7", - "reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cbe085f9fdead5b6d62e4c022ca52dc9427a10ee", + "reference": "cbe085f9fdead5b6d62e4c022ca52dc9427a10ee", "shasum": "" }, "require": { @@ -4892,7 +4973,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.12-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -4907,7 +4988,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.99" + "source": "https://github.com/phpstan/phpstan/tree/1.2.0" }, "funding": [ { @@ -4927,36 +5008,35 @@ "type": "tidelift" } ], - "time": "2021-09-12T20:09:55+00:00" + "time": "2021-11-18T14:09:01+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", - "version": "0.12.6", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", - "reference": "46dbd43c2db973d2876d6653e53f5c2cc3a01fbb" + "reference": "e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/46dbd43c2db973d2876d6653e53f5c2cc3a01fbb", - "reference": "46dbd43c2db973d2876d6653e53f5c2cc3a01fbb", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682", + "reference": "e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682", "shasum": "" }, "require": { "php": "^7.1 || ^8.0", - "phpstan/phpstan": "^0.12.60" + "phpstan/phpstan": "^1.0" }, "require-dev": { - "phing/phing": "^2.16.3", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.5.20" + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5" }, "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-master": "0.12-dev" + "dev-master": "1.0-dev" }, "phpstan": { "includes": [ @@ -4976,29 +5056,29 @@ "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.", "support": { "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", - "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/0.12.6" + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.0.0" }, - "time": "2020-12-13T10:20:54+00:00" + "time": "2021-09-23T11:02:21+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.7", + "version": "9.2.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218" + "reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d4c798ed8d51506800b441f7a13ecb0f76f12218", - "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", + "reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.12.0", + "nikic/php-parser": "^4.13.0", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -5047,7 +5127,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.7" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.9" }, "funding": [ { @@ -5055,7 +5135,7 @@ "type": "github" } ], - "time": "2021-09-17T05:39:03+00:00" + "time": "2021-11-19T15:21:02+00:00" }, { "name": "phpunit/php-file-iterator", @@ -5882,16 +5962,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" + "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", "shasum": "" }, "require": { @@ -5940,14 +6020,14 @@ } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" }, "funding": [ { @@ -5955,7 +6035,7 @@ "type": "github" } ], - "time": "2020-09-28T05:24:23+00:00" + "time": "2021-11-11T14:18:36+00:00" }, { "name": "sebastian/global-state", @@ -6306,7 +6386,6 @@ "type": "github" } ], - "abandoned": true, "time": "2020-09-28T06:45:17+00:00" }, { From a68bdd2b7546d6a543afbe94b16c26dc322f7578 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 25 Nov 2021 14:17:13 +0200 Subject: [PATCH 04/54] Fixed Toolbox Event --- composer.json | 4 +- composer.lock | 73 ++++++++----------- .../Toolbox}/Event/Event.php | 2 +- 3 files changed, 34 insertions(+), 45 deletions(-) rename system/src/{Rockettheme => RocketTheme/Toolbox}/Event/Event.php (89%) diff --git a/composer.json b/composer.json index b1e9ba479a..004f112a90 100644 --- a/composer.json +++ b/composer.json @@ -43,7 +43,7 @@ "guzzlehttp/psr7": "^2.0", "filp/whoops": "~2.14", "matthiasmullie/minify": "^1.3", - "monolog/monolog": "^2.3", + "monolog/monolog": "^1.26", "getgrav/image": "^3.0", "getgrav/cache": "^2.0", "donatj/phpuseragentparser": "~1.5", @@ -100,7 +100,7 @@ "autoload": { "psr-4": { "Grav\\": "system/src/Grav", - "Rockettheme\\": "system/src/Rockettheme", + "RocketTheme\\": "system/src/RocketTheme", "Twig\\": "system/src/Twig" }, "files": [ diff --git a/composer.lock b/composer.lock index 10afb36985..06e2b772b7 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": "238f2d0b6dac524185967fd7adbe3278", + "content-hash": "b8f0b315e836c87639ed6d70f298927d", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -1283,64 +1283,51 @@ }, { "name": "monolog/monolog", - "version": "2.3.5", + "version": "1.26.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" + "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", - "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c6b00f05152ae2c9b04a448f99c7590beb6042f5", + "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5", "shasum": "" }, "require": { - "php": ">=7.2", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" + "php": ">=5.3.0", + "psr/log": "~1.0" }, "provide": { - "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + "psr/log-implementation": "1.0.0" }, "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7", - "graylog2/gelf-php": "^1.4.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", - "phpspec/prophecy": "^1.6.1", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5", - "predis/predis": "^1.1", - "rollbar/rollbar": "^1.3", - "ruflin/elastica": ">=0.90@dev", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "ext-mongo": "Allow sending log messages to a MongoDB server", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, "autoload": { "psr-4": { "Monolog\\": "src/Monolog" @@ -1354,11 +1341,11 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" + "homepage": "http://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", + "homepage": "http://github.com/Seldaek/monolog", "keywords": [ "log", "logging", @@ -1366,7 +1353,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.3.5" + "source": "https://github.com/Seldaek/monolog/tree/1.26.1" }, "funding": [ { @@ -1378,7 +1365,7 @@ "type": "tidelift" } ], - "time": "2021-10-01T21:08:31+00:00" + "time": "2021-05-28T08:32:12+00:00" }, { "name": "nyholm/psr7", @@ -2195,12 +2182,12 @@ "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "29b132177388295f32a686cbc75f060c4c9d60f8" + "reference": "82a975af3059ea61692c12688a647dcaef91a9b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/29b132177388295f32a686cbc75f060c4c9d60f8", - "reference": "29b132177388295f32a686cbc75f060c4c9d60f8", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/82a975af3059ea61692c12688a647dcaef91a9b0", + "reference": "82a975af3059ea61692c12688a647dcaef91a9b0", "shasum": "" }, "archive": { @@ -2212,12 +2199,14 @@ "ext-json": "*", "php": ">=7.2.5", "pimple/pimple": "~3.0", + "symfony/polyfill-php80": "^1.23", + "symfony/polyfill-php81": "^1.23", "symfony/yaml": "^4.0|^5.0" }, "require-dev": { - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-deprecation-rules": "^0.12", - "phpunit/phpunit": "~7.0" + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpunit/phpunit": "~8.0" }, "type": "library", "autoload": { @@ -2257,7 +2246,7 @@ "source": "https://github.com/rockettheme/toolbox/tree/v2", "issues": "https://github.com/rockettheme/toolbox/issues" }, - "time": "2021-11-25T09:50:23+00:00" + "time": "2021-11-25T12:04:22+00:00" }, { "name": "seld/cli-prompt", diff --git a/system/src/Rockettheme/Event/Event.php b/system/src/RocketTheme/Toolbox/Event/Event.php similarity index 89% rename from system/src/Rockettheme/Event/Event.php rename to system/src/RocketTheme/Toolbox/Event/Event.php index 9ee8f89329..412790c7a5 100644 --- a/system/src/Rockettheme/Event/Event.php +++ b/system/src/RocketTheme/Toolbox/Event/Event.php @@ -14,7 +14,7 @@ * @license MIT * @deprecated Event classes will be removed in the future. Use PSR-14 implementation instead. */ -class Event extends \Symfony\Component\EventDispatcher\Event implements \ArrayAccess +class Event extends \Symfony\Contracts\EventDispatcher\Event implements \ArrayAccess { use ArrayAccess, Constructor, Export; From 26b68953c47f2d5d1c2bf87c345c49189fbb8913 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Mon, 7 Feb 2022 13:48:47 +0200 Subject: [PATCH 05/54] Composer update --- composer.lock | 616 ++++++++++++++++++++++++++------------------------ 1 file changed, 319 insertions(+), 297 deletions(-) diff --git a/composer.lock b/composer.lock index 06e2b772b7..f8bdd09756 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": "b8f0b315e836c87639ed6d70f298927d", + "content-hash": "e820a44c58ff5ff11af7497e0b307084", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -596,16 +596,16 @@ }, { "name": "filp/whoops", - "version": "2.14.4", + "version": "2.14.5", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "f056f1fe935d9ed86e698905a957334029899895" + "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/f056f1fe935d9ed86e698905a957334029899895", - "reference": "f056f1fe935d9ed86e698905a957334029899895", + "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", "shasum": "" }, "require": { @@ -655,7 +655,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.14.4" + "source": "https://github.com/filp/whoops/tree/2.14.5" }, "funding": [ { @@ -663,7 +663,7 @@ "type": "github" } ], - "time": "2021-10-03T12:00:00+00:00" + "time": "2022-01-07T12:00:00+00:00" }, { "name": "getgrav/cache", @@ -893,16 +893,16 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.1.1", + "version": "v5.1.4", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "2daf30fa6dfc5a1ccfdb2142df59243a72c473d8" + "reference": "7252aa771b77ac8678b44290fd7ec7577435cce6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/2daf30fa6dfc5a1ccfdb2142df59243a72c473d8", - "reference": "2daf30fa6dfc5a1ccfdb2142df59243a72c473d8", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/7252aa771b77ac8678b44290fd7ec7577435cce6", + "reference": "7252aa771b77ac8678b44290fd7ec7577435cce6", "shasum": "" }, "require": { @@ -950,7 +950,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.1" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.4" }, "funding": [ { @@ -958,20 +958,20 @@ "type": "github" } ], - "time": "2021-11-01T17:38:35+00:00" + "time": "2022-01-30T12:36:18+00:00" }, { "name": "league/climate", - "version": "3.7.0", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/climate.git", - "reference": "5c717c3032c5118be7ad2395dbe0813d9894e8c7" + "reference": "22243322c6f049240e0fa6ad6c3873343b6f6055" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/climate/zipball/5c717c3032c5118be7ad2395dbe0813d9894e8c7", - "reference": "5c717c3032c5118be7ad2395dbe0813d9894e8c7", + "url": "https://api.github.com/repos/thephpleague/climate/zipball/22243322c6f049240e0fa6ad6c3873343b6f6055", + "reference": "22243322c6f049240e0fa6ad6c3873343b6f6055", "shasum": "" }, "require": { @@ -1021,9 +1021,9 @@ ], "support": { "issues": "https://github.com/thephpleague/climate/issues", - "source": "https://github.com/thephpleague/climate/tree/3.7.0" + "source": "https://github.com/thephpleague/climate/tree/3.8.1" }, - "time": "2021-01-10T20:18:52+00:00" + "time": "2022-01-23T14:38:49+00:00" }, { "name": "matthiasmullie/minify", @@ -1369,16 +1369,16 @@ }, { "name": "nyholm/psr7", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/Nyholm/psr7.git", - "reference": "2212385b47153ea71b1c1b1374f8cb5e4f7892ec" + "reference": "1461e07a0f2a975a52082ca3b769ca912b816226" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7/zipball/2212385b47153ea71b1c1b1374f8cb5e4f7892ec", - "reference": "2212385b47153ea71b1c1b1374f8cb5e4f7892ec", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/1461e07a0f2a975a52082ca3b769ca912b816226", + "reference": "1461e07a0f2a975a52082ca3b769ca912b816226", "shasum": "" }, "require": { @@ -1430,7 +1430,7 @@ ], "support": { "issues": "https://github.com/Nyholm/psr7/issues", - "source": "https://github.com/Nyholm/psr7/tree/1.4.1" + "source": "https://github.com/Nyholm/psr7/tree/1.5.0" }, "funding": [ { @@ -1442,7 +1442,7 @@ "type": "github" } ], - "time": "2021-07-02T08:32:20+00:00" + "time": "2022-02-02T18:37:57+00:00" }, { "name": "nyholm/psr7-server", @@ -2182,19 +2182,14 @@ "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "82a975af3059ea61692c12688a647dcaef91a9b0" + "reference": "80a4be7e8d3ae30b991ab8bfb7d5b89b581be053" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/82a975af3059ea61692c12688a647dcaef91a9b0", - "reference": "82a975af3059ea61692c12688a647dcaef91a9b0", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/80a4be7e8d3ae30b991ab8bfb7d5b89b581be053", + "reference": "80a4be7e8d3ae30b991ab8bfb7d5b89b581be053", "shasum": "" }, - "archive": { - "exclude": [ - "tests" - ] - }, "require": { "ext-json": "*", "php": ">=7.2.5", @@ -2204,9 +2199,9 @@ "symfony/yaml": "^4.0|^5.0" }, "require-dev": { - "phpstan/phpstan": "^1.0", + "phpstan/phpstan": "^1.2", "phpstan/phpstan-deprecation-rules": "^1.0", - "phpunit/phpunit": "~8.0" + "phpunit/phpunit": "^8.0" }, "type": "library", "autoload": { @@ -2220,7 +2215,15 @@ "RocketTheme\\Toolbox\\ResourceLocator\\": "ResourceLocator/src", "RocketTheme\\Toolbox\\Session\\": "Session/src", "RocketTheme\\Toolbox\\StreamWrapper\\": "StreamWrapper/src" - } + }, + "exclude-from-classmap": [ + "**/tests/" + ] + }, + "archive": { + "exclude": [ + "tests" + ] }, "scripts": { "test": [ @@ -2230,7 +2233,7 @@ "vendor\\bin\\phpunit run unit" ], "phpstan": [ - "vendor/bin/phpstan analyse -l 8 -c ./tests/phpstan/phpstan.neon . --memory-limit=128M" + "vendor/bin/phpstan analyse -l 8 -c ./tests/phpstan/phpstan.neon . --memory-limit=128M --no-progress" ] }, "license": [ @@ -2246,7 +2249,7 @@ "source": "https://github.com/rockettheme/toolbox/tree/v2", "issues": "https://github.com/rockettheme/toolbox/issues" }, - "time": "2021-11-25T12:04:22+00:00" + "time": "2021-12-08T08:09:30+00:00" }, { "name": "seld/cli-prompt", @@ -2305,28 +2308,29 @@ }, { "name": "symfony/console", - "version": "v5.3.11", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3e7ab8f5905058984899b05a4648096f558bfeba" + "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3e7ab8f5905058984899b05a4648096f558bfeba", - "reference": "3e7ab8f5905058984899b05a4648096f558bfeba", + "url": "https://api.github.com/repos/symfony/console/zipball/a2a86ec353d825c75856c6fd14fac416a7bdb6b8", + "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php73": "^1.9", "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" }, "conflict": { + "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -2338,12 +2342,12 @@ }, "require-dev": { "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -2383,7 +2387,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.3.11" + "source": "https://github.com/symfony/console/tree/v5.4.3" }, "funding": [ { @@ -2399,7 +2403,7 @@ "type": "tidelift" } ], - "time": "2021-11-21T19:41:05+00:00" + "time": "2022-01-26T16:28:35+00:00" }, { "name": "symfony/contracts", @@ -2504,22 +2508,22 @@ }, { "name": "symfony/event-dispatcher", - "version": "v5.3.11", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "661a7a6e085394f8513945669e31f7c1338a7e69" + "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/661a7a6e085394f8513945669e31f7c1338a7e69", - "reference": "661a7a6e085394f8513945669e31f7c1338a7e69", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dec8a9f58d20df252b9cd89f1c6c1530f747685d", + "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", "symfony/polyfill-php80": "^1.16" }, "conflict": { @@ -2531,13 +2535,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -2569,7 +2573,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.11" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.3" }, "funding": [ { @@ -2585,30 +2589,30 @@ "type": "tidelift" } ], - "time": "2021-11-17T12:16:12+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/http-client", - "version": "v5.3.11", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "3f55da60fc3c3d6e6a4144ee65a37d23a637107e" + "reference": "a5a467b62dc91eb253db51a91a2c1977f611f60c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/3f55da60fc3c3d6e6a4144ee65a37d23a637107e", - "reference": "3f55da60fc3c3d6e6a4144ee65a37d23a637107e", + "url": "https://api.github.com/repos/symfony/http-client/zipball/a5a467b62dc91eb253db51a91a2c1977f611f60c", + "reference": "a5a467b62dc91eb253db51a91a2c1977f611f60c", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/http-client-contracts": "^2.4", "symfony/polyfill-php73": "^1.11", "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.0|^2" + "symfony/service-contracts": "^1.0|^2|^3" }, "provide": { "php-http/async-client-implementation": "*", @@ -2625,10 +2629,10 @@ "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/http-kernel": "^4.4.13|^5.1.5", - "symfony/process": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0" + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0" }, "type": "library", "autoload": { @@ -2656,7 +2660,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.3.11" + "source": "https://github.com/symfony/http-client/tree/v5.4.3" }, "funding": [ { @@ -2672,25 +2676,28 @@ "type": "tidelift" } ], - "time": "2021-11-20T16:42:42+00:00" + "time": "2022-01-22T06:53:01+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.23.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" + "reference": "30885182c981ab175d4d034db0f6f469898070ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", + "reference": "30885182c981ab175d4d034db0f6f469898070ab", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-ctype": "*" + }, "suggest": { "ext-ctype": "For best performance" }, @@ -2735,7 +2742,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" }, "funding": [ { @@ -2751,25 +2758,28 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2021-10-20T20:35:02+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.23.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933" + "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/63b5bb7db83e5673936d6e3b8b3e022ff6474933", - "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40", + "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-iconv": "*" + }, "suggest": { "ext-iconv": "For best performance" }, @@ -2784,12 +2794,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2815,7 +2825,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.24.0" }, "funding": [ { @@ -2831,20 +2841,20 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:27:20+00:00" + "time": "2022-01-04T09:04:05+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.23.1", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "16880ba9c5ebe3642d1995ab866db29270b36535" + "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535", - "reference": "16880ba9c5ebe3642d1995ab866db29270b36535", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783", + "reference": "81b86b50cf841a64252b439e738e97f4a34e2783", "shasum": "" }, "require": { @@ -2864,12 +2874,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2896,7 +2906,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.1" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" }, "funding": [ { @@ -2912,11 +2922,11 @@ "type": "tidelift" } ], - "time": "2021-05-27T12:26:48+00:00" + "time": "2021-11-23T21:10:46+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.23.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -2945,12 +2955,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -2980,7 +2990,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" }, "funding": [ { @@ -3000,21 +3010,24 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.23.1", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", - "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-mbstring": "*" + }, "suggest": { "ext-mbstring": "For best performance" }, @@ -3060,7 +3073,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" }, "funding": [ { @@ -3076,20 +3089,20 @@ "type": "tidelift" } ], - "time": "2021-05-27T12:26:48+00:00" + "time": "2021-11-30T18:21:41+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.23.1", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" + "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", - "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", + "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", "shasum": "" }, "require": { @@ -3106,12 +3119,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3143,7 +3156,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" }, "funding": [ { @@ -3159,20 +3172,20 @@ "type": "tidelift" } ], - "time": "2021-07-28T13:41:28+00:00" + "time": "2021-09-13T13:58:33+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.23.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "e66119f3de95efc359483f810c4c3e6436279436" + "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436", - "reference": "e66119f3de95efc359483f810c4c3e6436279436", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", + "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", "shasum": "" }, "require": { @@ -3189,12 +3202,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3222,7 +3235,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" }, "funding": [ { @@ -3238,20 +3251,20 @@ "type": "tidelift" } ], - "time": "2021-05-21T13:25:03+00:00" + "time": "2021-09-13T13:58:11+00:00" }, { "name": "symfony/process", - "version": "v5.3.12", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a" + "reference": "553f50487389a977eb31cf6b37faae56da00f753" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/e498803a6e95ede78e9d5646ad32a2255c033a6a", - "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a", + "url": "https://api.github.com/repos/symfony/process/zipball/553f50487389a977eb31cf6b37faae56da00f753", + "reference": "553f50487389a977eb31cf6b37faae56da00f753", "shasum": "" }, "require": { @@ -3284,7 +3297,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.12" + "source": "https://github.com/symfony/process/tree/v5.4.3" }, "funding": [ { @@ -3300,20 +3313,20 @@ "type": "tidelift" } ], - "time": "2021-11-22T22:39:13+00:00" + "time": "2022-01-26T16:28:35+00:00" }, { "name": "symfony/string", - "version": "v5.3.10", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c" + "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", + "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", + "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", "shasum": "" }, "require": { @@ -3324,11 +3337,14 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "~1.15" }, + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" + "symfony/var-exporter": "^4.4|^5.0|^6.0" }, "type": "library", "autoload": { @@ -3367,7 +3383,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.3.10" + "source": "https://github.com/symfony/string/tree/v5.4.3" }, "funding": [ { @@ -3383,20 +3399,20 @@ "type": "tidelift" } ], - "time": "2021-10-27T18:21:46+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.3.11", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "a029b3a11b757f9cc8693040339153b4745a913f" + "reference": "970a01f208bf895c5f327ba40b72288da43adec4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a029b3a11b757f9cc8693040339153b4745a913f", - "reference": "a029b3a11b757f9cc8693040339153b4745a913f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/970a01f208bf895c5f327ba40b72288da43adec4", + "reference": "970a01f208bf895c5f327ba40b72288da43adec4", "shasum": "" }, "require": { @@ -3410,8 +3426,9 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", + "symfony/console": "^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" }, "suggest": { @@ -3455,7 +3472,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.3.11" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.3" }, "funding": [ { @@ -3471,32 +3488,32 @@ "type": "tidelift" } ], - "time": "2021-11-12T11:38:27+00:00" + "time": "2022-01-17T16:30:37+00:00" }, { "name": "symfony/yaml", - "version": "v5.3.11", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a" + "reference": "e80f87d2c9495966768310fc531b487ce64237a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/226638aa877bc4104e619a15f27d8141cd6b4e4a", - "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e80f87d2c9495966768310fc531b487ce64237a2", + "reference": "e80f87d2c9495966768310fc531b487ce64237a2", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<4.4" + "symfony/console": "<5.3" }, "require-dev": { - "symfony/console": "^4.4|^5.0" + "symfony/console": "^5.3|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -3530,7 +3547,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.3.11" + "source": "https://github.com/symfony/yaml/tree/v5.4.3" }, "funding": [ { @@ -3546,20 +3563,20 @@ "type": "tidelift" } ], - "time": "2021-11-20T16:42:42+00:00" + "time": "2022-01-26T16:32:32+00:00" }, { "name": "twig/twig", - "version": "v3.3.3", + "version": "v3.3.8", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569" + "reference": "972d8604a92b7054828b539f2febb0211dd5945c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/a27fa056df8a6384316288ca8b0fa3a35fdeb569", - "reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/972d8604a92b7054828b539f2febb0211dd5945c", + "reference": "972d8604a92b7054828b539f2febb0211dd5945c", "shasum": "" }, "require": { @@ -3610,7 +3627,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.3.3" + "source": "https://github.com/twigphp/Twig/tree/v3.3.8" }, "funding": [ { @@ -3622,20 +3639,20 @@ "type": "tidelift" } ], - "time": "2021-09-17T08:44:23+00:00" + "time": "2022-02-04T06:59:48+00:00" }, { "name": "willdurand/negotiation", - "version": "3.0.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/willdurand/Negotiation.git", - "reference": "04e14f38d4edfcc974114a07d2777d90c98f3d9c" + "reference": "68e9ea0553ef6e2ee8db5c1d98829f111e623ec2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/willdurand/Negotiation/zipball/04e14f38d4edfcc974114a07d2777d90c98f3d9c", - "reference": "04e14f38d4edfcc974114a07d2777d90c98f3d9c", + "url": "https://api.github.com/repos/willdurand/Negotiation/zipball/68e9ea0553ef6e2ee8db5c1d98829f111e623ec2", + "reference": "68e9ea0553ef6e2ee8db5c1d98829f111e623ec2", "shasum": "" }, "require": { @@ -3676,9 +3693,9 @@ ], "support": { "issues": "https://github.com/willdurand/Negotiation/issues", - "source": "https://github.com/willdurand/Negotiation/tree/3.0.0" + "source": "https://github.com/willdurand/Negotiation/tree/3.1.0" }, - "time": "2020-09-25T08:01:41+00:00" + "time": "2022-01-30T20:08:53+00:00" } ], "packages-dev": [ @@ -3747,23 +3764,23 @@ }, { "name": "codeception/codeception", - "version": "4.1.22", + "version": "4.1.29", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "9777ec3690ceedc4bce2ed13af7af4ca4ee3088f" + "reference": "f8dec8f2bf5347cc596aaf141753f4fb2504c17c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/9777ec3690ceedc4bce2ed13af7af4ca4ee3088f", - "reference": "9777ec3690ceedc4bce2ed13af7af4ca4ee3088f", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/f8dec8f2bf5347cc596aaf141753f4fb2504c17c", + "reference": "f8dec8f2bf5347cc596aaf141753f4fb2504c17c", "shasum": "" }, "require": { "behat/gherkin": "^4.4.0", - "codeception/lib-asserts": "^1.0", + "codeception/lib-asserts": "^1.0 | 2.0.*@dev", "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.1.1 | ^9.0", - "codeception/stub": "^2.0 | ^3.0", + "codeception/stub": "^2.0 | ^3.0 | ^4.0", "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", @@ -3776,11 +3793,11 @@ "symfony/yaml": ">=2.7 <6.0" }, "require-dev": { - "codeception/module-asserts": "1.*@dev", - "codeception/module-cli": "1.*@dev", - "codeception/module-db": "1.*@dev", - "codeception/module-filesystem": "1.*@dev", - "codeception/module-phpbrowser": "1.*@dev", + "codeception/module-asserts": "^1.0 | 2.0.*@dev", + "codeception/module-cli": "^1.0 | 2.0.*@dev", + "codeception/module-db": "^1.0 | 2.0.*@dev", + "codeception/module-filesystem": "^1.0 | 2.0.*@dev", + "codeception/module-phpbrowser": "^1.0 | 2.0.*@dev", "codeception/specify": "~0.3", "codeception/util-universalframework": "*@dev", "monolog/monolog": "~1.8", @@ -3803,6 +3820,9 @@ "branch-alias": [] }, "autoload": { + "files": [ + "functions.php" + ], "psr-4": { "Codeception\\": "src/Codeception", "Codeception\\Extension\\": "ext" @@ -3830,7 +3850,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.1.22" + "source": "https://github.com/Codeception/Codeception/tree/4.1.29" }, "funding": [ { @@ -3838,7 +3858,7 @@ "type": "open_collective" } ], - "time": "2021-08-06T17:15:34+00:00" + "time": "2022-01-29T16:56:03+00:00" }, { "name": "codeception/lib-asserts", @@ -4073,16 +4093,16 @@ }, { "name": "codeception/phpunit-wrapper", - "version": "9.0.6", + "version": "9.0.7", "source": { "type": "git", "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "b0c06abb3181eedca690170f7ed0fd26a70bfacc" + "reference": "7d6b1a5ea4ed28d010e5d36b993db813eb49710b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/b0c06abb3181eedca690170f7ed0fd26a70bfacc", - "reference": "b0c06abb3181eedca690170f7ed0fd26a70bfacc", + "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/7d6b1a5ea4ed28d010e5d36b993db813eb49710b", + "reference": "7d6b1a5ea4ed28d010e5d36b993db813eb49710b", "shasum": "" }, "require": { @@ -4116,26 +4136,30 @@ "description": "PHPUnit classes used by Codeception", "support": { "issues": "https://github.com/Codeception/phpunit-wrapper/issues", - "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.6" + "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.7" }, - "time": "2020-12-28T13:59:47+00:00" + "time": "2022-01-26T14:43:10+00:00" }, { "name": "codeception/stub", - "version": "3.7.0", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/Codeception/Stub.git", - "reference": "468dd5fe659f131fc997f5196aad87512f9b1304" + "reference": "18a148dacd293fc7b044042f5aa63a82b08bff5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/468dd5fe659f131fc997f5196aad87512f9b1304", - "reference": "468dd5fe659f131fc997f5196aad87512f9b1304", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/18a148dacd293fc7b044042f5aa63a82b08bff5d", + "reference": "18a148dacd293fc7b044042f5aa63a82b08bff5d", "shasum": "" }, "require": { - "phpunit/phpunit": "^8.4 | ^9.0" + "php": "^7.4 | ^8.0", + "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | 10.0.x-dev" + }, + "require-dev": { + "consolidation/robo": "^3.0" }, "type": "library", "autoload": { @@ -4150,9 +4174,9 @@ "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", "support": { "issues": "https://github.com/Codeception/Stub/issues", - "source": "https://github.com/Codeception/Stub/tree/3.7.0" + "source": "https://github.com/Codeception/Stub/tree/4.0.2" }, - "time": "2020-07-03T15:54:43+00:00" + "time": "2022-01-31T19:25:15+00:00" }, { "name": "doctrine/instantiator", @@ -4277,16 +4301,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.0", + "version": "7.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94" + "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94", - "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79", + "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79", "shasum": "" }, "require": { @@ -4295,7 +4319,7 @@ "guzzlehttp/psr7": "^1.8.3 || ^2.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2" + "symfony/deprecation-contracts": "^2.2 || ^3.0" }, "provide": { "psr/http-client-implementation": "1.0" @@ -4381,7 +4405,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.0" + "source": "https://github.com/guzzle/guzzle/tree/7.4.1" }, "funding": [ { @@ -4397,7 +4421,7 @@ "type": "tidelift" } ], - "time": "2021-10-18T09:52:00+00:00" + "time": "2021-12-06T18:43:05+00:00" }, { "name": "guzzlehttp/promises", @@ -4500,9 +4524,6 @@ "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" - }, "require-dev": { "doctrine/collections": "^1.0", "doctrine/common": "^2.6", @@ -4510,12 +4531,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4543,16 +4564,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.13.1", + "version": "v4.13.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd" + "reference": "210577fe3cf7badcc5814d99455df46564f3c077" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/63a79e8daa781cac14e5195e63ed8ae231dd10fd", - "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", + "reference": "210577fe3cf7badcc5814d99455df46564f3c077", "shasum": "" }, "require": { @@ -4593,9 +4614,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2" }, - "time": "2021-11-03T20:52:16+00:00" + "time": "2021-11-30T19:35:32+00:00" }, { "name": "phar-io/manifest", @@ -4820,16 +4841,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.5.1", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae" + "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae", - "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", + "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", "shasum": "" }, "require": { @@ -4864,22 +4885,22 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" }, - "time": "2021-10-02T14:08:47+00:00" + "time": "2022-01-04T19:58:01+00:00" }, { "name": "phpspec/prophecy", - "version": "1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", - "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", "shasum": "" }, "require": { @@ -4931,22 +4952,22 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.14.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" }, - "time": "2021-09-10T09:02:12+00:00" + "time": "2021-12-08T12:19:24+00:00" }, { "name": "phpstan/phpstan", - "version": "1.2.0", + "version": "1.4.6", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "cbe085f9fdead5b6d62e4c022ca52dc9427a10ee" + "reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cbe085f9fdead5b6d62e4c022ca52dc9427a10ee", - "reference": "cbe085f9fdead5b6d62e4c022ca52dc9427a10ee", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8a7761f1c520e0dad6e04d862fdc697445457cfe", + "reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe", "shasum": "" }, "require": { @@ -4962,7 +4983,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -4977,7 +4998,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.2.0" + "source": "https://github.com/phpstan/phpstan/tree/1.4.6" }, "funding": [ { @@ -4997,7 +5018,7 @@ "type": "tidelift" } ], - "time": "2021-11-18T14:09:01+00:00" + "time": "2022-02-06T12:56:13+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -5051,16 +5072,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.9", + "version": "9.2.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b" + "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", - "reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687", + "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687", "shasum": "" }, "require": { @@ -5116,7 +5137,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.9" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.10" }, "funding": [ { @@ -5124,20 +5145,20 @@ "type": "github" } ], - "time": "2021-11-19T15:21:02+00:00" + "time": "2021-12-05T09:12:13+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { @@ -5176,7 +5197,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -5184,7 +5205,7 @@ "type": "github" } ], - "time": "2020-09-28T05:57:25+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { "name": "phpunit/php-invoker", @@ -5369,16 +5390,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.10", + "version": "9.5.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a" + "reference": "597cb647654ede35e43b137926dfdfef0fb11743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c814a05837f2edb0d1471d6e3f4ab3501ca3899a", - "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/597cb647654ede35e43b137926dfdfef0fb11743", + "reference": "597cb647654ede35e43b137926dfdfef0fb11743", "shasum": "" }, "require": { @@ -5456,11 +5477,11 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.10" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.13" }, "funding": [ { - "url": "https://phpunit.de/donate.html", + "url": "https://phpunit.de/sponsors.html", "type": "custom" }, { @@ -5468,7 +5489,7 @@ "type": "github" } ], - "time": "2021-09-25T07:38:51+00:00" + "time": "2022-01-24T07:33:35+00:00" }, { "name": "psr/http-client", @@ -6488,28 +6509,28 @@ }, { "name": "symfony/browser-kit", - "version": "v5.3.4", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "c1e3f64fcc631c96e2c5843b666db66679ced11c" + "reference": "18e73179c6a33d520de1b644941eba108dd811ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c1e3f64fcc631c96e2c5843b666db66679ced11c", - "reference": "c1e3f64fcc631c96e2c5843b666db66679ced11c", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/18e73179c6a33d520de1b644941eba108dd811ad", + "reference": "18e73179c6a33d520de1b644941eba108dd811ad", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "symfony/css-selector": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0" + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/process": "" @@ -6540,7 +6561,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.3.4" + "source": "https://github.com/symfony/browser-kit/tree/v5.4.3" }, "funding": [ { @@ -6556,20 +6577,20 @@ "type": "tidelift" } ], - "time": "2021-07-21T12:40:44+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/css-selector", - "version": "v5.3.4", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "7fb120adc7f600a59027775b224c13a33530dd90" + "reference": "b0a190285cd95cb019237851205b8140ef6e368e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90", - "reference": "7fb120adc7f600a59027775b224c13a33530dd90", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/b0a190285cd95cb019237851205b8140ef6e368e", + "reference": "b0a190285cd95cb019237851205b8140ef6e368e", "shasum": "" }, "require": { @@ -6606,7 +6627,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.3.4" + "source": "https://github.com/symfony/css-selector/tree/v5.4.3" }, "funding": [ { @@ -6622,25 +6643,25 @@ "type": "tidelift" } ], - "time": "2021-07-21T12:38:00+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.3.7", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "c7eef3a60ccfdd8eafe07f81652e769ac9c7146c" + "reference": "2634381fdf27a2a0a8ac8eb404025eb656c65d0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c7eef3a60ccfdd8eafe07f81652e769ac9c7146c", - "reference": "c7eef3a60ccfdd8eafe07f81652e769ac9c7146c", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2634381fdf27a2a0a8ac8eb404025eb656c65d0c", + "reference": "2634381fdf27a2a0a8ac8eb404025eb656c65d0c", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "^1.16" @@ -6650,7 +6671,7 @@ }, "require-dev": { "masterminds/html5": "^2.6", - "symfony/css-selector": "^4.4|^5.0" + "symfony/css-selector": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/css-selector": "" @@ -6681,7 +6702,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.3.7" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.3" }, "funding": [ { @@ -6697,24 +6718,25 @@ "type": "tidelift" } ], - "time": "2021-08-29T19:32:13+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/finder", - "version": "v5.3.7", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93" + "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a10000ada1e600d109a6c7632e9ac42e8bf2fb93", - "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93", + "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-php80": "^1.16" }, "type": "library", @@ -6743,7 +6765,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.3.7" + "source": "https://github.com/symfony/finder/tree/v5.4.3" }, "funding": [ { @@ -6759,7 +6781,7 @@ "type": "tidelift" } ], - "time": "2021-08-04T21:20:46+00:00" + "time": "2022-01-26T16:34:36+00:00" }, { "name": "theseer/tokenizer", @@ -6890,5 +6912,5 @@ "platform-overrides": { "php": "7.4.1" }, - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.2.0" } From b6c3db082aa187c07d4366c4d58b0290503c9c0b Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Mon, 7 Feb 2022 14:03:05 +0200 Subject: [PATCH 06/54] Update composer dependencies --- composer.json | 25 +++++++++++++------------ composer.lock | 19 ++++++++++--------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/composer.json b/composer.json index 530ec8b18e..5256d0cba3 100644 --- a/composer.json +++ b/composer.json @@ -19,25 +19,27 @@ "ext-zip": "*", "ext-dom": "*", "ext-libxml": "*", - "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-iconv": "^1.23", - "symfony/polyfill-php80": "^1.23", - "symfony/polyfill-php81": "^1.23", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-iconv": "^1.24", + "symfony/polyfill-php80": "^1.24", + "symfony/polyfill-php81": "^1.24", "psr/simple-cache": "^1.0", "psr/http-message": "^1.0", "psr/http-server-middleware": "^1.0", "psr/container": "^1.1", + "psr/log": "^1.1", "nyholm/psr7-server": "^1.0", "nyholm/psr7": "^1.4", "twig/twig": "~3.3", "erusev/parsedown": "^1.7", "erusev/parsedown-extra": "~0.8", - "symfony/contracts": "~v2.4", - "symfony/yaml": "~5.3", - "symfony/console": "~5.3", - "symfony/event-dispatcher": "~5.3", - "symfony/var-dumper": "~5.3", - "symfony/process": "~5.3", + "symfony/contracts": "~v2.5", + "symfony/yaml": "~5.4", + "symfony/console": "~5.4", + "symfony/event-dispatcher": "~5.4", + "symfony/var-dumper": "~5.4", + "symfony/process": "~5.4", + "symfony/http-client": "^5.4", "doctrine/cache": "^2.1", "doctrine/collections": "^1.6", "guzzlehttp/psr7": "^2.0", @@ -57,8 +59,7 @@ "dragonmantank/cron-expression": "^1.2", "willdurand/negotiation": "^3.0", "itsgoingd/clockwork": "^5.1", - "symfony/http-client": "^5.3", - "composer/semver": "^1.7", + "composer/semver": "^3.2", "rhukster/dom-sanitizer": "^1.0" }, "require-dev": { diff --git a/composer.lock b/composer.lock index f8bdd09756..62924dd660 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": "e820a44c58ff5ff11af7497e0b307084", + "content-hash": "7904ee8ce89cf8d439bbb0051377489a", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -132,28 +132,29 @@ }, { "name": "composer/semver", - "version": "1.7.2", + "version": "3.2.9", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" + "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", - "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", + "url": "https://api.github.com/repos/composer/semver/zipball/a951f614bd64dcd26137bc9b7b2637ddcfc57649", + "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5" + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -192,7 +193,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/1.7.2" + "source": "https://github.com/composer/semver/tree/3.2.9" }, "funding": [ { @@ -208,7 +209,7 @@ "type": "tidelift" } ], - "time": "2020-12-03T15:47:16+00:00" + "time": "2022-02-04T13:58:43+00:00" }, { "name": "doctrine/cache", From 965e03daf2eaa04450f2cbb7682e3864c1c14e1f Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Mon, 7 Feb 2022 14:14:11 +0200 Subject: [PATCH 07/54] Update dependencies so that everything works again --- composer.json | 4 ++-- composer.lock | 36 ++++++++++++++++++++---------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/composer.json b/composer.json index 5256d0cba3..8b7d91224f 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "psr/log": "^1.1", "nyholm/psr7-server": "^1.0", "nyholm/psr7": "^1.4", - "twig/twig": "~3.3", + "twig/twig": "^2.14", "erusev/parsedown": "^1.7", "erusev/parsedown-extra": "~0.8", "symfony/contracts": "~v2.5", @@ -40,7 +40,7 @@ "symfony/var-dumper": "~5.4", "symfony/process": "~5.4", "symfony/http-client": "^5.4", - "doctrine/cache": "^2.1", + "doctrine/cache": "^1.12", "doctrine/collections": "^1.6", "guzzlehttp/psr7": "^2.0", "filp/whoops": "~2.14", diff --git a/composer.lock b/composer.lock index 62924dd660..6d27477592 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": "7904ee8ce89cf8d439bbb0051377489a", + "content-hash": "50d7296f3edb64640f98af571e517f38", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -213,16 +213,16 @@ }, { "name": "doctrine/cache", - "version": "2.1.1", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" + "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", + "url": "https://api.github.com/repos/doctrine/cache/zipball/4cf401d14df219fa6f38b671f5493449151c9ad8", + "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8", "shasum": "" }, "require": { @@ -292,7 +292,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.1.1" + "source": "https://github.com/doctrine/cache/tree/1.12.1" }, "funding": [ { @@ -308,7 +308,7 @@ "type": "tidelift" } ], - "time": "2021-07-17T14:49:29+00:00" + "time": "2021-07-17T14:39:21+00:00" }, { "name": "doctrine/collections", @@ -3568,22 +3568,23 @@ }, { "name": "twig/twig", - "version": "v3.3.8", + "version": "v2.14.11", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "972d8604a92b7054828b539f2febb0211dd5945c" + "reference": "66baa66f29ee30e487e05f1679903e36eb01d727" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/972d8604a92b7054828b539f2febb0211dd5945c", - "reference": "972d8604a92b7054828b539f2febb0211dd5945c", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/66baa66f29ee30e487e05f1679903e36eb01d727", + "reference": "66baa66f29ee30e487e05f1679903e36eb01d727", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=7.1.3", "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3" + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.8" }, "require-dev": { "psr/container": "^1.0", @@ -3592,10 +3593,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "2.14-dev" } }, "autoload": { + "psr-0": { + "Twig_": "lib/" + }, "psr-4": { "Twig\\": "src/" } @@ -3628,7 +3632,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.3.8" + "source": "https://github.com/twigphp/Twig/tree/v2.14.11" }, "funding": [ { @@ -3640,7 +3644,7 @@ "type": "tidelift" } ], - "time": "2022-02-04T06:59:48+00:00" + "time": "2022-02-04T06:57:25+00:00" }, { "name": "willdurand/negotiation", From 58b54a70bd3f7004025fb36d87077e57681faf1a Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 12 Feb 2022 13:49:30 +0200 Subject: [PATCH 08/54] Removed `system.umask_fix` setting for security reasons --- CHANGELOG.md | 11 ++++ composer.json | 2 +- composer.lock | 44 +++++++-------- system/blueprints/config/system.yaml | 11 ---- system/config/system.yaml | 1 - .../src/Grav/Common/Twig/TwigEnvironment.php | 4 +- .../Grav/Common/Twig/WriteCacheFileTrait.php | 56 ------------------- tests/phpstan/phpstan.neon | 6 +- 8 files changed, 37 insertions(+), 98 deletions(-) delete mode 100644 system/src/Grav/Common/Twig/WriteCacheFileTrait.php diff --git a/CHANGELOG.md b/CHANGELOG.md index dd1fd9d5f1..30a86777e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# v1.8.0-dev +## mm/dd/2022 + +1. [](#new) + * Set minimum requirements to **PHP 7.4.1** + * Updated to **Twig 2.14** + * Updated to **Symfony 5.4** + * Updated to **RocketTheme/Toolbox 2.0** + * Updated to **Composer/Semver 3.2** + * Removed `system.umask_fix` setting for security reasons + # v1.7.31 ## mm/dd/2022 diff --git a/composer.json b/composer.json index 8b7d91224f..5e87924d83 100644 --- a/composer.json +++ b/composer.json @@ -64,7 +64,7 @@ }, "require-dev": { "codeception/codeception": "^4.1", - "phpstan/phpstan": "^1.2", + "phpstan/phpstan": "^1.4", "phpstan/phpstan-deprecation-rules": "^1.0", "phpunit/php-code-coverage": "~9.2", "getgrav/markdowndocs": "^2.0", diff --git a/composer.lock b/composer.lock index 6d27477592..2e0ddfe253 100644 --- a/composer.lock +++ b/composer.lock @@ -2183,12 +2183,12 @@ "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "80a4be7e8d3ae30b991ab8bfb7d5b89b581be053" + "reference": "baa2c7493d65580c1b4fc8e85f4981dbbc4052ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/80a4be7e8d3ae30b991ab8bfb7d5b89b581be053", - "reference": "80a4be7e8d3ae30b991ab8bfb7d5b89b581be053", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/baa2c7493d65580c1b4fc8e85f4981dbbc4052ec", + "reference": "baa2c7493d65580c1b4fc8e85f4981dbbc4052ec", "shasum": "" }, "require": { @@ -2250,7 +2250,7 @@ "source": "https://github.com/rockettheme/toolbox/tree/v2", "issues": "https://github.com/rockettheme/toolbox/issues" }, - "time": "2021-12-08T08:09:30+00:00" + "time": "2022-02-12T08:17:39+00:00" }, { "name": "seld/cli-prompt", @@ -2454,12 +2454,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Contracts\\": "" - }, "files": [ "Deprecation/function.php" ], + "psr-4": { + "Symfony\\Contracts\\": "" + }, "exclude-from-classmap": [ "**/Tests/" ] @@ -4685,16 +4685,16 @@ }, { "name": "phar-io/version", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "bae7c545bef187884426f042434e561ab1ddb182" + "reference": "15a90844ad40f127afd244c0cad228de2a80052a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", - "reference": "bae7c545bef187884426f042434e561ab1ddb182", + "url": "https://api.github.com/repos/phar-io/version/zipball/15a90844ad40f127afd244c0cad228de2a80052a", + "reference": "15a90844ad40f127afd244c0cad228de2a80052a", "shasum": "" }, "require": { @@ -4730,9 +4730,9 @@ "description": "Library for handling version information and constraints", "support": { "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.1.0" + "source": "https://github.com/phar-io/version/tree/3.1.1" }, - "time": "2021-02-23T14:00:09+00:00" + "time": "2022-02-07T21:56:48+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -5455,11 +5455,11 @@ } }, "autoload": { - "classmap": [ - "src/" - ], "files": [ "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -6054,16 +6054,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.3", + "version": "5.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" + "reference": "19c519631c5a511b7ed0ad64a6713fdb3fd25fe4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", - "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/19c519631c5a511b7ed0ad64a6713fdb3fd25fe4", + "reference": "19c519631c5a511b7ed0ad64a6713fdb3fd25fe4", "shasum": "" }, "require": { @@ -6106,7 +6106,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.4" }, "funding": [ { @@ -6114,7 +6114,7 @@ "type": "github" } ], - "time": "2021-06-11T13:31:12+00:00" + "time": "2022-02-10T07:01:19+00:00" }, { "name": "sebastian/lines-of-code", diff --git a/system/blueprints/config/system.yaml b/system/blueprints/config/system.yaml index b6beb41b94..bdd53e3897 100644 --- a/system/blueprints/config/system.yaml +++ b/system/blueprints/config/system.yaml @@ -872,17 +872,6 @@ form: validate: type: bool - twig.umask_fix: - type: toggle - label: PLUGIN_ADMIN.TWIG_UMASK_FIX - help: PLUGIN_ADMIN.TWIG_UMASK_FIX_HELP - highlight: 0 - options: - 1: PLUGIN_ADMIN.YES - 0: PLUGIN_ADMIN.NO - validate: - type: bool - assets: type: tab title: PLUGIN_ADMIN.ASSETS diff --git a/system/config/system.yaml b/system/config/system.yaml index 2de075b263..8f47dd9f95 100644 --- a/system/config/system.yaml +++ b/system/config/system.yaml @@ -115,7 +115,6 @@ twig: undefined_filters: true # Allow undefined filters safe_functions: [] # List of PHP functions which are allowed to be used as Twig functions safe_filters: [] # List of PHP functions which are allowed to be used as Twig filters - umask_fix: false # By default Twig creates cached files as 755, fix switches this to 775 assets: # Configuration for Assets Manager (JS, CSS) css_pipeline: false # The CSS pipeline is the unification of multiple CSS resources into one file diff --git a/system/src/Grav/Common/Twig/TwigEnvironment.php b/system/src/Grav/Common/Twig/TwigEnvironment.php index 6b2a86befa..242cdc34d8 100644 --- a/system/src/Grav/Common/Twig/TwigEnvironment.php +++ b/system/src/Grav/Common/Twig/TwigEnvironment.php @@ -20,10 +20,10 @@ */ class TwigEnvironment extends Environment { - use WriteCacheFileTrait; - /** * @inheritDoc + * + * TODO: Needed for Twig 1 compatibility. */ public function resolveTemplate($names) { diff --git a/system/src/Grav/Common/Twig/WriteCacheFileTrait.php b/system/src/Grav/Common/Twig/WriteCacheFileTrait.php deleted file mode 100644 index 575a281630..0000000000 --- a/system/src/Grav/Common/Twig/WriteCacheFileTrait.php +++ /dev/null @@ -1,56 +0,0 @@ -get('system.twig.umask_fix', false); - } - - if (self::$umask) { - $dir = dirname($file); - if (!is_dir($dir)) { - $old = umask(0002); - Folder::create($dir); - umask($old); - } - parent::writeCacheFile($file, $content); - chmod($file, 0775); - } else { - parent::writeCacheFile($file, $content); - } - } -} diff --git a/tests/phpstan/phpstan.neon b/tests/phpstan/phpstan.neon index 7d5d7cb008..89e2894cc3 100644 --- a/tests/phpstan/phpstan.neon +++ b/tests/phpstan/phpstan.neon @@ -11,6 +11,7 @@ parameters: - phpstan-bootstrap.php excludePaths: - */system/src/Grav/Common/Errors/Resources/layout.html.php + - */system/src/Twig/DeferredExtension/DeferredExtension.php # For below - */system/src/Twig/DeferredExtension/DeferredNodeVisitorCompat.php # Twig 1 - */system/src/Twig/DeferredExtension/DeferredNodeVisitor.php # Twig 2+3 # Ignore vendor dev dependencies and tests @@ -58,11 +59,6 @@ parameters: message: '#Cannot call method path\(\) on string#' path: '*/system/src/Grav/Common/Page/Media.php' - # TODO: system.twig.umask_fix will not work with Twig 2 anymore - - - message: '#Call to deprecated method writeCacheFile\(\) of class Twig\\Environment#' - path: '*/system/src/Grav/Common/Twig/WriteCacheFileTrait.php' - # PSR-16 Exception interfaces do not extend \Throwable - '#PHPDoc tag \@throws with type Psr\\SimpleCache\\(CacheException|InvalidArgumentException) is not subtype of Throwable#' From fcd9093f84aff9972f78cda01e80a5fb13e1e74f Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 12 Feb 2022 15:33:38 +0200 Subject: [PATCH 09/54] Use **Symfony Cache** instead of unmaintaided **Doctrine Cache** (with backward compatibility layer) --- CHANGELOG.md | 2 + composer.json | 5 +- composer.lock | 184 +++++++++++++++++- system/blueprints/config/system.yaml | 18 -- system/config/system.yaml | 4 +- .../Doctrine/Common/Cache/FilesystemCache.php | 93 +++++++++ system/src/Grav/Common/Cache.php | 101 +++++----- .../GPM/Remote/AbstractPackageCollection.php | 2 +- tests/phpstan/phpstan.neon | 1 + 9 files changed, 333 insertions(+), 77 deletions(-) create mode 100644 system/src/Doctrine/Common/Cache/FilesystemCache.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 30a86777e7..9e16e29f9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ * Updated to **Symfony 5.4** * Updated to **RocketTheme/Toolbox 2.0** * Updated to **Composer/Semver 3.2** + * Use **Symfony Cache** instead of unmaintaided **Doctrine Cache** (with backward compatibility layer) * Removed `system.umask_fix` setting for security reasons + * Removed deprecated APC, WinCache, XCache and Memcache support, use apcu or memcached instead # v1.7.31 ## mm/dd/2022 diff --git a/composer.json b/composer.json index 5e87924d83..0adb4ad3f0 100644 --- a/composer.json +++ b/composer.json @@ -34,13 +34,15 @@ "erusev/parsedown": "^1.7", "erusev/parsedown-extra": "~0.8", "symfony/contracts": "~v2.5", + "symfony/cache": "^5.4", "symfony/yaml": "~5.4", "symfony/console": "~5.4", "symfony/event-dispatcher": "~5.4", + "symfony/var-exporter": "~5.4", "symfony/var-dumper": "~5.4", "symfony/process": "~5.4", "symfony/http-client": "^5.4", - "doctrine/cache": "^1.12", + "doctrine/cache": "^2.1", "doctrine/collections": "^1.6", "guzzlehttp/psr7": "^2.0", "filp/whoops": "~2.14", @@ -102,6 +104,7 @@ "autoload": { "psr-4": { "Grav\\": "system/src/Grav", + "Doctrine\\": "system/src/Doctrine", "RocketTheme\\": "system/src/RocketTheme", "Twig\\": "system/src/Twig" }, diff --git a/composer.lock b/composer.lock index 2e0ddfe253..a30f7d25fa 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": "50d7296f3edb64640f98af571e517f38", + "content-hash": "434535f62c9cefcd7b04770108649eed", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -213,16 +213,16 @@ }, { "name": "doctrine/cache", - "version": "1.12.1", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8" + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/4cf401d14df219fa6f38b671f5493449151c9ad8", - "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8", + "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", "shasum": "" }, "require": { @@ -292,7 +292,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.12.1" + "source": "https://github.com/doctrine/cache/tree/2.1.1" }, "funding": [ { @@ -308,7 +308,7 @@ "type": "tidelift" } ], - "time": "2021-07-17T14:39:21+00:00" + "time": "2021-07-17T14:49:29+00:00" }, { "name": "doctrine/collections", @@ -2307,6 +2307,103 @@ }, "time": "2020-12-15T21:32:01+00:00" }, + { + "name": "symfony/cache", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825", + "reference": "4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1.1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/var-exporter": "^4.4|^5.0|^6.0" + }, + "conflict": { + "doctrine/dbal": "<2.13.1", + "symfony/dependency-injection": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.13.1|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-26T16:28:35+00:00" + }, { "name": "symfony/console", "version": "v5.4.3", @@ -3491,6 +3588,79 @@ ], "time": "2022-01-17T16:30:37+00:00" }, + { + "name": "symfony/var-exporter", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "b199936b7365be36663532e547812d3abb10234a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b199936b7365be36663532e547812d3abb10234a", + "reference": "b199936b7365be36663532e547812d3abb10234a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, { "name": "symfony/yaml", "version": "v5.4.3", diff --git a/system/blueprints/config/system.yaml b/system/blueprints/config/system.yaml index bdd53e3897..f32148f1b9 100644 --- a/system/blueprints/config/system.yaml +++ b/system/blueprints/config/system.yaml @@ -606,12 +606,8 @@ form: options: auto: Auto detect file: File - apc: APC apcu: APCu - xcache: Xcache - memcache: Memcache memcached: Memcached - wincache: WinCache redis: Redis cache.prefix: @@ -695,20 +691,6 @@ form: validate: type: bool - cache.memcache.server: - type: text - size: medium - label: PLUGIN_ADMIN.MEMCACHE_SERVER - help: PLUGIN_ADMIN.MEMCACHE_SERVER_HELP - placeholder: "localhost" - - cache.memcache.port: - type: text - size: small - label: PLUGIN_ADMIN.MEMCACHE_PORT - help: PLUGIN_ADMIN.MEMCACHE_PORT_HELP - placeholder: "11211" - cache.memcached.server: type: text size: medium diff --git a/system/config/system.yaml b/system/config/system.yaml index 8f47dd9f95..82f881398d 100644 --- a/system/config/system.yaml +++ b/system/config/system.yaml @@ -91,13 +91,13 @@ cache: enabled: true # Set to true to enable caching check: method: file # Method to check for updates in pages: file|folder|hash|none - driver: auto # One of: auto|file|apcu|memcache|wincache + driver: auto # One of: auto|file|apcu|memcached|redis prefix: 'g' # Cache prefix string (prevents cache conflicts) purge_at: '0 4 * * *' # How often to purge old file cache (using new scheduler) clear_at: '0 3 * * *' # How often to clear cache (using new scheduler) clear_job_type: 'standard' # Type to clear when processing the scheduled clear job `standard`|`all` clear_images_by_default: false # By default grav does not include processed images in cache clear, this can be enabled - cli_compatibility: false # Ensures only non-volatile drivers are used (file, redis, memcache, etc.) + cli_compatibility: false # Ensures only non-volatile drivers are used (file, redis, memcached, etc.) lifetime: 604800 # Lifetime of cached data in seconds (0 = infinite) gzip: false # GZip compress the page output allow_webserver_gzip: false # If true, `content-encoding: identity` but connection isn't closed before `onShutDown()` event diff --git a/system/src/Doctrine/Common/Cache/FilesystemCache.php b/system/src/Doctrine/Common/Cache/FilesystemCache.php new file mode 100644 index 0000000000..5c6845fb09 --- /dev/null +++ b/system/src/Doctrine/Common/Cache/FilesystemCache.php @@ -0,0 +1,93 @@ +pool = new FilesystemAdapter('', 0, $directory); + } + + /** + * {@inheritdoc} + */ + protected function doFetch($id) + { + $item = $this->pool->getItem(rawurlencode($id)); + + return $item->isHit() ? $item->get() : false; + } + + /** + * {@inheritdoc} + * + * @return bool + */ + protected function doContains($id) + { + return $this->pool->hasItem(rawurlencode($id)); + } + + /** + * {@inheritdoc} + * + * @return bool + */ + protected function doSave($id, $data, $lifeTime = 0) + { + $item = $this->pool->getItem(rawurlencode($id)); + + if (0 < $lifeTime) { + $item->expiresAfter($lifeTime); + } + + return $this->pool->save($item->set($data)); + } + + /** + * {@inheritdoc} + * + * @return bool + */ + protected function doDelete($id) + { + return $this->pool->deleteItem(rawurlencode($id)); + } + + /** + * {@inheritdoc} + * + * @return bool + */ + protected function doFlush() + { + return $this->pool->clear(); + } + + /** + * {@inheritdoc} + * + * @return array|null + */ + protected function doGetStats() + { + return null; + } + +} diff --git a/system/src/Grav/Common/Cache.php b/system/src/Grav/Common/Cache.php index ed40a085fb..e99f95712c 100644 --- a/system/src/Grav/Common/Cache.php +++ b/system/src/Grav/Common/Cache.php @@ -10,7 +10,8 @@ namespace Grav\Common; use DirectoryIterator; -use \Doctrine\Common\Cache as DoctrineCache; +use Doctrine\Common\Cache\Cache as DoctrineCache; +use Doctrine\Common\Cache\Psr6\DoctrineProvider; use Exception; use Grav\Common\Config\Config; use Grav\Common\Filesystem\Folder; @@ -18,6 +19,12 @@ use LogicException; use Psr\SimpleCache\CacheInterface; use RocketTheme\Toolbox\Event\Event; +use Symfony\Component\Cache\Adapter\AdapterInterface; +use Symfony\Component\Cache\Adapter\ApcuAdapter; +use Symfony\Component\Cache\Adapter\FilesystemAdapter; +use Symfony\Component\Cache\Adapter\MemcachedAdapter; +use Symfony\Component\Cache\Adapter\RedisAdapter; +use Symfony\Component\Cache\Psr16Cache; use Symfony\Component\EventDispatcher\EventDispatcher; use function dirname; use function extension_loaded; @@ -27,12 +34,11 @@ /** * The GravCache object is used throughout Grav to store and retrieve cached data. - * It uses DoctrineCache library and supports a variety of caching mechanisms. Those include: + * It uses Symfony library (adding backward compatibility to Doctrine Cache) and supports a variety of caching mechanisms. Those include: * * APCu * RedisCache - * MemCache - * MemCacheD + * MemCached * FileSystem */ class Cache extends Getters @@ -49,7 +55,10 @@ class Cache extends Getters /** @var Config $config */ protected $config; - /** @var DoctrineCache\CacheProvider */ + /** @var AdapterInterface */ + protected $adapter; + + /** @var DoctrineCache */ protected $driver; /** @var CacheInterface */ @@ -70,6 +79,7 @@ class Cache extends Getters protected static $standard_remove = [ 'cache://twig/', 'cache://doctrine/', + 'cache://grav/', 'cache://compiled/', 'cache://clockwork/', 'cache://validated-', @@ -80,6 +90,7 @@ class Cache extends Getters protected static $standard_remove_no_images = [ 'cache://twig/', 'cache://doctrine/', + 'cache://grav/', 'cache://compiled/', 'cache://clockwork/', 'cache://validated-', @@ -142,10 +153,10 @@ public function init(Grav $grav) // Cache key allows us to invalidate all cache on configuration changes. $this->key = ($prefix ?: 'g') . '-' . $uniqueness; - $this->cache_dir = $grav['locator']->findResource('cache://doctrine/' . $uniqueness, true, true); + $this->cache_dir = $grav['locator']->findResource('cache://grav/' . $uniqueness, true, true); $this->driver_setting = $this->config->get('system.cache.driver'); - $this->driver = $this->getCacheDriver(); - $this->driver->setNamespace($this->key); + $this->adapter = $this->getCacheAdapter(); + $this->driver = $this->getCacheDriver($this->adapter); /** @var EventDispatcher $dispatcher */ $dispatcher = Grav::instance()['events']; @@ -158,12 +169,7 @@ public function init(Grav $grav) public function getSimpleCache() { if (null === $this->simpleCache) { - $cache = new \Grav\Framework\Cache\Adapter\DoctrineCache($this->driver, '', $this->getLifetime()); - - // Disable cache key validation. - $cache->setValidation(false); - - $this->simpleCache = $cache; + $this->simpleCache = new Psr16Cache($this->adapter); } return $this->simpleCache; @@ -229,53 +235,38 @@ public function getCacheStatus() * If there is no config option for $driver in the config, or it's set to 'auto', it will * pick the best option based on which cache extensions are installed. * - * @return DoctrineCache\CacheProvider The cache driver to use + * @return AdapterInterface The cache driver to use */ - public function getCacheDriver() + public function getCacheAdapter(): AdapterInterface { - $setting = $this->driver_setting; + $setting = $this->driver_setting ?? 'auto'; $driver_name = 'file'; + if (in_array($setting, ['apc', 'xcache', 'wincache', 'memcache'], true)) { + throw new LogicException(sprintf('Cache driver for %s has been removed, use auto, file, apcu or memcached instead!', $setting)); + } + // CLI compatibility requires a non-volatile cache driver - if ($this->config->get('system.cache.cli_compatibility') && ( - $setting === 'auto' || $this->isVolatileDriver($setting))) { + if ($this->config->get('system.cache.cli_compatibility') && ($setting === 'auto' || $this->isVolatileDriver($setting))) { $setting = $driver_name; } - if (!$setting || $setting === 'auto') { + if ($setting === 'auto' || $this->isVolatileDriver($setting)) { if (extension_loaded('apcu')) { $driver_name = 'apcu'; - } elseif (extension_loaded('wincache')) { - $driver_name = 'wincache'; } } else { $driver_name = $setting; } $this->driver_name = $driver_name; + $namespace = $this->key; + $defaultLifetime = 0; switch ($driver_name) { case 'apc': case 'apcu': - $driver = new DoctrineCache\ApcuCache(); - break; - - case 'wincache': - $driver = new DoctrineCache\WinCacheCache(); - break; - - case 'memcache': - if (extension_loaded('memcache')) { - $memcache = new \Memcache(); - $memcache->connect( - $this->config->get('system.cache.memcache.server', 'localhost'), - $this->config->get('system.cache.memcache.port', 11211) - ); - $driver = new DoctrineCache\MemcacheCache(); - $driver->setMemcache($memcache); - } else { - throw new LogicException('Memcache PHP extension has not been installed'); - } + $adapter = new ApcuAdapter($namespace, $defaultLifetime); break; case 'memcached': @@ -285,8 +276,7 @@ public function getCacheDriver() $this->config->get('system.cache.memcached.server', 'localhost'), $this->config->get('system.cache.memcached.port', 11211) ); - $driver = new DoctrineCache\MemcachedCache(); - $driver->setMemcached($memcached); + $adapter = new MemcachedAdapter($memcached, $namespace, $defaultLifetime); } else { throw new LogicException('Memcached PHP extension has not been installed'); } @@ -318,19 +308,34 @@ public function getCacheDriver() throw new \RedisException('Could not select alternate Redis database ID'); } - $driver = new DoctrineCache\RedisCache(); - $driver->setRedis($redis); + $adapter = new RedisAdapter($redis, $namespace, $defaultLifetime); } else { throw new LogicException('Redis PHP extension has not been installed'); } break; default: - $driver = new DoctrineCache\FilesystemCache($this->cache_dir); + $adapter = new FilesystemAdapter($namespace, $defaultLifetime, $this->cache_dir); break; } - return $driver; + return $adapter; + } + + /** + * Automatically picks the cache mechanism to use. If you pick one manually it will use that + * If there is no config option for $driver in the config, or it's set to 'auto', it will + * pick the best option based on which cache extensions are installed. + * + * @return DoctrineCache The cache driver to use + */ + public function getCacheDriver(AdapterInterface $adapter = null) + { + if (null === $adapter) { + $adapter = $this->getCacheAdapter(); + } + + return DoctrineProvider::wrap($adapter); } /** @@ -618,7 +623,7 @@ public function getDriverSetting() */ public function isVolatileDriver($setting) { - return in_array($setting, ['apc', 'apcu', 'xcache', 'wincache'], true); + return $setting === 'apcu'; } /** diff --git a/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php b/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php index 02e98e7595..d1e37ce243 100644 --- a/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php +++ b/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php @@ -12,7 +12,7 @@ use Grav\Common\Grav; use Grav\Common\GPM\Common\AbstractPackageCollection as BaseCollection; use Grav\Common\GPM\Response; -use \Doctrine\Common\Cache\FilesystemCache; +use Doctrine\Common\Cache\FilesystemCache; use RuntimeException; /** diff --git a/tests/phpstan/phpstan.neon b/tests/phpstan/phpstan.neon index 89e2894cc3..60cd4b1f7b 100644 --- a/tests/phpstan/phpstan.neon +++ b/tests/phpstan/phpstan.neon @@ -11,6 +11,7 @@ parameters: - phpstan-bootstrap.php excludePaths: - */system/src/Grav/Common/Errors/Resources/layout.html.php + - */system/src/Doctrine/Common/Cache/*.php - */system/src/Twig/DeferredExtension/DeferredExtension.php # For below - */system/src/Twig/DeferredExtension/DeferredNodeVisitorCompat.php # Twig 1 - */system/src/Twig/DeferredExtension/DeferredNodeVisitor.php # Twig 2+3 From d93d297dc4ae93fed2f38421f58a4c21b4343b39 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 12 Feb 2022 16:36:58 +0200 Subject: [PATCH 10/54] Updated to **Monolog 2.3** --- CHANGELOG.md | 1 + composer.json | 38 +++++++++++++++--------------- composer.lock | 65 ++++++++++++++++++++++++++++++--------------------- 3 files changed, 59 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e16e29f9c..e0cd357be6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Set minimum requirements to **PHP 7.4.1** * Updated to **Twig 2.14** * Updated to **Symfony 5.4** + * Updated to **Monolog 2.3** * Updated to **RocketTheme/Toolbox 2.0** * Updated to **Composer/Semver 3.2** * Use **Symfony Cache** instead of unmaintaided **Doctrine Cache** (with backward compatibility layer) diff --git a/composer.json b/composer.json index 0adb4ad3f0..036687617e 100644 --- a/composer.json +++ b/composer.json @@ -28,11 +28,6 @@ "psr/http-server-middleware": "^1.0", "psr/container": "^1.1", "psr/log": "^1.1", - "nyholm/psr7-server": "^1.0", - "nyholm/psr7": "^1.4", - "twig/twig": "^2.14", - "erusev/parsedown": "^1.7", - "erusev/parsedown-extra": "~0.8", "symfony/contracts": "~v2.5", "symfony/cache": "^5.4", "symfony/yaml": "~5.4", @@ -42,27 +37,32 @@ "symfony/var-dumper": "~5.4", "symfony/process": "~5.4", "symfony/http-client": "^5.4", + "twig/twig": "^2.14", + "monolog/monolog": "^2.3", "doctrine/cache": "^2.1", "doctrine/collections": "^1.6", - "guzzlehttp/psr7": "^2.0", - "filp/whoops": "~2.14", - "matthiasmullie/minify": "^1.3", - "monolog/monolog": "^1.26", - "getgrav/image": "^3.0", - "getgrav/cache": "^2.0", - "donatj/phpuseragentparser": "~1.5", "pimple/pimple": "~3.5.0", + "nyholm/psr7-server": "^1.0", + "nyholm/psr7": "^1.4", + "erusev/parsedown": "^1.7", + "erusev/parsedown-extra": "~0.8", "rockettheme/toolbox": "v2.x-dev", - "maximebf/debugbar": "~1.17", - "league/climate": "^3.7", + "composer/ca-bundle": "^1.3", + "composer/semver": "^3.2", + "dragonmantank/cron-expression": "^1.2", + "willdurand/negotiation": "^3.1", + "rhukster/dom-sanitizer": "^1.0", + "matthiasmullie/minify": "^1.3", + "donatj/phpuseragentparser": "~1.5", "antoligy/dom-string-iterators": "^1.0", "miljar/php-exif": "^0.6", - "composer/ca-bundle": "^1.2", - "dragonmantank/cron-expression": "^1.2", - "willdurand/negotiation": "^3.0", + "guzzlehttp/psr7": "^2.1", + "getgrav/image": "^3.0", + "getgrav/cache": "^2.0", + "filp/whoops": "~2.14", "itsgoingd/clockwork": "^5.1", - "composer/semver": "^3.2", - "rhukster/dom-sanitizer": "^1.0" + "maximebf/debugbar": "~1.17", + "league/climate": "^3.8" }, "require-dev": { "codeception/codeception": "^4.1", diff --git a/composer.lock b/composer.lock index a30f7d25fa..d64a7fa0a3 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": "434535f62c9cefcd7b04770108649eed", + "content-hash": "2eb207c627310c802d469bffc548285f", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -1284,51 +1284,64 @@ }, { "name": "monolog/monolog", - "version": "1.26.1", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5" + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c6b00f05152ae2c9b04a448f99c7590beb6042f5", - "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" + "php": ">=7.2", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "provide": { - "psr/log-implementation": "1.0.0" + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" }, "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "php-amqplib/php-amqplib": "~2.4", + "elasticsearch/elasticsearch": "^7", + "graylog2/gelf-php": "^1.4.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", "php-console/php-console": "^3.1.3", - "phpstan/phpstan": "^0.12.59", - "phpunit/phpunit": "~4.5", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", + "phpspec/prophecy": "^1.6.1", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", + "ruflin/elastica": ">=0.90@dev", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, "autoload": { "psr-4": { "Monolog\\": "src/Monolog" @@ -1342,11 +1355,11 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "homepage": "https://github.com/Seldaek/monolog", "keywords": [ "log", "logging", @@ -1354,7 +1367,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/1.26.1" + "source": "https://github.com/Seldaek/monolog/tree/2.3.5" }, "funding": [ { @@ -1366,7 +1379,7 @@ "type": "tidelift" } ], - "time": "2021-05-28T08:32:12+00:00" + "time": "2021-10-01T21:08:31+00:00" }, { "name": "nyholm/psr7", @@ -3140,12 +3153,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ From 2f85fe9c991f3a744003b99ecd929e1077a3bf51 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 12 Feb 2022 16:49:09 +0200 Subject: [PATCH 11/54] Move unmaintained/unused vendor dependencies to the end of the list --- composer.json | 11 ++++++----- composer.lock | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 036687617e..5223e1d9c9 100644 --- a/composer.json +++ b/composer.json @@ -43,7 +43,7 @@ "doctrine/collections": "^1.6", "pimple/pimple": "~3.5.0", "nyholm/psr7-server": "^1.0", - "nyholm/psr7": "^1.4", + "nyholm/psr7": "^1.5", "erusev/parsedown": "^1.7", "erusev/parsedown-extra": "~0.8", "rockettheme/toolbox": "v2.x-dev", @@ -54,14 +54,15 @@ "rhukster/dom-sanitizer": "^1.0", "matthiasmullie/minify": "^1.3", "donatj/phpuseragentparser": "~1.5", - "antoligy/dom-string-iterators": "^1.0", - "miljar/php-exif": "^0.6", "guzzlehttp/psr7": "^2.1", - "getgrav/image": "^3.0", - "getgrav/cache": "^2.0", "filp/whoops": "~2.14", "itsgoingd/clockwork": "^5.1", "maximebf/debugbar": "~1.17", + + "getgrav/image": "^3.0", + "getgrav/cache": "^2.0", + "antoligy/dom-string-iterators": "^1.0", + "miljar/php-exif": "^0.6", "league/climate": "^3.8" }, "require-dev": { diff --git a/composer.lock b/composer.lock index d64a7fa0a3..397d7d4f63 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": "2eb207c627310c802d469bffc548285f", + "content-hash": "02948233d8fb5864dab13f9c2c3a93ef", "packages": [ { "name": "antoligy/dom-string-iterators", From 176fd8f1d89981bbf8382cdfdc423fd6304d204c Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 12 Feb 2022 16:52:25 +0200 Subject: [PATCH 12/54] Changelog update --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0cd357be6..a80d5738f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,9 +8,9 @@ * Updated to **Monolog 2.3** * Updated to **RocketTheme/Toolbox 2.0** * Updated to **Composer/Semver 3.2** - * Use **Symfony Cache** instead of unmaintaided **Doctrine Cache** (with backward compatibility layer) + * Use **Symfony Cache** (with backward compatibility layer) instead of unmaintained **Doctrine Cache** * Removed `system.umask_fix` setting for security reasons - * Removed deprecated APC, WinCache, XCache and Memcache support, use apcu or memcached instead + * Removed deprecated **APC**, **WinCache**, **XCache** and **Memcache** support, use apcu or memcached instead # v1.7.31 ## mm/dd/2022 From 6d0a436834b43c6c9547b4e4ba445a4f4be62460 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 12 Feb 2022 16:58:07 +0200 Subject: [PATCH 13/54] Changelog update (pt 2) --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a80d5738f3..e7e2753e7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,9 +8,9 @@ * Updated to **Monolog 2.3** * Updated to **RocketTheme/Toolbox 2.0** * Updated to **Composer/Semver 3.2** - * Use **Symfony Cache** (with backward compatibility layer) instead of unmaintained **Doctrine Cache** + * Use **Symfony Cache** instead of unmaintained **Doctrine Cache** + * Removed unsupported **APC**, **WinCache**, **XCache** and **Memcache**, use apcu or memcached instead * Removed `system.umask_fix` setting for security reasons - * Removed deprecated **APC**, **WinCache**, **XCache** and **Memcache** support, use apcu or memcached instead # v1.7.31 ## mm/dd/2022 From 7660a80ef7d03967c2f0285db866457a67c2b44f Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 16 Feb 2022 09:51:09 +0200 Subject: [PATCH 14/54] Use older monolog due to clockwork incompatibility --- composer.json | 2 +- composer.lock | 109 ++++++++++++++++++++++---------------------------- 2 files changed, 49 insertions(+), 62 deletions(-) diff --git a/composer.json b/composer.json index 5223e1d9c9..b4de0d8922 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "symfony/process": "~5.4", "symfony/http-client": "^5.4", "twig/twig": "^2.14", - "monolog/monolog": "^2.3", + "monolog/monolog": "^1.26", "doctrine/cache": "^2.1", "doctrine/collections": "^1.6", "pimple/pimple": "~3.5.0", diff --git a/composer.lock b/composer.lock index 397d7d4f63..1453147645 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": "02948233d8fb5864dab13f9c2c3a93ef", + "content-hash": "6702324dc169762ac938f9d6553149ec", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -894,22 +894,21 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.1.4", + "version": "v5.1.5", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "7252aa771b77ac8678b44290fd7ec7577435cce6" + "reference": "6a7b3942224fa53cf3704d9adba636e1f3dfeb9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/7252aa771b77ac8678b44290fd7ec7577435cce6", - "reference": "7252aa771b77ac8678b44290fd7ec7577435cce6", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/6a7b3942224fa53cf3704d9adba636e1f3dfeb9a", + "reference": "6a7b3942224fa53cf3704d9adba636e1f3dfeb9a", "shasum": "" }, "require": { "ext-json": "*", - "php": ">=5.6", - "psr/log": "1.* || ^2.0" + "php": ">=5.6" }, "type": "library", "extra": { @@ -951,7 +950,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.4" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.5" }, "funding": [ { @@ -959,7 +958,7 @@ "type": "github" } ], - "time": "2022-01-30T12:36:18+00:00" + "time": "2022-02-13T22:57:42+00:00" }, { "name": "league/climate", @@ -1159,25 +1158,26 @@ }, { "name": "maximebf/debugbar", - "version": "v1.17.3", + "version": "v1.18.0", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "e8ac3499af0ea5b440908e06cc0abe5898008b3c" + "reference": "0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/e8ac3499af0ea5b440908e06cc0abe5898008b3c", - "reference": "e8ac3499af0ea5b440908e06cc0abe5898008b3c", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6", + "reference": "0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6", "shasum": "" }, "require": { "php": "^7.1|^8", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^2.6|^3|^4|^5" + "symfony/var-dumper": "^2.6|^3|^4|^5|^6" }, "require-dev": { - "phpunit/phpunit": "^7.5.20 || ^9.4.2" + "phpunit/phpunit": "^7.5.20 || ^9.4.2", + "twig/twig": "^1.38|^2.7|^3.0" }, "suggest": { "kriswallsmith/assetic": "The best way to manage assets", @@ -1218,9 +1218,9 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.3" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.18.0" }, - "time": "2021-10-19T12:33:27+00:00" + "time": "2021-12-27T18:49:48+00:00" }, { "name": "miljar/php-exif", @@ -1284,64 +1284,51 @@ }, { "name": "monolog/monolog", - "version": "2.3.5", + "version": "1.26.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" + "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", - "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c6b00f05152ae2c9b04a448f99c7590beb6042f5", + "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5", "shasum": "" }, "require": { - "php": ">=7.2", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" + "php": ">=5.3.0", + "psr/log": "~1.0" }, "provide": { - "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + "psr/log-implementation": "1.0.0" }, "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7", - "graylog2/gelf-php": "^1.4.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", - "phpspec/prophecy": "^1.6.1", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5", - "predis/predis": "^1.1", - "rollbar/rollbar": "^1.3", - "ruflin/elastica": ">=0.90@dev", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "ext-mongo": "Allow sending log messages to a MongoDB server", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, "autoload": { "psr-4": { "Monolog\\": "src/Monolog" @@ -1355,11 +1342,11 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" + "homepage": "http://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", + "homepage": "http://github.com/Seldaek/monolog", "keywords": [ "log", "logging", @@ -1367,7 +1354,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.3.5" + "source": "https://github.com/Seldaek/monolog/tree/1.26.1" }, "funding": [ { @@ -1379,7 +1366,7 @@ "type": "tidelift" } ], - "time": "2021-10-01T21:08:31+00:00" + "time": "2021-05-28T08:32:12+00:00" }, { "name": "nyholm/psr7", @@ -4531,12 +4518,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6237,16 +6224,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.4", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "19c519631c5a511b7ed0ad64a6713fdb3fd25fe4" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/19c519631c5a511b7ed0ad64a6713fdb3fd25fe4", - "reference": "19c519631c5a511b7ed0ad64a6713fdb3fd25fe4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { @@ -6289,7 +6276,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.4" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -6297,7 +6284,7 @@ "type": "github" } ], - "time": "2022-02-10T07:01:19+00:00" + "time": "2022-02-14T08:28:10+00:00" }, { "name": "sebastian/lines-of-code", From d9ede28b998bf4bafd8d9335d83a4c0cfc421c4c Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 19 Feb 2022 12:18:40 +0200 Subject: [PATCH 15/54] Composer update --- composer.lock | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/composer.lock b/composer.lock index 1453147645..d8f4ebd5aa 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": "6702324dc169762ac938f9d6553149ec", + "content-hash": "ba7b3ffcec2dcdb3edc77239dc2c74f7", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -2183,12 +2183,12 @@ "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "baa2c7493d65580c1b4fc8e85f4981dbbc4052ec" + "reference": "1b50df5425c6d041a54efa2a0a8bb1dad7cd8925" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/baa2c7493d65580c1b4fc8e85f4981dbbc4052ec", - "reference": "baa2c7493d65580c1b4fc8e85f4981dbbc4052ec", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/1b50df5425c6d041a54efa2a0a8bb1dad7cd8925", + "reference": "1b50df5425c6d041a54efa2a0a8bb1dad7cd8925", "shasum": "" }, "require": { @@ -2250,7 +2250,7 @@ "source": "https://github.com/rockettheme/toolbox/tree/v2", "issues": "https://github.com/rockettheme/toolbox/issues" }, - "time": "2022-02-12T08:17:39+00:00" + "time": "2022-02-16T08:04:01+00:00" }, { "name": "seld/cli-prompt", @@ -5247,16 +5247,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.10", + "version": "9.2.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687" + "reference": "665a1ac0a763c51afc30d6d130dac0813092b17f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687", - "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/665a1ac0a763c51afc30d6d130dac0813092b17f", + "reference": "665a1ac0a763c51afc30d6d130dac0813092b17f", "shasum": "" }, "require": { @@ -5312,7 +5312,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.10" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.11" }, "funding": [ { @@ -5320,7 +5320,7 @@ "type": "github" } ], - "time": "2021-12-05T09:12:13+00:00" + "time": "2022-02-18T12:46:09+00:00" }, { "name": "phpunit/php-file-iterator", @@ -5565,16 +5565,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.13", + "version": "9.5.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "597cb647654ede35e43b137926dfdfef0fb11743" + "reference": "1883687169c017d6ae37c58883ca3994cfc34189" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/597cb647654ede35e43b137926dfdfef0fb11743", - "reference": "597cb647654ede35e43b137926dfdfef0fb11743", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1883687169c017d6ae37c58883ca3994cfc34189", + "reference": "1883687169c017d6ae37c58883ca3994cfc34189", "shasum": "" }, "require": { @@ -5652,7 +5652,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.14" }, "funding": [ { @@ -5664,7 +5664,7 @@ "type": "github" } ], - "time": "2022-01-24T07:33:35+00:00" + "time": "2022-02-18T12:54:07+00:00" }, { "name": "psr/http-client", From 85eaf308d5a7cc00eb4ea78a9a683f4e42cfb5c0 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 19 Feb 2022 13:17:19 +0200 Subject: [PATCH 16/54] Fixed FlexDirectory::getCache() after converting to Symfony Cache --- system/src/Grav/Common/Cache.php | 15 ++++++++++----- system/src/Grav/Framework/Flex/FlexDirectory.php | 4 +++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/system/src/Grav/Common/Cache.php b/system/src/Grav/Common/Cache.php index e99f95712c..0032fdcb7d 100644 --- a/system/src/Grav/Common/Cache.php +++ b/system/src/Grav/Common/Cache.php @@ -11,6 +11,7 @@ use DirectoryIterator; use Doctrine\Common\Cache\Cache as DoctrineCache; +use Doctrine\Common\Cache\CacheProvider; use Doctrine\Common\Cache\Psr6\DoctrineProvider; use Exception; use Grav\Common\Config\Config; @@ -58,7 +59,7 @@ class Cache extends Getters /** @var AdapterInterface */ protected $adapter; - /** @var DoctrineCache */ + /** @var CacheProvider */ protected $driver; /** @var CacheInterface */ @@ -235,9 +236,13 @@ public function getCacheStatus() * If there is no config option for $driver in the config, or it's set to 'auto', it will * pick the best option based on which cache extensions are installed. * + * @param string|null $namespace + * @param int|null $defaultLifetime * @return AdapterInterface The cache driver to use + * @throws \RedisException + * @throws \Symfony\Component\Cache\Exception\CacheException */ - public function getCacheAdapter(): AdapterInterface + public function getCacheAdapter(string $namespace = null, int $defaultLifetime = null): AdapterInterface { $setting = $this->driver_setting ?? 'auto'; $driver_name = 'file'; @@ -260,13 +265,13 @@ public function getCacheAdapter(): AdapterInterface } $this->driver_name = $driver_name; - $namespace = $this->key; - $defaultLifetime = 0; + $namespace = $namespace ?? $this->key; + $defaultLifetime = $defaultLifetime ?? 0; switch ($driver_name) { case 'apc': case 'apcu': - $adapter = new ApcuAdapter($namespace, $defaultLifetime); + $adapter = new ApcuAdapter($namespace, $defaultLifetime); break; case 'memcached': diff --git a/system/src/Grav/Framework/Flex/FlexDirectory.php b/system/src/Grav/Framework/Flex/FlexDirectory.php index f96633b31a..472a5ffa8d 100644 --- a/system/src/Grav/Framework/Flex/FlexDirectory.php +++ b/system/src/Grav/Framework/Flex/FlexDirectory.php @@ -34,6 +34,7 @@ use RocketTheme\Toolbox\File\YamlFile; use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator; use RuntimeException; +use Symfony\Component\Cache\Psr16Cache; use function call_user_func_array; use function count; use function is_array; @@ -421,7 +422,8 @@ public function getCache(string $namespace = null) if (Utils::isAdminPlugin()) { $key = substr($key, 0, -1); } - $cache = new DoctrineCache($gravCache->getCacheDriver(), 'flex-objects-' . $this->getFlexType() . $key, $lifetime); + + $cache = new Psr16Cache($gravCache->getCacheAdapter('flex-objects-' . $this->getFlexType() . $key, $lifetime)); } } catch (Exception $e) { /** @var Debugger $debugger */ From 93bb929b3821c5569bd23638eb92bdafe3b17142 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 19 Feb 2022 13:17:34 +0200 Subject: [PATCH 17/54] Phpstan updates --- .../classes/Grav/UtilsPathinfoExtension.php | 56 +++++++++++++++++++ .../UniformResourceLocatorExtension.php | 2 +- tests/phpstan/extension.neon | 4 ++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 tests/phpstan/classes/Grav/UtilsPathinfoExtension.php diff --git a/tests/phpstan/classes/Grav/UtilsPathinfoExtension.php b/tests/phpstan/classes/Grav/UtilsPathinfoExtension.php new file mode 100644 index 0000000000..e07099c0eb --- /dev/null +++ b/tests/phpstan/classes/Grav/UtilsPathinfoExtension.php @@ -0,0 +1,56 @@ +getName() === 'pathinfo'; + } + + public function getTypeFromStaticMethodCall( + MethodReflection $methodReflection, + Node\Expr\StaticCall $methodCall, + Scope $scope + ): Type + { + $argsCount = count($methodCall->getArgs()); + if ($argsCount === 0) { + return ParametersAcceptorSelector::selectSingle($methodReflection->getVariants())->getReturnType(); + } + if ($argsCount === 1) { + $stringType = new StringType(); + + $builder = ConstantArrayTypeBuilder::createFromConstantArray( + new ConstantArrayType( + [new ConstantStringType('dirname'), new ConstantStringType('basename'), new ConstantStringType('filename')], + [$stringType, $stringType, $stringType], + ), + ); + $builder->setOffsetValueType(new ConstantStringType('extension'), $stringType, true); + + return $builder->getArray(); + } + + return new StringType(); + } +} diff --git a/tests/phpstan/classes/Toolbox/UniformResourceLocatorExtension.php b/tests/phpstan/classes/Toolbox/UniformResourceLocatorExtension.php index 98bbca8a9f..8989e7ed01 100644 --- a/tests/phpstan/classes/Toolbox/UniformResourceLocatorExtension.php +++ b/tests/phpstan/classes/Toolbox/UniformResourceLocatorExtension.php @@ -1,4 +1,4 @@ - Date: Sat, 19 Feb 2022 13:47:29 +0200 Subject: [PATCH 18/54] Phpstan fixes --- system/src/Grav/Framework/Flex/Pages/FlexPageObject.php | 1 + .../Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php | 6 ++++++ .../Grav/Framework/Object/Base/ObjectCollectionTrait.php | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php index e700424b99..15557dfe08 100644 --- a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php +++ b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php @@ -39,6 +39,7 @@ class FlexPageObject extends FlexObject implements PageInterface, FlexTranslateI use PageAuthorsTrait; use PageContentTrait; use PageFormTrait; + /** @phpstan-use PageLegacyTrait */ use PageLegacyTrait; use PageRoutableTrait; use PageTranslateTrait; diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php index d75380373d..8b3417ff97 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php @@ -37,6 +37,9 @@ /** * Implements PageLegacyInterface + * + * @template T of FlexPageObject + * @template C of FlexPageCollection */ trait PageLegacyTrait { @@ -862,6 +865,7 @@ public function modularTwig($var = null): bool * Returns children of this page. * * @return PageCollectionInterface|FlexIndexInterface + * @phpstan-return FlexPageIndex */ public function children() { @@ -1040,6 +1044,7 @@ public function find($url, $all = false) * @param string|array $params * @param bool $pagination * @return PageCollectionInterface|Collection + * @phpstan-return PageCollectionInterface|Collection * @throws InvalidArgumentException */ public function collection($params = 'content', $pagination = true) @@ -1069,6 +1074,7 @@ public function collection($params = 'content', $pagination = true) * @param string|array $value * @param bool $only_published * @return PageCollectionInterface|Collection + * @phpstan-return PageCollectionInterface|Collection */ public function evaluate($value, $only_published = true) { diff --git a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php index e29370add8..31573cf748 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php @@ -21,8 +21,8 @@ * ObjectCollection Trait * @package Grav\Framework\Object * - * @template TKey as array-key - * @template T as ObjectInterface + * @template TKey of array-key + * @template T of ObjectInterface */ trait ObjectCollectionTrait { From f5e21645f6e7855b68730301a74176a7804bc19e Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 19 Feb 2022 14:17:02 +0200 Subject: [PATCH 19/54] Support phpstan level 6 in Framework classes --- CHANGELOG.md | 1 + composer.json | 2 +- system/src/Grav/Framework/Flex/Pages/FlexPageObject.php | 2 +- .../Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php | 8 ++++---- .../Grav/Framework/Object/Base/ObjectCollectionTrait.php | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4e44cf6bf..f9e9913b2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ * Use **Symfony Cache** instead of unmaintained **Doctrine Cache** * Removed unsupported **APC**, **WinCache**, **XCache** and **Memcache**, use apcu or memcached instead * Removed `system.umask_fix` setting for security reasons + * Support phpstan level 6 in Framework classes # v1.7.31 ## mm/dd/2022 diff --git a/composer.json b/composer.json index 6a2819627b..982925098e 100644 --- a/composer.json +++ b/composer.json @@ -129,7 +129,7 @@ "api-17": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.17.md", "post-create-project-cmd": "bin/grav install", "phpstan": "vendor/bin/phpstan analyse -l 2 -c ./tests/phpstan/phpstan.neon --memory-limit=720M system/src", - "phpstan-framework": "vendor/bin/phpstan analyse -l 5 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src/Grav/Framework system/src/Grav/Events system/src/Grav/Installer", + "phpstan-framework": "vendor/bin/phpstan analyse -l 6 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src/Grav/Framework system/src/Grav/Events system/src/Grav/Installer", "phpstan-plugins": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/plugins.neon --memory-limit=400M user/plugins", "test": "vendor/bin/codecept run unit", "test-windows": "vendor\\bin\\codecept run unit" diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php index 15557dfe08..91256455d3 100644 --- a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php +++ b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php @@ -39,7 +39,7 @@ class FlexPageObject extends FlexObject implements PageInterface, FlexTranslateI use PageAuthorsTrait; use PageContentTrait; use PageFormTrait; - /** @phpstan-use PageLegacyTrait */ + /** @phpstan-use PageLegacyTrait */ use PageLegacyTrait; use PageRoutableTrait; use PageTranslateTrait; diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php index 8b3417ff97..efb2ddfb20 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php @@ -38,8 +38,8 @@ /** * Implements PageLegacyInterface * + * @template TKey of array-key * @template T of FlexPageObject - * @template C of FlexPageCollection */ trait PageLegacyTrait { @@ -865,7 +865,7 @@ public function modularTwig($var = null): bool * Returns children of this page. * * @return PageCollectionInterface|FlexIndexInterface - * @phpstan-return FlexPageIndex + * @phpstan-return PageCollectionInterface */ public function children() { @@ -1044,7 +1044,7 @@ public function find($url, $all = false) * @param string|array $params * @param bool $pagination * @return PageCollectionInterface|Collection - * @phpstan-return PageCollectionInterface|Collection + * @phpstan-return PageCollectionInterface|Collection * @throws InvalidArgumentException */ public function collection($params = 'content', $pagination = true) @@ -1074,7 +1074,7 @@ public function collection($params = 'content', $pagination = true) * @param string|array $value * @param bool $only_published * @return PageCollectionInterface|Collection - * @phpstan-return PageCollectionInterface|Collection + * @phpstan-return PageCollectionInterface|Collection */ public function evaluate($value, $only_published = true) { diff --git a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php index 31573cf748..486619f4a3 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php @@ -367,7 +367,7 @@ public function collectionGroup($property) $collections = []; foreach ($this->group($property) as $id => $elements) { /** @phpstan-var static $collection */ - $collection = $this->createFrom($elements); + $collection = $this->createFrom($elements); /** @phpstan-ignore-line generic type in trait cannot be resolved */ $collections[$id] = $collection; } From 46f2a81b21b4c67af9403db8135bdfd0d11e9ff3 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sat, 19 Feb 2022 15:20:06 +0200 Subject: [PATCH 20/54] Phpstan fixes --- system/src/Grav/Common/Cache.php | 10 +++++++--- system/src/Grav/Common/Flex/Types/Pages/PageIndex.php | 2 +- system/src/Grav/Common/Flex/Types/Users/UserObject.php | 4 ++-- .../Common/Page/Interfaces/PageCollectionInterface.php | 4 ++-- system/src/Grav/Common/Page/Pages.php | 4 ++++ system/src/Grav/Framework/Flex/FlexDirectory.php | 4 ++-- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/system/src/Grav/Common/Cache.php b/system/src/Grav/Common/Cache.php index 0032fdcb7d..1f2c4dc5f6 100644 --- a/system/src/Grav/Common/Cache.php +++ b/system/src/Grav/Common/Cache.php @@ -10,7 +10,6 @@ namespace Grav\Common; use DirectoryIterator; -use Doctrine\Common\Cache\Cache as DoctrineCache; use Doctrine\Common\Cache\CacheProvider; use Doctrine\Common\Cache\Psr6\DoctrineProvider; use Exception; @@ -332,7 +331,7 @@ public function getCacheAdapter(string $namespace = null, int $defaultLifetime = * If there is no config option for $driver in the config, or it's set to 'auto', it will * pick the best option based on which cache extensions are installed. * - * @return DoctrineCache The cache driver to use + * @return CacheProvider The cache driver to use */ public function getCacheDriver(AdapterInterface $adapter = null) { @@ -340,7 +339,12 @@ public function getCacheDriver(AdapterInterface $adapter = null) $adapter = $this->getCacheAdapter(); } - return DoctrineProvider::wrap($adapter); + $cache = DoctrineProvider::wrap($adapter); + if (!$cache instanceof CacheProvider) { + throw new \RuntimeException('Internal error'); + } + + return $cache; } /** diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php b/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php index f3978bc1d7..b0b2c38b81 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php @@ -57,7 +57,7 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface public const ORDER_LIST_REGEX = '/(\/\d+)\.[^\/]+/u'; public const PAGE_ROUTE_REGEX = '/\/\d+\./u'; - /** @var PageObject|array */ + /** @var T|array */ protected $_root; /** @var array|null */ protected $_params; diff --git a/system/src/Grav/Common/Flex/Types/Users/UserObject.php b/system/src/Grav/Common/Flex/Types/Users/UserObject.php index d9217917d7..751ceb41e9 100644 --- a/system/src/Grav/Common/Flex/Types/Users/UserObject.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserObject.php @@ -87,9 +87,9 @@ class UserObject extends FlexObject implements UserInterface, Countable protected $_uploads_original; /** @var FileInterface|null */ protected $_storage; - /** @var UserGroupIndex */ + /** @var UserGroupIndex|null */ protected $_groups; - /** @var Access */ + /** @var Access|null */ protected $_access; /** @var array|null */ protected $access; diff --git a/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php b/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php index 493ab43985..d731736831 100644 --- a/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php +++ b/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php @@ -46,7 +46,7 @@ public function setParams(array $params); * Add a single page to a collection * * @param PageInterface $page - * @return $this + * @return $this|PageCollectionInterface */ public function addPage(PageInterface $page); @@ -63,7 +63,7 @@ public function addPage(PageInterface $page); * * Create a copy of this collection * - * @return static + * @return static */ public function copy(); diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index ec48b51730..36289e64d7 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -753,6 +753,10 @@ protected function evaluate($value, PageInterface $self = null) break; } + if (!$collection instanceof Collection) { + $collection = new Collection($collection->toArray()); + } + return $collection; } diff --git a/system/src/Grav/Framework/Flex/FlexDirectory.php b/system/src/Grav/Framework/Flex/FlexDirectory.php index 472a5ffa8d..c83ed83630 100644 --- a/system/src/Grav/Framework/Flex/FlexDirectory.php +++ b/system/src/Grav/Framework/Flex/FlexDirectory.php @@ -415,6 +415,7 @@ public function getCache(string $namespace = null) $config = $this->getConfig('object.cache.' . $namespace); if (empty($config['enabled'])) { $cache = new MemoryCache('flex-objects-' . $this->getFlexType()); + $cache->setValidation(false); } else { $lifetime = $config['lifetime'] ?? 60; @@ -431,10 +432,9 @@ public function getCache(string $namespace = null) $debugger->addException($e); $cache = new MemoryCache('flex-objects-' . $this->getFlexType()); + $cache->setValidation(false); } - // Disable cache key validation. - $cache->setValidation(false); $this->cache[$namespace] = $cache; } From 9d179e5b2ac68ba02a171eadf668ea03b4060a47 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 9 Mar 2022 12:33:20 +0200 Subject: [PATCH 21/54] Composer update --- composer.lock | 286 +++++++++++++++++++++++++++++--------------------- 1 file changed, 169 insertions(+), 117 deletions(-) diff --git a/composer.lock b/composer.lock index 1ae3f2084c..ea80de8afa 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": "ba7b3ffcec2dcdb3edc77239dc2c74f7", + "content-hash": "868318925a34cd137ac3543e10e0ec27", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -1368,6 +1368,53 @@ ], "time": "2021-05-28T08:32:12+00:00" }, + { + "name": "multiavatar/multiavatar-php", + "version": "v1.0.5", + "source": { + "type": "git", + "url": "https://github.com/multiavatar/multiavatar-php.git", + "reference": "13a62a656b1c2ca1c62dee57b4c1d8a3b04e6574" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/multiavatar/multiavatar-php/zipball/13a62a656b1c2ca1c62dee57b4c1d8a3b04e6574", + "reference": "13a62a656b1c2ca1c62dee57b4c1d8a3b04e6574", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "Multiavatar.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "authors": [ + { + "name": "Gie Katon", + "homepage": "https://giekaton.com" + } + ], + "description": "Multicultural Avatar Generator", + "homepage": "https://multiavatar.com", + "keywords": [ + "avatar", + "creator", + "generator", + "image", + "maker", + "picture", + "profile" + ], + "support": { + "issues": "https://github.com/multiavatar/multiavatar-php/issues", + "source": "https://github.com/multiavatar/multiavatar-php/tree/v1.0.5" + }, + "time": "2021-03-02T07:33:46+00:00" + }, { "name": "nyholm/psr7", "version": "1.5.0", @@ -2309,16 +2356,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825" + "reference": "c0718d0e01ac14251a45cc9c8b93716ec41ae64b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825", - "reference": "4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825", + "url": "https://api.github.com/repos/symfony/cache/zipball/c0718d0e01ac14251a45cc9c8b93716ec41ae64b", + "reference": "c0718d0e01ac14251a45cc9c8b93716ec41ae64b", "shasum": "" }, "require": { @@ -2386,7 +2433,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.3" + "source": "https://github.com/symfony/cache/tree/v5.4.6" }, "funding": [ { @@ -2402,20 +2449,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-03-02T12:56:28+00:00" }, { "name": "symfony/console", - "version": "v5.4.3", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8" + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2a86ec353d825c75856c6fd14fac416a7bdb6b8", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8", + "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad", + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad", "shasum": "" }, "require": { @@ -2485,7 +2532,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.3" + "source": "https://github.com/symfony/console/tree/v5.4.5" }, "funding": [ { @@ -2501,7 +2548,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-02-24T12:45:35+00:00" }, { "name": "symfony/contracts", @@ -2691,16 +2738,16 @@ }, { "name": "symfony/http-client", - "version": "v5.4.3", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "a5a467b62dc91eb253db51a91a2c1977f611f60c" + "reference": "fab84798694e45b4571d305125215699eb2b1f73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/a5a467b62dc91eb253db51a91a2c1977f611f60c", - "reference": "a5a467b62dc91eb253db51a91a2c1977f611f60c", + "url": "https://api.github.com/repos/symfony/http-client/zipball/fab84798694e45b4571d305125215699eb2b1f73", + "reference": "fab84798694e45b4571d305125215699eb2b1f73", "shasum": "" }, "require": { @@ -2758,7 +2805,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.3" + "source": "https://github.com/symfony/http-client/tree/v5.4.5" }, "funding": [ { @@ -2774,11 +2821,11 @@ "type": "tidelift" } ], - "time": "2022-01-22T06:53:01+00:00" + "time": "2022-02-27T08:46:18+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -2810,12 +2857,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2840,7 +2887,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -2860,7 +2907,7 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", @@ -2923,7 +2970,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.25.0" }, "funding": [ { @@ -2943,7 +2990,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -3004,7 +3051,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" }, "funding": [ { @@ -3024,7 +3071,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -3088,7 +3135,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -3108,7 +3155,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -3171,7 +3218,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -3191,16 +3238,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", "shasum": "" }, "require": { @@ -3254,7 +3301,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" }, "funding": [ { @@ -3270,11 +3317,11 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -3333,7 +3380,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" }, "funding": [ { @@ -3353,16 +3400,16 @@ }, { "name": "symfony/process", - "version": "v5.4.3", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "553f50487389a977eb31cf6b37faae56da00f753" + "reference": "95440409896f90a5f85db07a32b517ecec17fa4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/553f50487389a977eb31cf6b37faae56da00f753", - "reference": "553f50487389a977eb31cf6b37faae56da00f753", + "url": "https://api.github.com/repos/symfony/process/zipball/95440409896f90a5f85db07a32b517ecec17fa4c", + "reference": "95440409896f90a5f85db07a32b517ecec17fa4c", "shasum": "" }, "require": { @@ -3395,7 +3442,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.3" + "source": "https://github.com/symfony/process/tree/v5.4.5" }, "funding": [ { @@ -3411,7 +3458,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-01-30T18:16:22+00:00" }, { "name": "symfony/string", @@ -3446,12 +3493,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -3501,16 +3548,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "970a01f208bf895c5f327ba40b72288da43adec4" + "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/970a01f208bf895c5f327ba40b72288da43adec4", - "reference": "970a01f208bf895c5f327ba40b72288da43adec4", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/294e9da6e2e0dd404e983daa5aa74253d92c05d0", + "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0", "shasum": "" }, "require": { @@ -3570,7 +3617,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.3" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.6" }, "funding": [ { @@ -3586,20 +3633,20 @@ "type": "tidelift" } ], - "time": "2022-01-17T16:30:37+00:00" + "time": "2022-03-02T12:42:23+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "b199936b7365be36663532e547812d3abb10234a" + "reference": "49e2355fe6f59ea30c18ebb68edf13b7e20582e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b199936b7365be36663532e547812d3abb10234a", - "reference": "b199936b7365be36663532e547812d3abb10234a", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/49e2355fe6f59ea30c18ebb68edf13b7e20582e5", + "reference": "49e2355fe6f59ea30c18ebb68edf13b7e20582e5", "shasum": "" }, "require": { @@ -3643,7 +3690,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.3" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.6" }, "funding": [ { @@ -3659,7 +3706,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-03-02T12:42:23+00:00" }, { "name": "symfony/yaml", @@ -3939,16 +3986,16 @@ }, { "name": "codeception/codeception", - "version": "4.1.29", + "version": "4.1.30", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "f8dec8f2bf5347cc596aaf141753f4fb2504c17c" + "reference": "a035d77d070fa57fad438e07a65447aeca248c45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/f8dec8f2bf5347cc596aaf141753f4fb2504c17c", - "reference": "f8dec8f2bf5347cc596aaf141753f4fb2504c17c", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/a035d77d070fa57fad438e07a65447aeca248c45", + "reference": "a035d77d070fa57fad438e07a65447aeca248c45", "shasum": "" }, "require": { @@ -4025,7 +4072,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.1.29" + "source": "https://github.com/Codeception/Codeception/tree/4.1.30" }, "funding": [ { @@ -4033,7 +4080,7 @@ "type": "open_collective" } ], - "time": "2022-01-29T16:56:03+00:00" + "time": "2022-03-05T18:12:30+00:00" }, { "name": "codeception/lib-asserts", @@ -4355,29 +4402,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^9", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "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" }, "type": "library", "autoload": { @@ -4404,7 +4452,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, "funding": [ { @@ -4420,7 +4468,7 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "getgrav/markdowndocs", @@ -4625,12 +4673,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4684,25 +4732,29 @@ }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { @@ -4727,7 +4779,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, "funding": [ { @@ -4735,7 +4787,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "nikic/php-parser", @@ -5133,16 +5185,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.4.6", + "version": "1.4.8", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe" + "reference": "2a6d6704b17c4db6190cc3104056c0aad740cb15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8a7761f1c520e0dad6e04d862fdc697445457cfe", - "reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2a6d6704b17c4db6190cc3104056c0aad740cb15", + "reference": "2a6d6704b17c4db6190cc3104056c0aad740cb15", "shasum": "" }, "require": { @@ -5173,7 +5225,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.4.6" + "source": "https://github.com/phpstan/phpstan/tree/1.4.8" }, "funding": [ { @@ -5193,7 +5245,7 @@ "type": "tidelift" } ], - "time": "2022-02-06T12:56:13+00:00" + "time": "2022-03-04T13:03:56+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -5247,16 +5299,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.11", + "version": "9.2.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "665a1ac0a763c51afc30d6d130dac0813092b17f" + "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/665a1ac0a763c51afc30d6d130dac0813092b17f", - "reference": "665a1ac0a763c51afc30d6d130dac0813092b17f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", "shasum": "" }, "require": { @@ -5312,7 +5364,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15" }, "funding": [ { @@ -5320,7 +5372,7 @@ "type": "github" } ], - "time": "2022-02-18T12:46:09+00:00" + "time": "2022-03-07T09:28:20+00:00" }, { "name": "phpunit/php-file-iterator", @@ -5565,16 +5617,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.14", + "version": "9.5.18", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "1883687169c017d6ae37c58883ca3994cfc34189" + "reference": "1b5856028273bfd855e60a887278857d872ec67a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1883687169c017d6ae37c58883ca3994cfc34189", - "reference": "1883687169c017d6ae37c58883ca3994cfc34189", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1b5856028273bfd855e60a887278857d872ec67a", + "reference": "1b5856028273bfd855e60a887278857d872ec67a", "shasum": "" }, "require": { @@ -5590,7 +5642,7 @@ "phar-io/version": "^3.0.2", "php": ">=7.3", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.7", + "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -5652,7 +5704,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.14" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.18" }, "funding": [ { @@ -5664,7 +5716,7 @@ "type": "github" } ], - "time": "2022-02-18T12:54:07+00:00" + "time": "2022-03-08T06:52:28+00:00" }, { "name": "psr/http-client", @@ -6822,16 +6874,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "2634381fdf27a2a0a8ac8eb404025eb656c65d0c" + "reference": "c0bda97480d96337bd3866026159a8b358665457" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2634381fdf27a2a0a8ac8eb404025eb656c65d0c", - "reference": "2634381fdf27a2a0a8ac8eb404025eb656c65d0c", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c0bda97480d96337bd3866026159a8b358665457", + "reference": "c0bda97480d96337bd3866026159a8b358665457", "shasum": "" }, "require": { @@ -6877,7 +6929,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.3" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.6" }, "funding": [ { @@ -6893,7 +6945,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-03-02T12:42:23+00:00" }, { "name": "symfony/finder", From 36392acbeab50f34c622680d3a46572d793c769e Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 23 Mar 2022 13:00:19 +0200 Subject: [PATCH 22/54] Composer update --- composer.lock | 109 ++++++++++++++++++++++++-------------------------- 1 file changed, 52 insertions(+), 57 deletions(-) diff --git a/composer.lock b/composer.lock index ea80de8afa..18e58699fc 100644 --- a/composer.lock +++ b/composer.lock @@ -132,16 +132,16 @@ }, { "name": "composer/semver", - "version": "3.2.9", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649" + "reference": "5d8e574bb0e69188786b8ef77d43341222a41a71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/a951f614bd64dcd26137bc9b7b2637ddcfc57649", - "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649", + "url": "https://api.github.com/repos/composer/semver/zipball/5d8e574bb0e69188786b8ef77d43341222a41a71", + "reference": "5d8e574bb0e69188786b8ef77d43341222a41a71", "shasum": "" }, "require": { @@ -193,7 +193,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.9" + "source": "https://github.com/composer/semver/tree/3.3.1" }, "funding": [ { @@ -209,7 +209,7 @@ "type": "tidelift" } ], - "time": "2022-02-04T13:58:43+00:00" + "time": "2022-03-16T11:22:07+00:00" }, { "name": "doctrine/cache", @@ -779,16 +779,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.1.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72" + "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72", - "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c94a94f120803a18554c1805ef2e539f8285f9a2", + "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2", "shasum": "" }, "require": { @@ -812,7 +812,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" } }, "autoload": { @@ -874,7 +874,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.1.0" + "source": "https://github.com/guzzle/psr7/tree/2.2.1" }, "funding": [ { @@ -890,7 +890,7 @@ "type": "tidelift" } ], - "time": "2021-10-06T17:43:30+00:00" + "time": "2022-03-20T21:55:58+00:00" }, { "name": "itsgoingd/clockwork", @@ -1284,16 +1284,16 @@ }, { "name": "monolog/monolog", - "version": "1.26.1", + "version": "1.27.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5" + "reference": "52ebd235c1f7e0d5e1b16464b695a28335f8e44a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c6b00f05152ae2c9b04a448f99c7590beb6042f5", - "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/52ebd235c1f7e0d5e1b16464b695a28335f8e44a", + "reference": "52ebd235c1f7e0d5e1b16464b695a28335f8e44a", "shasum": "" }, "require": { @@ -1354,7 +1354,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/1.26.1" + "source": "https://github.com/Seldaek/monolog/tree/1.27.0" }, "funding": [ { @@ -1366,7 +1366,7 @@ "type": "tidelift" } ], - "time": "2021-05-28T08:32:12+00:00" + "time": "2022-03-13T20:29:46+00:00" }, { "name": "multiavatar/multiavatar-php", @@ -3986,16 +3986,16 @@ }, { "name": "codeception/codeception", - "version": "4.1.30", + "version": "4.1.31", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "a035d77d070fa57fad438e07a65447aeca248c45" + "reference": "15524571ae0686a7facc2eb1f40f600e5bbce9e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/a035d77d070fa57fad438e07a65447aeca248c45", - "reference": "a035d77d070fa57fad438e07a65447aeca248c45", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/15524571ae0686a7facc2eb1f40f600e5bbce9e5", + "reference": "15524571ae0686a7facc2eb1f40f600e5bbce9e5", "shasum": "" }, "require": { @@ -4072,7 +4072,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.1.30" + "source": "https://github.com/Codeception/Codeception/tree/4.1.31" }, "funding": [ { @@ -4080,7 +4080,7 @@ "type": "open_collective" } ], - "time": "2022-03-05T18:12:30+00:00" + "time": "2022-03-13T17:07:08+00:00" }, { "name": "codeception/lib-asserts", @@ -4524,16 +4524,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.1", + "version": "7.4.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79" + "reference": "ac1ec1cd9b5624694c3a40be801d94137afb12b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79", - "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ac1ec1cd9b5624694c3a40be801d94137afb12b4", + "reference": "ac1ec1cd9b5624694c3a40be801d94137afb12b4", "shasum": "" }, "require": { @@ -4628,7 +4628,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.1" + "source": "https://github.com/guzzle/guzzle/tree/7.4.2" }, "funding": [ { @@ -4644,7 +4644,7 @@ "type": "tidelift" } ], - "time": "2021-12-06T18:43:05+00:00" + "time": "2022-03-20T14:16:28+00:00" }, { "name": "guzzlehttp/promises", @@ -5185,16 +5185,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.4.8", + "version": "1.4.10", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "2a6d6704b17c4db6190cc3104056c0aad740cb15" + "reference": "898c479c39caa727bedf4311dd294a8f4e250e72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2a6d6704b17c4db6190cc3104056c0aad740cb15", - "reference": "2a6d6704b17c4db6190cc3104056c0aad740cb15", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/898c479c39caa727bedf4311dd294a8f4e250e72", + "reference": "898c479c39caa727bedf4311dd294a8f4e250e72", "shasum": "" }, "require": { @@ -5208,11 +5208,6 @@ "phpstan.phar" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, "autoload": { "files": [ "bootstrap.php" @@ -5225,7 +5220,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.4.8" + "source": "https://github.com/phpstan/phpstan/tree/1.4.10" }, "funding": [ { @@ -5245,7 +5240,7 @@ "type": "tidelift" } ], - "time": "2022-03-04T13:03:56+00:00" + "time": "2022-03-14T10:25:45+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -5617,16 +5612,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.18", + "version": "9.5.19", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "1b5856028273bfd855e60a887278857d872ec67a" + "reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1b5856028273bfd855e60a887278857d872ec67a", - "reference": "1b5856028273bfd855e60a887278857d872ec67a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/35ea4b7f3acabb26f4bb640f8c30866c401da807", + "reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807", "shasum": "" }, "require": { @@ -5656,7 +5651,7 @@ "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3.4", + "sebastian/type": "^3.0", "sebastian/version": "^3.0.2" }, "require-dev": { @@ -5704,7 +5699,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.18" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.19" }, "funding": [ { @@ -5716,7 +5711,7 @@ "type": "github" } ], - "time": "2022-03-08T06:52:28+00:00" + "time": "2022-03-15T09:57:31+00:00" }, { "name": "psr/http-client", @@ -6627,28 +6622,28 @@ }, { "name": "sebastian/type", - "version": "2.3.4", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" + "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -6671,7 +6666,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.4" + "source": "https://github.com/sebastianbergmann/type/tree/3.0.0" }, "funding": [ { @@ -6679,7 +6674,7 @@ "type": "github" } ], - "time": "2021-06-15T12:49:02+00:00" + "time": "2022-03-15T09:54:48+00:00" }, { "name": "sebastian/version", From 69bc3f7f252498a2954ca0aa5703b95a97aaa83c Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 31 Mar 2022 11:27:39 +0300 Subject: [PATCH 23/54] Composer update --- composer.lock | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/composer.lock b/composer.lock index 18e58699fc..2bc189ccc8 100644 --- a/composer.lock +++ b/composer.lock @@ -3785,16 +3785,16 @@ }, { "name": "twig/twig", - "version": "v2.14.11", + "version": "v2.14.12", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "66baa66f29ee30e487e05f1679903e36eb01d727" + "reference": "19c898bda30c5edea573bbb9ee1235d8cf6956ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/66baa66f29ee30e487e05f1679903e36eb01d727", - "reference": "66baa66f29ee30e487e05f1679903e36eb01d727", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/19c898bda30c5edea573bbb9ee1235d8cf6956ed", + "reference": "19c898bda30c5edea573bbb9ee1235d8cf6956ed", "shasum": "" }, "require": { @@ -3849,7 +3849,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.14.11" + "source": "https://github.com/twigphp/Twig/tree/v2.14.12" }, "funding": [ { @@ -3861,7 +3861,7 @@ "type": "tidelift" } ], - "time": "2022-02-04T06:57:25+00:00" + "time": "2022-03-25T09:34:52+00:00" }, { "name": "willdurand/negotiation", @@ -5068,16 +5068,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" + "reference": "77a32518733312af16a44300404e945338981de3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", + "reference": "77a32518733312af16a44300404e945338981de3", "shasum": "" }, "require": { @@ -5112,9 +5112,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" }, - "time": "2022-01-04T19:58:01+00:00" + "time": "2022-03-15T21:29:03+00:00" }, { "name": "phpspec/prophecy", @@ -5185,20 +5185,20 @@ }, { "name": "phpstan/phpstan", - "version": "1.4.10", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "898c479c39caa727bedf4311dd294a8f4e250e72" + "reference": "39953ac1452a8843702ee41a35b4861d3e8207a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/898c479c39caa727bedf4311dd294a8f4e250e72", - "reference": "898c479c39caa727bedf4311dd294a8f4e250e72", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/39953ac1452a8843702ee41a35b4861d3e8207a7", + "reference": "39953ac1452a8843702ee41a35b4861d3e8207a7", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.2|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -5220,7 +5220,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.4.10" + "source": "https://github.com/phpstan/phpstan/tree/1.5.3" }, "funding": [ { @@ -5240,7 +5240,7 @@ "type": "tidelift" } ], - "time": "2022-03-14T10:25:45+00:00" + "time": "2022-03-30T21:55:08+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", From e5498f58e689b41f253a0ceefdced56c8c47cdbd Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Tue, 19 Apr 2022 11:05:19 +0300 Subject: [PATCH 24/54] Composer update --- composer.lock | 166 ++++++++++++++++++++++++-------------------------- 1 file changed, 79 insertions(+), 87 deletions(-) diff --git a/composer.lock b/composer.lock index 2bc189ccc8..405e260860 100644 --- a/composer.lock +++ b/composer.lock @@ -132,16 +132,16 @@ }, { "name": "composer/semver", - "version": "3.3.1", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "5d8e574bb0e69188786b8ef77d43341222a41a71" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/5d8e574bb0e69188786b8ef77d43341222a41a71", - "reference": "5d8e574bb0e69188786b8ef77d43341222a41a71", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { @@ -193,7 +193,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.1" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -209,7 +209,7 @@ "type": "tidelift" } ], - "time": "2022-03-16T11:22:07+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "doctrine/cache", @@ -894,16 +894,16 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.1.5", + "version": "v5.1.6", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "6a7b3942224fa53cf3704d9adba636e1f3dfeb9a" + "reference": "9df41432da1d8cb39c7fda383ddcc02231c83ff3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/6a7b3942224fa53cf3704d9adba636e1f3dfeb9a", - "reference": "6a7b3942224fa53cf3704d9adba636e1f3dfeb9a", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/9df41432da1d8cb39c7fda383ddcc02231c83ff3", + "reference": "9df41432da1d8cb39c7fda383ddcc02231c83ff3", "shasum": "" }, "require": { @@ -950,7 +950,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.5" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.6" }, "funding": [ { @@ -958,7 +958,7 @@ "type": "github" } ], - "time": "2022-02-13T22:57:42+00:00" + "time": "2022-04-12T21:35:47+00:00" }, { "name": "league/climate", @@ -1027,16 +1027,16 @@ }, { "name": "matthiasmullie/minify", - "version": "1.3.66", + "version": "1.3.67", "source": { "type": "git", "url": "https://github.com/matthiasmullie/minify.git", - "reference": "45fd3b0f1dfa2c965857c6d4a470bea52adc31a6" + "reference": "acaee1b7ca3cd67a39d7f98673cacd7e4739a8d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/45fd3b0f1dfa2c965857c6d4a470bea52adc31a6", - "reference": "45fd3b0f1dfa2c965857c6d4a470bea52adc31a6", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/acaee1b7ca3cd67a39d7f98673cacd7e4739a8d9", + "reference": "acaee1b7ca3cd67a39d7f98673cacd7e4739a8d9", "shasum": "" }, "require": { @@ -1085,23 +1085,15 @@ ], "support": { "issues": "https://github.com/matthiasmullie/minify/issues", - "source": "https://github.com/matthiasmullie/minify/tree/1.3.66" + "source": "https://github.com/matthiasmullie/minify/tree/1.3.67" }, "funding": [ { - "url": "https://github.com/[user1", - "type": "github" - }, - { - "url": "https://github.com/matthiasmullie] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g.", - "type": "github" - }, - { - "url": "https://github.com/user2", + "url": "https://github.com/matthiasmullie", "type": "github" } ], - "time": "2021-01-06T15:18:10+00:00" + "time": "2022-03-24T08:54:59+00:00" }, { "name": "matthiasmullie/path-converter", @@ -2356,16 +2348,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.6", + "version": "v5.4.7", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "c0718d0e01ac14251a45cc9c8b93716ec41ae64b" + "reference": "ba06841ed293fcaf79a592f59fdaba471f7c756c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/c0718d0e01ac14251a45cc9c8b93716ec41ae64b", - "reference": "c0718d0e01ac14251a45cc9c8b93716ec41ae64b", + "url": "https://api.github.com/repos/symfony/cache/zipball/ba06841ed293fcaf79a592f59fdaba471f7c756c", + "reference": "ba06841ed293fcaf79a592f59fdaba471f7c756c", "shasum": "" }, "require": { @@ -2433,7 +2425,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.6" + "source": "https://github.com/symfony/cache/tree/v5.4.7" }, "funding": [ { @@ -2449,20 +2441,20 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:56:28+00:00" + "time": "2022-03-22T15:31:03+00:00" }, { "name": "symfony/console", - "version": "v5.4.5", + "version": "v5.4.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad" + "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad", - "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad", + "url": "https://api.github.com/repos/symfony/console/zipball/900275254f0a1a2afff1ab0e11abd5587a10e1d6", + "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6", "shasum": "" }, "require": { @@ -2532,7 +2524,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.5" + "source": "https://github.com/symfony/console/tree/v5.4.7" }, "funding": [ { @@ -2548,20 +2540,20 @@ "type": "tidelift" } ], - "time": "2022-02-24T12:45:35+00:00" + "time": "2022-03-31T17:09:19+00:00" }, { "name": "symfony/contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/contracts.git", - "reference": "1f4c95d47bddf0c1579779d4b85602c923ed2f1c" + "reference": "3373e197760d9ca59c56ae508ce66bdc55da4f4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/1f4c95d47bddf0c1579779d4b85602c923ed2f1c", - "reference": "1f4c95d47bddf0c1579779d4b85602c923ed2f1c", + "url": "https://api.github.com/repos/symfony/contracts/zipball/3373e197760d9ca59c56ae508ce66bdc55da4f4d", + "reference": "3373e197760d9ca59c56ae508ce66bdc55da4f4d", "shasum": "" }, "require": { @@ -2633,7 +2625,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/contracts/tree/v2.5.0" + "source": "https://github.com/symfony/contracts/tree/v2.5.1" }, "funding": [ { @@ -2649,7 +2641,7 @@ "type": "tidelift" } ], - "time": "2021-11-22T15:13:51+00:00" + "time": "2022-03-13T20:07:29+00:00" }, { "name": "symfony/event-dispatcher", @@ -2738,16 +2730,16 @@ }, { "name": "symfony/http-client", - "version": "v5.4.5", + "version": "v5.4.7", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "fab84798694e45b4571d305125215699eb2b1f73" + "reference": "88b6909f74fd1f2147e068411f71870a3b27ac56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/fab84798694e45b4571d305125215699eb2b1f73", - "reference": "fab84798694e45b4571d305125215699eb2b1f73", + "url": "https://api.github.com/repos/symfony/http-client/zipball/88b6909f74fd1f2147e068411f71870a3b27ac56", + "reference": "88b6909f74fd1f2147e068411f71870a3b27ac56", "shasum": "" }, "require": { @@ -2805,7 +2797,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.5" + "source": "https://github.com/symfony/http-client/tree/v5.4.7" }, "funding": [ { @@ -2821,7 +2813,7 @@ "type": "tidelift" } ], - "time": "2022-02-27T08:46:18+00:00" + "time": "2022-04-01T12:27:37+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3400,16 +3392,16 @@ }, { "name": "symfony/process", - "version": "v5.4.5", + "version": "v5.4.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "95440409896f90a5f85db07a32b517ecec17fa4c" + "reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/95440409896f90a5f85db07a32b517ecec17fa4c", - "reference": "95440409896f90a5f85db07a32b517ecec17fa4c", + "url": "https://api.github.com/repos/symfony/process/zipball/38a44b2517b470a436e1c944bf9b9ba3961137fb", + "reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb", "shasum": "" }, "require": { @@ -3442,7 +3434,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.5" + "source": "https://github.com/symfony/process/tree/v5.4.7" }, "funding": [ { @@ -3458,7 +3450,7 @@ "type": "tidelift" } ], - "time": "2022-01-30T18:16:22+00:00" + "time": "2022-03-18T16:18:52+00:00" }, { "name": "symfony/string", @@ -3637,16 +3629,16 @@ }, { "name": "symfony/var-exporter", - "version": "v5.4.6", + "version": "v5.4.7", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "49e2355fe6f59ea30c18ebb68edf13b7e20582e5" + "reference": "7eacaa588c9b27f2738575adb4a8457a80d9c807" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/49e2355fe6f59ea30c18ebb68edf13b7e20582e5", - "reference": "49e2355fe6f59ea30c18ebb68edf13b7e20582e5", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/7eacaa588c9b27f2738575adb4a8457a80d9c807", + "reference": "7eacaa588c9b27f2738575adb4a8457a80d9c807", "shasum": "" }, "require": { @@ -3690,7 +3682,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.6" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.7" }, "funding": [ { @@ -3706,7 +3698,7 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:42:23+00:00" + "time": "2022-03-31T17:09:19+00:00" }, { "name": "symfony/yaml", @@ -3785,16 +3777,16 @@ }, { "name": "twig/twig", - "version": "v2.14.12", + "version": "v2.14.13", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "19c898bda30c5edea573bbb9ee1235d8cf6956ed" + "reference": "66856cd0459df3dc97d32077a98454dc2a0ee75a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/19c898bda30c5edea573bbb9ee1235d8cf6956ed", - "reference": "19c898bda30c5edea573bbb9ee1235d8cf6956ed", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/66856cd0459df3dc97d32077a98454dc2a0ee75a", + "reference": "66856cd0459df3dc97d32077a98454dc2a0ee75a", "shasum": "" }, "require": { @@ -3849,7 +3841,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.14.12" + "source": "https://github.com/twigphp/Twig/tree/v2.14.13" }, "funding": [ { @@ -3861,7 +3853,7 @@ "type": "tidelift" } ], - "time": "2022-03-25T09:34:52+00:00" + "time": "2022-04-06T06:45:17+00:00" }, { "name": "willdurand/negotiation", @@ -5185,16 +5177,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.5.3", + "version": "1.5.6", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "39953ac1452a8843702ee41a35b4861d3e8207a7" + "reference": "799dd8c2d2c9c704bb55d2078078cb970cf0f6d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/39953ac1452a8843702ee41a35b4861d3e8207a7", - "reference": "39953ac1452a8843702ee41a35b4861d3e8207a7", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/799dd8c2d2c9c704bb55d2078078cb970cf0f6d1", + "reference": "799dd8c2d2c9c704bb55d2078078cb970cf0f6d1", "shasum": "" }, "require": { @@ -5220,7 +5212,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.5.3" + "source": "https://github.com/phpstan/phpstan/tree/1.5.6" }, "funding": [ { @@ -5240,7 +5232,7 @@ "type": "tidelift" } ], - "time": "2022-03-30T21:55:08+00:00" + "time": "2022-04-15T11:13:37+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -5612,16 +5604,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.19", + "version": "9.5.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807" + "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/35ea4b7f3acabb26f4bb640f8c30866c401da807", - "reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba", + "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba", "shasum": "" }, "require": { @@ -5699,7 +5691,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.19" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20" }, "funding": [ { @@ -5711,7 +5703,7 @@ "type": "github" } ], - "time": "2022-03-15T09:57:31+00:00" + "time": "2022-04-01T12:37:26+00:00" }, { "name": "psr/http-client", @@ -6131,16 +6123,16 @@ }, { "name": "sebastian/environment", - "version": "5.1.3", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", "shasum": "" }, "require": { @@ -6182,7 +6174,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" }, "funding": [ { @@ -6190,7 +6182,7 @@ "type": "github" } ], - "time": "2020-09-28T05:52:38+00:00" + "time": "2022-04-03T09:37:03+00:00" }, { "name": "sebastian/exporter", From 74c1dfa433e7a0e345018cc154a0a6853e2d1987 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 20 May 2022 16:48:41 +0300 Subject: [PATCH 25/54] Composer update --- composer.lock | 149 +++++++++++++++++++++++++------------------------- 1 file changed, 75 insertions(+), 74 deletions(-) diff --git a/composer.lock b/composer.lock index 405e260860..b334ea74be 100644 --- a/composer.lock +++ b/composer.lock @@ -381,16 +381,16 @@ }, { "name": "donatj/phpuseragentparser", - "version": "v1.5.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/donatj/PhpUserAgent.git", - "reference": "cc9d872cddfc180c52d084d0dff1e4aad653d37f" + "reference": "c84fd3c205097843aab93290f2a5744b4159e815" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/cc9d872cddfc180c52d084d0dff1e4aad653d37f", - "reference": "cc9d872cddfc180c52d084d0dff1e4aad653d37f", + "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/c84fd3c205097843aab93290f2a5744b4159e815", + "reference": "c84fd3c205097843aab93290f2a5744b4159e815", "shasum": "" }, "require": { @@ -399,6 +399,7 @@ "require-dev": { "camspiers/json-pretty": "~1.0", "donatj/drop": "*", + "ext-json": "*", "phpunit/phpunit": "~4.8|~9" }, "type": "library", @@ -433,11 +434,11 @@ ], "support": { "issues": "https://github.com/donatj/PhpUserAgent/issues", - "source": "https://github.com/donatj/PhpUserAgent/tree/v1.5.0" + "source": "https://github.com/donatj/PhpUserAgent/tree/v1.6.0" }, "funding": [ { - "url": "https://www.paypal.me/donatj/5", + "url": "https://www.paypal.me/donatj/15", "type": "custom" }, { @@ -445,7 +446,7 @@ "type": "github" } ], - "time": "2021-09-16T17:05:03+00:00" + "time": "2022-04-20T03:05:31+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1027,16 +1028,16 @@ }, { "name": "matthiasmullie/minify", - "version": "1.3.67", + "version": "1.3.68", "source": { "type": "git", "url": "https://github.com/matthiasmullie/minify.git", - "reference": "acaee1b7ca3cd67a39d7f98673cacd7e4739a8d9" + "reference": "c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/acaee1b7ca3cd67a39d7f98673cacd7e4739a8d9", - "reference": "acaee1b7ca3cd67a39d7f98673cacd7e4739a8d9", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297", + "reference": "c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297", "shasum": "" }, "require": { @@ -1085,7 +1086,7 @@ ], "support": { "issues": "https://github.com/matthiasmullie/minify/issues", - "source": "https://github.com/matthiasmullie/minify/tree/1.3.67" + "source": "https://github.com/matthiasmullie/minify/tree/1.3.68" }, "funding": [ { @@ -1093,7 +1094,7 @@ "type": "github" } ], - "time": "2022-03-24T08:54:59+00:00" + "time": "2022-04-19T08:28:56+00:00" }, { "name": "matthiasmullie/path-converter", @@ -2348,16 +2349,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "ba06841ed293fcaf79a592f59fdaba471f7c756c" + "reference": "4c6747cf7e56c6b8e3094dd24852bd3e364375b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/ba06841ed293fcaf79a592f59fdaba471f7c756c", - "reference": "ba06841ed293fcaf79a592f59fdaba471f7c756c", + "url": "https://api.github.com/repos/symfony/cache/zipball/4c6747cf7e56c6b8e3094dd24852bd3e364375b1", + "reference": "4c6747cf7e56c6b8e3094dd24852bd3e364375b1", "shasum": "" }, "require": { @@ -2425,7 +2426,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.7" + "source": "https://github.com/symfony/cache/tree/v5.4.8" }, "funding": [ { @@ -2441,20 +2442,20 @@ "type": "tidelift" } ], - "time": "2022-03-22T15:31:03+00:00" + "time": "2022-04-26T13:19:20+00:00" }, { "name": "symfony/console", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6" + "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/900275254f0a1a2afff1ab0e11abd5587a10e1d6", - "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6", + "url": "https://api.github.com/repos/symfony/console/zipball/ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", + "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", "shasum": "" }, "require": { @@ -2524,7 +2525,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.7" + "source": "https://github.com/symfony/console/tree/v5.4.8" }, "funding": [ { @@ -2540,7 +2541,7 @@ "type": "tidelift" } ], - "time": "2022-03-31T17:09:19+00:00" + "time": "2022-04-12T16:02:29+00:00" }, { "name": "symfony/contracts", @@ -2730,16 +2731,16 @@ }, { "name": "symfony/http-client", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "88b6909f74fd1f2147e068411f71870a3b27ac56" + "reference": "0dabec4e3898d3e00451dd47b5ef839168f9bbf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/88b6909f74fd1f2147e068411f71870a3b27ac56", - "reference": "88b6909f74fd1f2147e068411f71870a3b27ac56", + "url": "https://api.github.com/repos/symfony/http-client/zipball/0dabec4e3898d3e00451dd47b5ef839168f9bbf5", + "reference": "0dabec4e3898d3e00451dd47b5ef839168f9bbf5", "shasum": "" }, "require": { @@ -2797,7 +2798,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.7" + "source": "https://github.com/symfony/http-client/tree/v5.4.8" }, "funding": [ { @@ -2813,7 +2814,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T12:27:37+00:00" + "time": "2022-04-12T16:02:29+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3392,16 +3393,16 @@ }, { "name": "symfony/process", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb" + "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/38a44b2517b470a436e1c944bf9b9ba3961137fb", - "reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb", + "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", + "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", "shasum": "" }, "require": { @@ -3434,7 +3435,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.7" + "source": "https://github.com/symfony/process/tree/v5.4.8" }, "funding": [ { @@ -3450,20 +3451,20 @@ "type": "tidelift" } ], - "time": "2022-03-18T16:18:52+00:00" + "time": "2022-04-08T05:07:18+00:00" }, { "name": "symfony/string", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" + "reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", + "url": "https://api.github.com/repos/symfony/string/zipball/3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8", + "reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8", "shasum": "" }, "require": { @@ -3520,7 +3521,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.3" + "source": "https://github.com/symfony/string/tree/v5.4.8" }, "funding": [ { @@ -3536,20 +3537,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-04-19T10:40:37+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.6", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0" + "reference": "cdcadd343d31ad16fc5e006b0de81ea307435053" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/294e9da6e2e0dd404e983daa5aa74253d92c05d0", - "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cdcadd343d31ad16fc5e006b0de81ea307435053", + "reference": "cdcadd343d31ad16fc5e006b0de81ea307435053", "shasum": "" }, "require": { @@ -3609,7 +3610,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.6" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.8" }, "funding": [ { @@ -3625,20 +3626,20 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:42:23+00:00" + "time": "2022-04-26T13:19:20+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "7eacaa588c9b27f2738575adb4a8457a80d9c807" + "reference": "7e132a3fcd4b57add721b4207236877b6017ec93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/7eacaa588c9b27f2738575adb4a8457a80d9c807", - "reference": "7eacaa588c9b27f2738575adb4a8457a80d9c807", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/7e132a3fcd4b57add721b4207236877b6017ec93", + "reference": "7e132a3fcd4b57add721b4207236877b6017ec93", "shasum": "" }, "require": { @@ -3682,7 +3683,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.7" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.8" }, "funding": [ { @@ -3698,7 +3699,7 @@ "type": "tidelift" } ], - "time": "2022-03-31T17:09:19+00:00" + "time": "2022-04-26T13:19:20+00:00" }, { "name": "symfony/yaml", @@ -3777,16 +3778,16 @@ }, { "name": "twig/twig", - "version": "v2.14.13", + "version": "v2.15.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "66856cd0459df3dc97d32077a98454dc2a0ee75a" + "reference": "3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/66856cd0459df3dc97d32077a98454dc2a0ee75a", - "reference": "66856cd0459df3dc97d32077a98454dc2a0ee75a", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4", + "reference": "3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4", "shasum": "" }, "require": { @@ -3802,7 +3803,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.14-dev" + "dev-master": "2.15-dev" } }, "autoload": { @@ -3841,7 +3842,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.14.13" + "source": "https://github.com/twigphp/Twig/tree/v2.15.1" }, "funding": [ { @@ -3853,7 +3854,7 @@ "type": "tidelift" } ], - "time": "2022-04-06T06:45:17+00:00" + "time": "2022-05-17T05:46:24+00:00" }, { "name": "willdurand/negotiation", @@ -5177,16 +5178,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.5.6", + "version": "1.6.8", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "799dd8c2d2c9c704bb55d2078078cb970cf0f6d1" + "reference": "d76498c5531232cb8386ceb6004f7e013138d3ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/799dd8c2d2c9c704bb55d2078078cb970cf0f6d1", - "reference": "799dd8c2d2c9c704bb55d2078078cb970cf0f6d1", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d76498c5531232cb8386ceb6004f7e013138d3ba", + "reference": "d76498c5531232cb8386ceb6004f7e013138d3ba", "shasum": "" }, "require": { @@ -5212,7 +5213,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.5.6" + "source": "https://github.com/phpstan/phpstan/tree/1.6.8" }, "funding": [ { @@ -5232,7 +5233,7 @@ "type": "tidelift" } ], - "time": "2022-04-15T11:13:37+00:00" + "time": "2022-05-10T06:54:21+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -6936,16 +6937,16 @@ }, { "name": "symfony/finder", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" + "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9", + "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9", "shasum": "" }, "require": { @@ -6979,7 +6980,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.3" + "source": "https://github.com/symfony/finder/tree/v5.4.8" }, "funding": [ { @@ -6995,7 +6996,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:34:36+00:00" + "time": "2022-04-15T08:07:45+00:00" }, { "name": "theseer/tokenizer", From d6e72708bfea6ab749f5aea28e88ec4b3cd9e52f Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 15 Jun 2022 14:41:05 +0300 Subject: [PATCH 26/54] Composer update --- composer.lock | 346 +++++++++++++++++++++++++------------------------- 1 file changed, 170 insertions(+), 176 deletions(-) diff --git a/composer.lock b/composer.lock index b334ea74be..eed4520056 100644 --- a/composer.lock +++ b/composer.lock @@ -56,16 +56,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.3.1", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b" + "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b", - "reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/fd5dd441932a7e10ca6e5b490e272d34c8430640", + "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640", "shasum": "" }, "require": { @@ -112,7 +112,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.1" + "source": "https://github.com/composer/ca-bundle/tree/1.3.2" }, "funding": [ { @@ -128,7 +128,7 @@ "type": "tidelift" } ], - "time": "2021-10-28T20:44:15+00:00" + "time": "2022-05-24T11:56:16+00:00" }, { "name": "composer/semver", @@ -213,16 +213,16 @@ }, { "name": "doctrine/cache", - "version": "2.1.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", "shasum": "" }, "require": { @@ -232,18 +232,12 @@ "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^8.0", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "predis/predis": "~1.0", + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", - "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" }, "type": "library", "autoload": { @@ -292,7 +286,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.1.1" + "source": "https://github.com/doctrine/cache/tree/2.2.0" }, "funding": [ { @@ -308,7 +302,7 @@ "type": "tidelift" } ], - "time": "2021-07-17T14:49:29+00:00" + "time": "2022-05-20T20:07:39+00:00" }, { "name": "doctrine/collections", @@ -381,16 +375,16 @@ }, { "name": "donatj/phpuseragentparser", - "version": "v1.6.0", + "version": "v1.6.1", "source": { "type": "git", "url": "https://github.com/donatj/PhpUserAgent.git", - "reference": "c84fd3c205097843aab93290f2a5744b4159e815" + "reference": "264cf23eda626c223d21535584c33794be0ea338" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/c84fd3c205097843aab93290f2a5744b4159e815", - "reference": "c84fd3c205097843aab93290f2a5744b4159e815", + "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/264cf23eda626c223d21535584c33794be0ea338", + "reference": "264cf23eda626c223d21535584c33794be0ea338", "shasum": "" }, "require": { @@ -434,7 +428,7 @@ ], "support": { "issues": "https://github.com/donatj/PhpUserAgent/issues", - "source": "https://github.com/donatj/PhpUserAgent/tree/v1.6.0" + "source": "https://github.com/donatj/PhpUserAgent/tree/v1.6.1" }, "funding": [ { @@ -446,7 +440,7 @@ "type": "github" } ], - "time": "2022-04-20T03:05:31+00:00" + "time": "2022-06-08T16:36:31+00:00" }, { "name": "dragonmantank/cron-expression", @@ -780,16 +774,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.2.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2" + "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/c94a94f120803a18554c1805ef2e539f8285f9a2", - "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/83260bb50b8fc753c72d14dc1621a2dac31877ee", + "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee", "shasum": "" }, "require": { @@ -813,7 +807,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -875,7 +869,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.2.1" + "source": "https://github.com/guzzle/psr7/tree/2.3.0" }, "funding": [ { @@ -891,7 +885,7 @@ "type": "tidelift" } ], - "time": "2022-03-20T21:55:58+00:00" + "time": "2022-06-09T08:26:02+00:00" }, { "name": "itsgoingd/clockwork", @@ -1277,16 +1271,16 @@ }, { "name": "monolog/monolog", - "version": "1.27.0", + "version": "1.27.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "52ebd235c1f7e0d5e1b16464b695a28335f8e44a" + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/52ebd235c1f7e0d5e1b16464b695a28335f8e44a", - "reference": "52ebd235c1f7e0d5e1b16464b695a28335f8e44a", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", "shasum": "" }, "require": { @@ -1347,7 +1341,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/1.27.0" + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" }, "funding": [ { @@ -1359,7 +1353,7 @@ "type": "tidelift" } ], - "time": "2022-03-13T20:29:46+00:00" + "time": "2022-06-09T08:53:42+00:00" }, { "name": "multiavatar/multiavatar-php", @@ -2349,16 +2343,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.8", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "4c6747cf7e56c6b8e3094dd24852bd3e364375b1" + "reference": "a50b7249bea81ddd6d3b799ce40c5521c2f72f0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/4c6747cf7e56c6b8e3094dd24852bd3e364375b1", - "reference": "4c6747cf7e56c6b8e3094dd24852bd3e364375b1", + "url": "https://api.github.com/repos/symfony/cache/zipball/a50b7249bea81ddd6d3b799ce40c5521c2f72f0b", + "reference": "a50b7249bea81ddd6d3b799ce40c5521c2f72f0b", "shasum": "" }, "require": { @@ -2426,7 +2420,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.8" + "source": "https://github.com/symfony/cache/tree/v5.4.9" }, "funding": [ { @@ -2442,20 +2436,20 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:19:20+00:00" + "time": "2022-05-21T10:24:18+00:00" }, { "name": "symfony/console", - "version": "v5.4.8", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b" + "reference": "829d5d1bf60b2efeb0887b7436873becc71a45eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", - "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", + "url": "https://api.github.com/repos/symfony/console/zipball/829d5d1bf60b2efeb0887b7436873becc71a45eb", + "reference": "829d5d1bf60b2efeb0887b7436873becc71a45eb", "shasum": "" }, "require": { @@ -2525,7 +2519,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.8" + "source": "https://github.com/symfony/console/tree/v5.4.9" }, "funding": [ { @@ -2541,7 +2535,7 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:02:29+00:00" + "time": "2022-05-18T06:17:34+00:00" }, { "name": "symfony/contracts", @@ -2646,16 +2640,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v5.4.3", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d" + "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dec8a9f58d20df252b9cd89f1c6c1530f747685d", - "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", "shasum": "" }, "require": { @@ -2711,7 +2705,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9" }, "funding": [ { @@ -2727,20 +2721,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-05-05T16:45:39+00:00" }, { "name": "symfony/http-client", - "version": "v5.4.8", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "0dabec4e3898d3e00451dd47b5ef839168f9bbf5" + "reference": "dc0b15e42b762c040761c1eb9ce86a55d47cf672" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/0dabec4e3898d3e00451dd47b5ef839168f9bbf5", - "reference": "0dabec4e3898d3e00451dd47b5ef839168f9bbf5", + "url": "https://api.github.com/repos/symfony/http-client/zipball/dc0b15e42b762c040761c1eb9ce86a55d47cf672", + "reference": "dc0b15e42b762c040761c1eb9ce86a55d47cf672", "shasum": "" }, "require": { @@ -2798,7 +2792,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.8" + "source": "https://github.com/symfony/http-client/tree/v5.4.9" }, "funding": [ { @@ -2814,20 +2808,20 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:02:29+00:00" + "time": "2022-05-21T08:57:05+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", - "reference": "30885182c981ab175d4d034db0f6f469898070ab", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", "shasum": "" }, "require": { @@ -2842,7 +2836,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2880,7 +2874,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" }, "funding": [ { @@ -2896,20 +2890,20 @@ "type": "tidelift" } ], - "time": "2021-10-20T20:35:02+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40" + "reference": "143f1881e655bebca1312722af8068de235ae5dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40", - "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/143f1881e655bebca1312722af8068de235ae5dc", + "reference": "143f1881e655bebca1312722af8068de235ae5dc", "shasum": "" }, "require": { @@ -2924,7 +2918,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2963,7 +2957,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.26.0" }, "funding": [ { @@ -2979,20 +2973,20 @@ "type": "tidelift" } ], - "time": "2022-01-04T09:04:05+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" + "reference": "433d05519ce6990bf3530fba6957499d327395c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", + "reference": "433d05519ce6990bf3530fba6957499d327395c2", "shasum": "" }, "require": { @@ -3004,7 +2998,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3044,7 +3038,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" }, "funding": [ { @@ -3060,20 +3054,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T21:10:46+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", "shasum": "" }, "require": { @@ -3085,7 +3079,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3128,7 +3122,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" }, "funding": [ { @@ -3144,20 +3138,20 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", "shasum": "" }, "require": { @@ -3172,7 +3166,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3211,7 +3205,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" }, "funding": [ { @@ -3227,20 +3221,20 @@ "type": "tidelift" } ], - "time": "2021-11-30T18:21:41+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", "shasum": "" }, "require": { @@ -3249,7 +3243,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3294,7 +3288,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" }, "funding": [ { @@ -3310,20 +3304,20 @@ "type": "tidelift" } ], - "time": "2022-03-04T08:16:47+00:00" + "time": "2022-05-10T07:21:04+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f" + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", "shasum": "" }, "require": { @@ -3332,7 +3326,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3373,7 +3367,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" }, "funding": [ { @@ -3389,7 +3383,7 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:11+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/process", @@ -3455,16 +3449,16 @@ }, { "name": "symfony/string", - "version": "v5.4.8", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8" + "reference": "985e6a9703ef5ce32ba617c9c7d97873bb7b2a99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8", - "reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8", + "url": "https://api.github.com/repos/symfony/string/zipball/985e6a9703ef5ce32ba617c9c7d97873bb7b2a99", + "reference": "985e6a9703ef5ce32ba617c9c7d97873bb7b2a99", "shasum": "" }, "require": { @@ -3521,7 +3515,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.8" + "source": "https://github.com/symfony/string/tree/v5.4.9" }, "funding": [ { @@ -3541,16 +3535,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.8", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "cdcadd343d31ad16fc5e006b0de81ea307435053" + "reference": "af52239a330fafd192c773795520dc2dd62b5657" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cdcadd343d31ad16fc5e006b0de81ea307435053", - "reference": "cdcadd343d31ad16fc5e006b0de81ea307435053", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/af52239a330fafd192c773795520dc2dd62b5657", + "reference": "af52239a330fafd192c773795520dc2dd62b5657", "shasum": "" }, "require": { @@ -3610,7 +3604,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.8" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.9" }, "funding": [ { @@ -3626,20 +3620,20 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:19:20+00:00" + "time": "2022-05-21T10:24:18+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.8", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "7e132a3fcd4b57add721b4207236877b6017ec93" + "reference": "63249ebfca4e75a357679fa7ba2089cfb898aa67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/7e132a3fcd4b57add721b4207236877b6017ec93", - "reference": "7e132a3fcd4b57add721b4207236877b6017ec93", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/63249ebfca4e75a357679fa7ba2089cfb898aa67", + "reference": "63249ebfca4e75a357679fa7ba2089cfb898aa67", "shasum": "" }, "require": { @@ -3683,7 +3677,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.8" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.9" }, "funding": [ { @@ -3699,7 +3693,7 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:19:20+00:00" + "time": "2022-05-21T10:24:18+00:00" }, { "name": "symfony/yaml", @@ -4248,20 +4242,20 @@ }, { "name": "codeception/module-phpbrowser", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/Codeception/module-phpbrowser.git", - "reference": "770a6be4160a5c0c08d100dd51bff35f6056bbf1" + "reference": "8ba6bede11d0914e74d98691f427fd8f397f192e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/770a6be4160a5c0c08d100dd51bff35f6056bbf1", - "reference": "770a6be4160a5c0c08d100dd51bff35f6056bbf1", + "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/8ba6bede11d0914e74d98691f427fd8f397f192e", + "reference": "8ba6bede11d0914e74d98691f427fd8f397f192e", "shasum": "" }, "require": { - "codeception/codeception": "^4.0", + "codeception/codeception": "^4.1", "codeception/lib-innerbrowser": "^1.3", "guzzlehttp/guzzle": "^6.3|^7.0", "php": ">=5.6.0 <9.0" @@ -4302,22 +4296,22 @@ ], "support": { "issues": "https://github.com/Codeception/module-phpbrowser/issues", - "source": "https://github.com/Codeception/module-phpbrowser/tree/1.0.2" + "source": "https://github.com/Codeception/module-phpbrowser/tree/1.0.3" }, - "time": "2020-10-24T15:29:28+00:00" + "time": "2022-05-21T13:50:41+00:00" }, { "name": "codeception/phpunit-wrapper", - "version": "9.0.7", + "version": "9.0.9", "source": { "type": "git", "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "7d6b1a5ea4ed28d010e5d36b993db813eb49710b" + "reference": "7439a53ae367986e9c22b2ac00f9d7376bb2f8cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/7d6b1a5ea4ed28d010e5d36b993db813eb49710b", - "reference": "7d6b1a5ea4ed28d010e5d36b993db813eb49710b", + "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/7439a53ae367986e9c22b2ac00f9d7376bb2f8cf", + "reference": "7439a53ae367986e9c22b2ac00f9d7376bb2f8cf", "shasum": "" }, "require": { @@ -4351,9 +4345,9 @@ "description": "PHPUnit classes used by Codeception", "support": { "issues": "https://github.com/Codeception/phpunit-wrapper/issues", - "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.7" + "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.9" }, - "time": "2022-01-26T14:43:10+00:00" + "time": "2022-05-23T06:24:11+00:00" }, { "name": "codeception/stub", @@ -4517,16 +4511,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.2", + "version": "7.4.4", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ac1ec1cd9b5624694c3a40be801d94137afb12b4" + "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ac1ec1cd9b5624694c3a40be801d94137afb12b4", - "reference": "ac1ec1cd9b5624694c3a40be801d94137afb12b4", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/e3ff079b22820c2029d4c2a87796b6a0b8716ad8", + "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8", "shasum": "" }, "require": { @@ -4621,7 +4615,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.2" + "source": "https://github.com/guzzle/guzzle/tree/7.4.4" }, "funding": [ { @@ -4637,7 +4631,7 @@ "type": "tidelift" } ], - "time": "2022-03-20T14:16:28+00:00" + "time": "2022-06-09T21:39:15+00:00" }, { "name": "guzzlehttp/promises", @@ -4784,16 +4778,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.13.2", + "version": "v4.14.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077" + "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", + "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", "shasum": "" }, "require": { @@ -4834,9 +4828,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" }, - "time": "2021-11-30T19:35:32+00:00" + "time": "2022-05-31T20:59:12+00:00" }, { "name": "phar-io/manifest", @@ -5178,16 +5172,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.6.8", + "version": "1.7.14", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "d76498c5531232cb8386ceb6004f7e013138d3ba" + "reference": "e6f145f196a59c7ca91ea926c87ef3d936c4305f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d76498c5531232cb8386ceb6004f7e013138d3ba", - "reference": "d76498c5531232cb8386ceb6004f7e013138d3ba", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e6f145f196a59c7ca91ea926c87ef3d936c4305f", + "reference": "e6f145f196a59c7ca91ea926c87ef3d936c4305f", "shasum": "" }, "require": { @@ -5213,7 +5207,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.6.8" + "source": "https://github.com/phpstan/phpstan/tree/1.7.14" }, "funding": [ { @@ -5233,7 +5227,7 @@ "type": "tidelift" } ], - "time": "2022-05-10T06:54:21+00:00" + "time": "2022-06-14T13:09:35+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -6862,16 +6856,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v5.4.6", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "c0bda97480d96337bd3866026159a8b358665457" + "reference": "a213cbc80382320b0efdccdcdce232f191fafe3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c0bda97480d96337bd3866026159a8b358665457", - "reference": "c0bda97480d96337bd3866026159a8b358665457", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/a213cbc80382320b0efdccdcdce232f191fafe3a", + "reference": "a213cbc80382320b0efdccdcdce232f191fafe3a", "shasum": "" }, "require": { @@ -6917,7 +6911,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.6" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.9" }, "funding": [ { @@ -6933,7 +6927,7 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:42:23+00:00" + "time": "2022-05-04T14:46:32+00:00" }, { "name": "symfony/finder", @@ -7050,21 +7044,21 @@ }, { "name": "webmozart/assert", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" + "ext-ctype": "*", + "php": "^7.2 || ^8.0" }, "conflict": { "phpstan/phpstan": "<0.12.20", @@ -7102,9 +7096,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" + "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, - "time": "2021-03-09T10:59:23+00:00" + "time": "2022-06-03T18:03:27+00:00" } ], "aliases": [], From fbfac9f8f4ee8b0befd5dca6bd12d0523e938745 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 29 Jun 2022 13:12:11 +0300 Subject: [PATCH 27/54] Composer update --- composer.lock | 171 +++++++++++++++++++++++++------------------------- 1 file changed, 85 insertions(+), 86 deletions(-) diff --git a/composer.lock b/composer.lock index eed4520056..d024e07298 100644 --- a/composer.lock +++ b/composer.lock @@ -774,16 +774,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.3.0", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee" + "reference": "13388f00956b1503577598873fffb5ae994b5737" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/83260bb50b8fc753c72d14dc1621a2dac31877ee", - "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/13388f00956b1503577598873fffb5ae994b5737", + "reference": "13388f00956b1503577598873fffb5ae994b5737", "shasum": "" }, "require": { @@ -807,7 +807,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "2.4-dev" } }, "autoload": { @@ -869,7 +869,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.3.0" + "source": "https://github.com/guzzle/psr7/tree/2.4.0" }, "funding": [ { @@ -885,7 +885,7 @@ "type": "tidelift" } ], - "time": "2022-06-09T08:26:02+00:00" + "time": "2022-06-20T21:43:11+00:00" }, { "name": "itsgoingd/clockwork", @@ -957,27 +957,27 @@ }, { "name": "league/climate", - "version": "3.8.1", + "version": "3.8.2", "source": { "type": "git", "url": "https://github.com/thephpleague/climate.git", - "reference": "22243322c6f049240e0fa6ad6c3873343b6f6055" + "reference": "a785a3ac8f584eed4abd45e4e16fe64c46659a28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/climate/zipball/22243322c6f049240e0fa6ad6c3873343b6f6055", - "reference": "22243322c6f049240e0fa6ad6c3873343b6f6055", + "url": "https://api.github.com/repos/thephpleague/climate/zipball/a785a3ac8f584eed4abd45e4e16fe64c46659a28", + "reference": "a785a3ac8f584eed4abd45e4e16fe64c46659a28", "shasum": "" }, "require": { "php": "^7.3 || ^8.0", - "psr/log": "^1.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", "seld/cli-prompt": "^1.0" }, "require-dev": { - "mikey179/vfsstream": "^1.4", + "mikey179/vfsstream": "^1.6.10", "mockery/mockery": "^1.4.2", - "phpunit/phpunit": "^9.5.0" + "phpunit/phpunit": "^9.5.10" }, "suggest": { "ext-mbstring": "If ext-mbstring is not available you MUST install symfony/polyfill-mbstring" @@ -1016,9 +1016,9 @@ ], "support": { "issues": "https://github.com/thephpleague/climate/issues", - "source": "https://github.com/thephpleague/climate/tree/3.8.1" + "source": "https://github.com/thephpleague/climate/tree/3.8.2" }, - "time": "2022-01-23T14:38:49+00:00" + "time": "2022-06-18T14:42:08+00:00" }, { "name": "matthiasmullie/minify", @@ -1404,16 +1404,16 @@ }, { "name": "nyholm/psr7", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/Nyholm/psr7.git", - "reference": "1461e07a0f2a975a52082ca3b769ca912b816226" + "reference": "f734364e38a876a23be4d906a2a089e1315be18a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7/zipball/1461e07a0f2a975a52082ca3b769ca912b816226", - "reference": "1461e07a0f2a975a52082ca3b769ca912b816226", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/f734364e38a876a23be4d906a2a089e1315be18a", + "reference": "f734364e38a876a23be4d906a2a089e1315be18a", "shasum": "" }, "require": { @@ -1465,7 +1465,7 @@ ], "support": { "issues": "https://github.com/Nyholm/psr7/issues", - "source": "https://github.com/Nyholm/psr7/tree/1.5.0" + "source": "https://github.com/Nyholm/psr7/tree/1.5.1" }, "funding": [ { @@ -1477,7 +1477,7 @@ "type": "github" } ], - "time": "2022-02-02T18:37:57+00:00" + "time": "2022-06-22T07:13:36+00:00" }, { "name": "nyholm/psr7-server", @@ -2343,16 +2343,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.9", + "version": "v5.4.10", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "a50b7249bea81ddd6d3b799ce40c5521c2f72f0b" + "reference": "c4e387b739022fd4b20abd8edb2143c44c5daa14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/a50b7249bea81ddd6d3b799ce40c5521c2f72f0b", - "reference": "a50b7249bea81ddd6d3b799ce40c5521c2f72f0b", + "url": "https://api.github.com/repos/symfony/cache/zipball/c4e387b739022fd4b20abd8edb2143c44c5daa14", + "reference": "c4e387b739022fd4b20abd8edb2143c44c5daa14", "shasum": "" }, "require": { @@ -2420,7 +2420,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.9" + "source": "https://github.com/symfony/cache/tree/v5.4.10" }, "funding": [ { @@ -2436,20 +2436,20 @@ "type": "tidelift" } ], - "time": "2022-05-21T10:24:18+00:00" + "time": "2022-06-19T12:03:50+00:00" }, { "name": "symfony/console", - "version": "v5.4.9", + "version": "v5.4.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "829d5d1bf60b2efeb0887b7436873becc71a45eb" + "reference": "4d671ab4ddac94ee439ea73649c69d9d200b5000" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/829d5d1bf60b2efeb0887b7436873becc71a45eb", - "reference": "829d5d1bf60b2efeb0887b7436873becc71a45eb", + "url": "https://api.github.com/repos/symfony/console/zipball/4d671ab4ddac94ee439ea73649c69d9d200b5000", + "reference": "4d671ab4ddac94ee439ea73649c69d9d200b5000", "shasum": "" }, "require": { @@ -2519,7 +2519,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.9" + "source": "https://github.com/symfony/console/tree/v5.4.10" }, "funding": [ { @@ -2535,20 +2535,20 @@ "type": "tidelift" } ], - "time": "2022-05-18T06:17:34+00:00" + "time": "2022-06-26T13:00:04+00:00" }, { "name": "symfony/contracts", - "version": "v2.5.1", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/symfony/contracts.git", - "reference": "3373e197760d9ca59c56ae508ce66bdc55da4f4d" + "reference": "d3da2932c17d3cc0d6cd167518cc63ab7b909f38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/3373e197760d9ca59c56ae508ce66bdc55da4f4d", - "reference": "3373e197760d9ca59c56ae508ce66bdc55da4f4d", + "url": "https://api.github.com/repos/symfony/contracts/zipball/d3da2932c17d3cc0d6cd167518cc63ab7b909f38", + "reference": "d3da2932c17d3cc0d6cd167518cc63ab7b909f38", "shasum": "" }, "require": { @@ -2620,7 +2620,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/contracts/tree/v2.5.1" + "source": "https://github.com/symfony/contracts/tree/v2.5.2" }, "funding": [ { @@ -2636,7 +2636,7 @@ "type": "tidelift" } ], - "time": "2022-03-13T20:07:29+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/event-dispatcher", @@ -3449,16 +3449,16 @@ }, { "name": "symfony/string", - "version": "v5.4.9", + "version": "v5.4.10", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "985e6a9703ef5ce32ba617c9c7d97873bb7b2a99" + "reference": "4432bc7df82a554b3e413a8570ce2fea90e94097" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/985e6a9703ef5ce32ba617c9c7d97873bb7b2a99", - "reference": "985e6a9703ef5ce32ba617c9c7d97873bb7b2a99", + "url": "https://api.github.com/repos/symfony/string/zipball/4432bc7df82a554b3e413a8570ce2fea90e94097", + "reference": "4432bc7df82a554b3e413a8570ce2fea90e94097", "shasum": "" }, "require": { @@ -3515,7 +3515,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.9" + "source": "https://github.com/symfony/string/tree/v5.4.10" }, "funding": [ { @@ -3531,7 +3531,7 @@ "type": "tidelift" } ], - "time": "2022-04-19T10:40:37+00:00" + "time": "2022-06-26T15:57:47+00:00" }, { "name": "symfony/var-dumper", @@ -3624,16 +3624,16 @@ }, { "name": "symfony/var-exporter", - "version": "v5.4.9", + "version": "v5.4.10", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "63249ebfca4e75a357679fa7ba2089cfb898aa67" + "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/63249ebfca4e75a357679fa7ba2089cfb898aa67", - "reference": "63249ebfca4e75a357679fa7ba2089cfb898aa67", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8fc03ee75eeece3d9be1ef47d26d79bea1afb340", + "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340", "shasum": "" }, "require": { @@ -3677,7 +3677,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.9" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.10" }, "funding": [ { @@ -3693,20 +3693,20 @@ "type": "tidelift" } ], - "time": "2022-05-21T10:24:18+00:00" + "time": "2022-05-27T12:56:18+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.3", + "version": "v5.4.10", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e80f87d2c9495966768310fc531b487ce64237a2" + "reference": "04e42926429d9e8b39c174387ab990bf7817f7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e80f87d2c9495966768310fc531b487ce64237a2", - "reference": "e80f87d2c9495966768310fc531b487ce64237a2", + "url": "https://api.github.com/repos/symfony/yaml/zipball/04e42926429d9e8b39c174387ab990bf7817f7a2", + "reference": "04e42926429d9e8b39c174387ab990bf7817f7a2", "shasum": "" }, "require": { @@ -3752,7 +3752,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.3" + "source": "https://github.com/symfony/yaml/tree/v5.4.10" }, "funding": [ { @@ -3768,7 +3768,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:32:32+00:00" + "time": "2022-06-20T11:50:59+00:00" }, { "name": "twig/twig", @@ -3973,16 +3973,16 @@ }, { "name": "codeception/codeception", - "version": "4.1.31", + "version": "4.2.1", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "15524571ae0686a7facc2eb1f40f600e5bbce9e5" + "reference": "77b3e2003fd4446b35826cb9dc397129c521c888" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/15524571ae0686a7facc2eb1f40f600e5bbce9e5", - "reference": "15524571ae0686a7facc2eb1f40f600e5bbce9e5", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/77b3e2003fd4446b35826cb9dc397129c521c888", + "reference": "77b3e2003fd4446b35826cb9dc397129c521c888", "shasum": "" }, "require": { @@ -4045,11 +4045,11 @@ { "name": "Michael Bodnarchuk", "email": "davert@mail.ua", - "homepage": "http://codegyre.com" + "homepage": "https://codegyre.com" } ], "description": "BDD-style testing framework", - "homepage": "http://codeception.com/", + "homepage": "https://codeception.com/", "keywords": [ "BDD", "TDD", @@ -4059,7 +4059,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.1.31" + "source": "https://github.com/Codeception/Codeception/tree/4.2.1" }, "funding": [ { @@ -4067,7 +4067,7 @@ "type": "open_collective" } ], - "time": "2022-03-13T17:07:08+00:00" + "time": "2022-06-22T06:18:59+00:00" }, { "name": "codeception/lib-asserts", @@ -4511,22 +4511,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.4", + "version": "7.4.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8" + "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/e3ff079b22820c2029d4c2a87796b6a0b8716ad8", - "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1dd98b0564cb3f6bd16ce683cb755f94c10fbd82", + "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.8.3 || ^2.1", + "guzzlehttp/psr7": "^1.9 || ^2.4", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -4615,7 +4615,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.4" + "source": "https://github.com/guzzle/guzzle/tree/7.4.5" }, "funding": [ { @@ -4631,7 +4631,7 @@ "type": "tidelift" } ], - "time": "2022-06-09T21:39:15+00:00" + "time": "2022-06-20T22:16:13+00:00" }, { "name": "guzzlehttp/promises", @@ -5172,16 +5172,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.7.14", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "e6f145f196a59c7ca91ea926c87ef3d936c4305f" + "reference": "b7648d4ee9321665acaf112e49da9fd93df8fbd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e6f145f196a59c7ca91ea926c87ef3d936c4305f", - "reference": "e6f145f196a59c7ca91ea926c87ef3d936c4305f", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b7648d4ee9321665acaf112e49da9fd93df8fbd5", + "reference": "b7648d4ee9321665acaf112e49da9fd93df8fbd5", "shasum": "" }, "require": { @@ -5207,7 +5207,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.7.14" + "source": "https://github.com/phpstan/phpstan/tree/1.8.0" }, "funding": [ { @@ -5227,7 +5227,7 @@ "type": "tidelift" } ], - "time": "2022-06-14T13:09:35+00:00" + "time": "2022-06-29T08:53:31+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -5599,16 +5599,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.20", + "version": "9.5.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba" + "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1", + "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1", "shasum": "" }, "require": { @@ -5642,7 +5642,6 @@ "sebastian/version": "^3.0.2" }, "require-dev": { - "ext-pdo": "*", "phpspec/prophecy-phpunit": "^2.0.1" }, "suggest": { @@ -5686,7 +5685,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21" }, "funding": [ { @@ -5698,7 +5697,7 @@ "type": "github" } ], - "time": "2022-04-01T12:37:26+00:00" + "time": "2022-06-19T12:14:25+00:00" }, { "name": "psr/http-client", From f490d9a7e127b15fea5b3d60f2b0d9eb5d5d68a4 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 29 Jun 2022 13:16:56 +0300 Subject: [PATCH 28/54] Fix phpstan error --- composer.lock | 2 +- system/src/Grav/Framework/Relationships/Relationships.php | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/composer.lock b/composer.lock index d024e07298..77e44490d5 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": "868318925a34cd137ac3543e10e0ec27", + "content-hash": "c2a0a1f997ddde6a4b8ae97b05190f2f", "packages": [ { "name": "antoligy/dom-string-iterators", diff --git a/system/src/Grav/Framework/Relationships/Relationships.php b/system/src/Grav/Framework/Relationships/Relationships.php index 6485682048..55c004d47f 100644 --- a/system/src/Grav/Framework/Relationships/Relationships.php +++ b/system/src/Grav/Framework/Relationships/Relationships.php @@ -184,7 +184,7 @@ public function jsonSerialize(): array /** * @param string $name * @param array $options - * @return ToOneRelationship|ToManyRelationship + * @return ToOneRelationship|ToManyRelationship */ private function createRelationship(string $name, array $options): RelationshipInterface { @@ -203,9 +203,11 @@ private function createRelationship(string $name, array $options): RelationshipI $cardinality = $options['cardinality'] ?? ''; switch ($cardinality) { case 'to-one': + /** @var ToOneRelationship $relationship */ $relationship = new ToOneRelationship($parent, $name, $options, $data); break; case 'to-many': + /** @var ToManyRelationship $relationship */ $relationship = new ToManyRelationship($parent, $name, $options, $data ?? []); break; default: From 10b15bedf24404696fee5328b8da833dfdfca2d4 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 18 Aug 2022 13:27:58 +0300 Subject: [PATCH 29/54] Composer update --- composer.lock | 216 +++++++++++++++++++++++++------------------------- 1 file changed, 108 insertions(+), 108 deletions(-) diff --git a/composer.lock b/composer.lock index 77e44490d5..590d870f7c 100644 --- a/composer.lock +++ b/composer.lock @@ -56,16 +56,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.3.2", + "version": "1.3.3", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640" + "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/fd5dd441932a7e10ca6e5b490e272d34c8430640", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/30897edbfb15e784fe55587b4f73ceefd3c4d98c", + "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c", "shasum": "" }, "require": { @@ -112,7 +112,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.2" + "source": "https://github.com/composer/ca-bundle/tree/1.3.3" }, "funding": [ { @@ -128,7 +128,7 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:56:16+00:00" + "time": "2022-07-20T07:14:26+00:00" }, { "name": "composer/semver", @@ -375,16 +375,16 @@ }, { "name": "donatj/phpuseragentparser", - "version": "v1.6.1", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/donatj/PhpUserAgent.git", - "reference": "264cf23eda626c223d21535584c33794be0ea338" + "reference": "a35900b93530715f8669c10e49756adde5c8e6fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/264cf23eda626c223d21535584c33794be0ea338", - "reference": "264cf23eda626c223d21535584c33794be0ea338", + "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/a35900b93530715f8669c10e49756adde5c8e6fc", + "reference": "a35900b93530715f8669c10e49756adde5c8e6fc", "shasum": "" }, "require": { @@ -428,7 +428,7 @@ ], "support": { "issues": "https://github.com/donatj/PhpUserAgent/issues", - "source": "https://github.com/donatj/PhpUserAgent/tree/v1.6.1" + "source": "https://github.com/donatj/PhpUserAgent/tree/v1.7.0" }, "funding": [ { @@ -440,7 +440,7 @@ "type": "github" } ], - "time": "2022-06-08T16:36:31+00:00" + "time": "2022-08-06T15:41:58+00:00" }, { "name": "dragonmantank/cron-expression", @@ -889,16 +889,16 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.1.6", + "version": "v5.1.7", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "9df41432da1d8cb39c7fda383ddcc02231c83ff3" + "reference": "2cad6c75dc2b96cbfd48c0511bb035a4e328c17f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/9df41432da1d8cb39c7fda383ddcc02231c83ff3", - "reference": "9df41432da1d8cb39c7fda383ddcc02231c83ff3", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/2cad6c75dc2b96cbfd48c0511bb035a4e328c17f", + "reference": "2cad6c75dc2b96cbfd48c0511bb035a4e328c17f", "shasum": "" }, "require": { @@ -945,7 +945,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.6" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.7" }, "funding": [ { @@ -953,7 +953,7 @@ "type": "github" } ], - "time": "2022-04-12T21:35:47+00:00" + "time": "2022-08-14T21:23:22+00:00" }, { "name": "league/climate", @@ -1022,16 +1022,16 @@ }, { "name": "matthiasmullie/minify", - "version": "1.3.68", + "version": "1.3.69", "source": { "type": "git", "url": "https://github.com/matthiasmullie/minify.git", - "reference": "c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297" + "reference": "a61c949cccd086808063611ef9698eabe42ef22f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297", - "reference": "c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/a61c949cccd086808063611ef9698eabe42ef22f", + "reference": "a61c949cccd086808063611ef9698eabe42ef22f", "shasum": "" }, "require": { @@ -1080,7 +1080,7 @@ ], "support": { "issues": "https://github.com/matthiasmullie/minify/issues", - "source": "https://github.com/matthiasmullie/minify/tree/1.3.68" + "source": "https://github.com/matthiasmullie/minify/tree/1.3.69" }, "funding": [ { @@ -1088,7 +1088,7 @@ "type": "github" } ], - "time": "2022-04-19T08:28:56+00:00" + "time": "2022-08-01T09:00:18+00:00" }, { "name": "matthiasmullie/path-converter", @@ -2343,16 +2343,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.10", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "c4e387b739022fd4b20abd8edb2143c44c5daa14" + "reference": "5a0fff46df349f0db3fe242263451fddf5277362" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/c4e387b739022fd4b20abd8edb2143c44c5daa14", - "reference": "c4e387b739022fd4b20abd8edb2143c44c5daa14", + "url": "https://api.github.com/repos/symfony/cache/zipball/5a0fff46df349f0db3fe242263451fddf5277362", + "reference": "5a0fff46df349f0db3fe242263451fddf5277362", "shasum": "" }, "require": { @@ -2420,7 +2420,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.10" + "source": "https://github.com/symfony/cache/tree/v5.4.11" }, "funding": [ { @@ -2436,20 +2436,20 @@ "type": "tidelift" } ], - "time": "2022-06-19T12:03:50+00:00" + "time": "2022-07-28T15:25:17+00:00" }, { "name": "symfony/console", - "version": "v5.4.10", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "4d671ab4ddac94ee439ea73649c69d9d200b5000" + "reference": "535846c7ee6bc4dd027ca0d93220601456734b10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/4d671ab4ddac94ee439ea73649c69d9d200b5000", - "reference": "4d671ab4ddac94ee439ea73649c69d9d200b5000", + "url": "https://api.github.com/repos/symfony/console/zipball/535846c7ee6bc4dd027ca0d93220601456734b10", + "reference": "535846c7ee6bc4dd027ca0d93220601456734b10", "shasum": "" }, "require": { @@ -2519,7 +2519,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.10" + "source": "https://github.com/symfony/console/tree/v5.4.11" }, "funding": [ { @@ -2535,7 +2535,7 @@ "type": "tidelift" } ], - "time": "2022-06-26T13:00:04+00:00" + "time": "2022-07-22T10:42:43+00:00" }, { "name": "symfony/contracts", @@ -2725,16 +2725,16 @@ }, { "name": "symfony/http-client", - "version": "v5.4.9", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "dc0b15e42b762c040761c1eb9ce86a55d47cf672" + "reference": "5c5c37eb2a276d8d7d669dd76688aa1606ee78fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/dc0b15e42b762c040761c1eb9ce86a55d47cf672", - "reference": "dc0b15e42b762c040761c1eb9ce86a55d47cf672", + "url": "https://api.github.com/repos/symfony/http-client/zipball/5c5c37eb2a276d8d7d669dd76688aa1606ee78fb", + "reference": "5c5c37eb2a276d8d7d669dd76688aa1606ee78fb", "shasum": "" }, "require": { @@ -2792,7 +2792,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.9" + "source": "https://github.com/symfony/http-client/tree/v5.4.11" }, "funding": [ { @@ -2808,7 +2808,7 @@ "type": "tidelift" } ], - "time": "2022-05-21T08:57:05+00:00" + "time": "2022-07-28T13:33:28+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3387,16 +3387,16 @@ }, { "name": "symfony/process", - "version": "v5.4.8", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3" + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", - "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", + "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", "shasum": "" }, "require": { @@ -3429,7 +3429,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.8" + "source": "https://github.com/symfony/process/tree/v5.4.11" }, "funding": [ { @@ -3445,20 +3445,20 @@ "type": "tidelift" } ], - "time": "2022-04-08T05:07:18+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/string", - "version": "v5.4.10", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "4432bc7df82a554b3e413a8570ce2fea90e94097" + "reference": "5eb661e49ad389e4ae2b6e4df8d783a8a6548322" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4432bc7df82a554b3e413a8570ce2fea90e94097", - "reference": "4432bc7df82a554b3e413a8570ce2fea90e94097", + "url": "https://api.github.com/repos/symfony/string/zipball/5eb661e49ad389e4ae2b6e4df8d783a8a6548322", + "reference": "5eb661e49ad389e4ae2b6e4df8d783a8a6548322", "shasum": "" }, "require": { @@ -3515,7 +3515,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.10" + "source": "https://github.com/symfony/string/tree/v5.4.11" }, "funding": [ { @@ -3531,20 +3531,20 @@ "type": "tidelift" } ], - "time": "2022-06-26T15:57:47+00:00" + "time": "2022-07-24T16:15:25+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.9", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "af52239a330fafd192c773795520dc2dd62b5657" + "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/af52239a330fafd192c773795520dc2dd62b5657", - "reference": "af52239a330fafd192c773795520dc2dd62b5657", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b8f306d7b8ef34fb3db3305be97ba8e088fb4861", + "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861", "shasum": "" }, "require": { @@ -3604,7 +3604,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.9" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.11" }, "funding": [ { @@ -3620,7 +3620,7 @@ "type": "tidelift" } ], - "time": "2022-05-21T10:24:18+00:00" + "time": "2022-07-20T13:00:38+00:00" }, { "name": "symfony/var-exporter", @@ -3697,16 +3697,16 @@ }, { "name": "symfony/yaml", - "version": "v5.4.10", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "04e42926429d9e8b39c174387ab990bf7817f7a2" + "reference": "05d4ea560f3402c6c116afd99fdc66e60eda227e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/04e42926429d9e8b39c174387ab990bf7817f7a2", - "reference": "04e42926429d9e8b39c174387ab990bf7817f7a2", + "url": "https://api.github.com/repos/symfony/yaml/zipball/05d4ea560f3402c6c116afd99fdc66e60eda227e", + "reference": "05d4ea560f3402c6c116afd99fdc66e60eda227e", "shasum": "" }, "require": { @@ -3752,7 +3752,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.10" + "source": "https://github.com/symfony/yaml/tree/v5.4.11" }, "funding": [ { @@ -3768,20 +3768,20 @@ "type": "tidelift" } ], - "time": "2022-06-20T11:50:59+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "twig/twig", - "version": "v2.15.1", + "version": "v2.15.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4" + "reference": "3e43405a9a8b578809426339cc3780e16fba0c52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4", - "reference": "3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3e43405a9a8b578809426339cc3780e16fba0c52", + "reference": "3e43405a9a8b578809426339cc3780e16fba0c52", "shasum": "" }, "require": { @@ -3836,7 +3836,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.15.1" + "source": "https://github.com/twigphp/Twig/tree/v2.15.2" }, "funding": [ { @@ -3848,7 +3848,7 @@ "type": "tidelift" } ], - "time": "2022-05-17T05:46:24+00:00" + "time": "2022-08-12T06:43:37+00:00" }, { "name": "willdurand/negotiation", @@ -3973,16 +3973,16 @@ }, { "name": "codeception/codeception", - "version": "4.2.1", + "version": "4.2.2", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "77b3e2003fd4446b35826cb9dc397129c521c888" + "reference": "b88014f3348c93f3df99dc6d0967b0dbfa804474" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/77b3e2003fd4446b35826cb9dc397129c521c888", - "reference": "77b3e2003fd4446b35826cb9dc397129c521c888", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/b88014f3348c93f3df99dc6d0967b0dbfa804474", + "reference": "b88014f3348c93f3df99dc6d0967b0dbfa804474", "shasum": "" }, "require": { @@ -4059,7 +4059,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.2.1" + "source": "https://github.com/Codeception/Codeception/tree/4.2.2" }, "funding": [ { @@ -4067,7 +4067,7 @@ "type": "open_collective" } ], - "time": "2022-06-22T06:18:59+00:00" + "time": "2022-08-13T13:28:25+00:00" }, { "name": "codeception/lib-asserts", @@ -5172,16 +5172,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.8.0", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "b7648d4ee9321665acaf112e49da9fd93df8fbd5" + "reference": "c53312ecc575caf07b0e90dee43883fdf90ca67c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b7648d4ee9321665acaf112e49da9fd93df8fbd5", - "reference": "b7648d4ee9321665acaf112e49da9fd93df8fbd5", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c53312ecc575caf07b0e90dee43883fdf90ca67c", + "reference": "c53312ecc575caf07b0e90dee43883fdf90ca67c", "shasum": "" }, "require": { @@ -5207,7 +5207,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.8.0" + "source": "https://github.com/phpstan/phpstan/tree/1.8.2" }, "funding": [ { @@ -5227,7 +5227,7 @@ "type": "tidelift" } ], - "time": "2022-06-29T08:53:31+00:00" + "time": "2022-07-20T09:57:31+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -6717,16 +6717,16 @@ }, { "name": "symfony/browser-kit", - "version": "v5.4.3", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "18e73179c6a33d520de1b644941eba108dd811ad" + "reference": "081fe28a26b6bd671dea85ef3a4b5003f3c88027" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/18e73179c6a33d520de1b644941eba108dd811ad", - "reference": "18e73179c6a33d520de1b644941eba108dd811ad", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/081fe28a26b6bd671dea85ef3a4b5003f3c88027", + "reference": "081fe28a26b6bd671dea85ef3a4b5003f3c88027", "shasum": "" }, "require": { @@ -6769,7 +6769,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.4.3" + "source": "https://github.com/symfony/browser-kit/tree/v5.4.11" }, "funding": [ { @@ -6785,20 +6785,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-07-27T15:50:05+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.3", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "b0a190285cd95cb019237851205b8140ef6e368e" + "reference": "c1681789f059ab756001052164726ae88512ae3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/b0a190285cd95cb019237851205b8140ef6e368e", - "reference": "b0a190285cd95cb019237851205b8140ef6e368e", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d", + "reference": "c1681789f059ab756001052164726ae88512ae3d", "shasum": "" }, "require": { @@ -6835,7 +6835,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.3" + "source": "https://github.com/symfony/css-selector/tree/v5.4.11" }, "funding": [ { @@ -6851,20 +6851,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.4.9", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "a213cbc80382320b0efdccdcdce232f191fafe3a" + "reference": "0b900ca5576ecd59e08c76127e616667cfe427a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/a213cbc80382320b0efdccdcdce232f191fafe3a", - "reference": "a213cbc80382320b0efdccdcdce232f191fafe3a", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/0b900ca5576ecd59e08c76127e616667cfe427a7", + "reference": "0b900ca5576ecd59e08c76127e616667cfe427a7", "shasum": "" }, "require": { @@ -6910,7 +6910,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.9" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.11" }, "funding": [ { @@ -6926,20 +6926,20 @@ "type": "tidelift" } ], - "time": "2022-05-04T14:46:32+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/finder", - "version": "v5.4.8", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9" + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9", - "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9", + "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", "shasum": "" }, "require": { @@ -6973,7 +6973,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.8" + "source": "https://github.com/symfony/finder/tree/v5.4.11" }, "funding": [ { @@ -6989,7 +6989,7 @@ "type": "tidelift" } ], - "time": "2022-04-15T08:07:45+00:00" + "time": "2022-07-29T07:37:50+00:00" }, { "name": "theseer/tokenizer", From e4f483998d2c5f610f4d2eb9fdbdc93897ff03b8 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 12 May 2023 13:50:50 -0600 Subject: [PATCH 30/54] composer lock file --- composer.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.lock b/composer.lock index 939f813374..c50095c11b 100644 --- a/composer.lock +++ b/composer.lock @@ -2209,12 +2209,12 @@ "source": { "type": "git", "url": "https://github.com/rockettheme/toolbox.git", - "reference": "1b50df5425c6d041a54efa2a0a8bb1dad7cd8925" + "reference": "5f33ddb3213f2db9c334a9035da070a5e446c9ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/1b50df5425c6d041a54efa2a0a8bb1dad7cd8925", - "reference": "1b50df5425c6d041a54efa2a0a8bb1dad7cd8925", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/5f33ddb3213f2db9c334a9035da070a5e446c9ee", + "reference": "5f33ddb3213f2db9c334a9035da070a5e446c9ee", "shasum": "" }, "require": { @@ -2276,7 +2276,7 @@ "source": "https://github.com/rockettheme/toolbox/tree/v2", "issues": "https://github.com/rockettheme/toolbox/issues" }, - "time": "2022-02-16T08:04:01+00:00" + "time": "2023-05-12T19:47:46+00:00" }, { "name": "seld/cli-prompt", From 1967910789a98f26330a50aa6d9cee28a323fe2d Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Mon, 14 Oct 2024 19:27:43 +0100 Subject: [PATCH 31/54] upgrade to latest symfony 6.4 + PHP 8.2 --- composer.json | 60 ++++++++++++------------ index.php | 2 +- system/defines.php | 6 +-- system/src/Grav/Console/ConsoleTrait.php | 2 +- 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/composer.json b/composer.json index 22615b9214..e20d437587 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "homepage": "https://getgrav.org", "license": "MIT", "require": { - "php": "^7.4.1 || ^8.0", + "php": "^8.2", "ext-json": "*", "ext-openssl": "*", "ext-curl": "*", @@ -25,40 +25,40 @@ "symfony/polyfill-php80": "^1.24", "symfony/polyfill-php81": "^1.24", "psr/simple-cache": "^1.0", - "psr/http-message": "^1.0", + "psr/http-message": "^1.1", "psr/http-server-middleware": "^1.0", "psr/container": "^1.1", "psr/log": "^1.1", - "symfony/contracts": "~v2.5", - "symfony/cache": "^5.4", - "symfony/yaml": "~5.4", - "symfony/console": "~5.4", - "symfony/event-dispatcher": "~5.4", - "symfony/var-exporter": "~5.4", - "symfony/var-dumper": "~5.4", - "symfony/process": "~5.4", - "symfony/http-client": "^5.4", - "twig/twig": "^2.14", - "monolog/monolog": "^1.26", - "doctrine/cache": "^2.1", - "doctrine/collections": "^1.6", + "symfony/contracts": "~v3.0", + "symfony/cache": "^6.4", + "symfony/yaml": "^6.4", + "symfony/console": "^6.4", + "symfony/event-dispatcher": "^6.4", + "symfony/var-exporter": "^6.4", + "symfony/var-dumper": "^6.4", + "symfony/process": "^6.4", + "symfony/http-client": "^6.4", + "twig/twig": "^2.1", + "monolog/monolog": "^1.27", + "doctrine/cache": "^2.2", + "doctrine/collections": "^1.8", "pimple/pimple": "~3.5.0", - "nyholm/psr7-server": "^1.0", - "nyholm/psr7": "^1.5", + "nyholm/psr7-server": "^1.1", + "nyholm/psr7": "^1.8", "erusev/parsedown": "^1.7", "erusev/parsedown-extra": "~0.8", "rockettheme/toolbox": "v2.x-dev", - "composer/ca-bundle": "^1.3", - "composer/semver": "^3.2", + "composer/ca-bundle": "^1.5", + "composer/semver": "^3.4", "dragonmantank/cron-expression": "^1.2", "willdurand/negotiation": "^3.1", "rhukster/dom-sanitizer": "^1.0", "matthiasmullie/minify": "^1.3", - "donatj/phpuseragentparser": "~1.5", - "guzzlehttp/psr7": "^2.1", - "filp/whoops": "~2.14", - "itsgoingd/clockwork": "^5.1", - "maximebf/debugbar": "~1.17", + "donatj/phpuseragentparser": "~1.9", + "guzzlehttp/psr7": "^2.7", + "filp/whoops": "~2.16", + "itsgoingd/clockwork": "^5.2", + "maximebf/debugbar": "~1.23", "getgrav/image": "^3.0", "getgrav/cache": "^2.0", @@ -68,13 +68,13 @@ "multiavatar/multiavatar-php": "^1.0" }, "require-dev": { - "codeception/codeception": "^4.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-deprecation-rules": "^1.0", + "codeception/codeception": "^5.0", + "phpstan/phpstan": "^1.12", + "phpstan/phpstan-deprecation-rules": "^1.2", "phpunit/php-code-coverage": "~9.2", "getgrav/markdowndocs": "^2.0", - "codeception/module-asserts": "^1.3", - "codeception/module-phpbrowser": "^1.0" + "codeception/module-asserts": "^3.0", + "codeception/module-phpbrowser": "^3.0" }, "repositories": [ { @@ -100,7 +100,7 @@ "config": { "apcu-autoloader": true, "platform": { - "php": "7.4.1" + "php": "8.2" } }, "autoload": { diff --git a/index.php b/index.php index 242794a058..0db9c1876e 100644 --- a/index.php +++ b/index.php @@ -10,7 +10,7 @@ namespace Grav; \define('GRAV_REQUEST_TIME', microtime(true)); -\define('GRAV_PHP_MIN', '7.3.6'); +\define('GRAV_PHP_MIN', '8.2.0'); if (PHP_SAPI === 'cli-server') { $symfony_server = stripos(getenv('_'), 'symfony') !== false || stripos($_SERVER['SERVER_SOFTWARE'] ?? '', 'symfony') !== false || stripos($_ENV['SERVER_SOFTWARE'] ?? '', 'symfony') !== false; diff --git a/system/defines.php b/system/defines.php index f090bde296..a55159b406 100644 --- a/system/defines.php +++ b/system/defines.php @@ -9,13 +9,13 @@ // Some standard defines define('GRAV', true); -define('GRAV_VERSION', '1.7.46'); -define('GRAV_SCHEMA', '1.7.0_2020-11-20_1'); +define('GRAV_VERSION', '1.8.0'); +define('GRAV_SCHEMA', '1.8.0_2024-10-14_1'); define('GRAV_TESTING', false); // PHP minimum requirement if (!defined('GRAV_PHP_MIN')) { - define('GRAV_PHP_MIN', '7.3.6'); + define('GRAV_PHP_MIN', '8.2.0'); } // Directory separator diff --git a/system/src/Grav/Console/ConsoleTrait.php b/system/src/Grav/Console/ConsoleTrait.php index 2f8848ffd8..f3728fc38b 100644 --- a/system/src/Grav/Console/ConsoleTrait.php +++ b/system/src/Grav/Console/ConsoleTrait.php @@ -86,7 +86,7 @@ public function getIO(): SymfonyStyle * @return $this * @throws InvalidArgumentException If option mode is invalid or incompatible */ - public function addOption($name, $shortcut = null, $mode = null, $description = '', $default = null) + public function addOption(string $name, array|string|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null): static { if ($name !== 'env' && $name !== 'lang') { parent::addOption($name, $shortcut, $mode, $description, $default); From dcfbd73d43bf09f05668609b6ee9b96ce43d1f75 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Mon, 14 Oct 2024 20:53:07 +0100 Subject: [PATCH 32/54] twig compatibility stuff --- system/src/Grav/Common/Twig/Twig.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/system/src/Grav/Common/Twig/Twig.php b/system/src/Grav/Common/Twig/Twig.php index 6e50916fb3..45f54b3a4b 100644 --- a/system/src/Grav/Common/Twig/Twig.php +++ b/system/src/Grav/Common/Twig/Twig.php @@ -43,6 +43,17 @@ use function in_array; use function is_array; +// Twig3 compatibility +if (!class_exists('Twig_SimpleFunction')) { + class_alias('\Twig\TwigFunction', 'Twig_SimpleFunction'); +} +if (!class_exists('Twig_SimpleFilter')) { + class_alias('\Twig\TwigFilter', 'Twig_SimpleFilter'); +} +if (!class_exists('Twig_Extension')) { + class_alias('\Twig\Extension\AbstractExtension', 'Twig_Extension'); +} + /** * Class Twig * @package Grav\Common\Twig From e15cc86716f46fa8c35ef3948220d3dd28ea6207 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Mon, 21 Oct 2024 14:19:45 +0100 Subject: [PATCH 33/54] toAscii() should be static --- system/src/Grav/Common/Utils.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/src/Grav/Common/Utils.php b/system/src/Grav/Common/Utils.php index c012754232..582fe5e3db 100644 --- a/system/src/Grav/Common/Utils.php +++ b/system/src/Grav/Common/Utils.php @@ -1888,7 +1888,7 @@ public static function processMarkdown($string, $block = true, $page = null) return $string; } - public function toAscii(String $string): String + public static function toAscii(String $string): String { return strtr(utf8_decode($string), utf8_decode( From b96483c49a6898d3e677b9f54d4e0203b2edf97a Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Tue, 22 Oct 2024 13:24:35 +0100 Subject: [PATCH 34/54] Fix tests for latest Codeception version --- codeception.yml | 2 +- composer.json | 6 +-- composer.lock | 40 ++++++++--------- tests/_support/Helper/Unit.php | 27 ----------- tests/acceptance.suite.yml | 2 +- tests/functional.suite.yml | 2 +- .../Grav/Console/DirectInstallCommandTest.php | 7 +-- tests/unit.suite.yml | 2 +- tests/unit/Grav/Common/AssetsTest.php | 13 +++--- tests/unit/Grav/Common/BrowserTest.php | 7 +-- tests/unit/Grav/Common/ComposerTest.php | 6 +-- tests/unit/Grav/Common/Data/BlueprintTest.php | 2 +- tests/unit/Grav/Common/GPM/GPMTest.php | 10 +++-- .../unit/Grav/Common/Helpers/ExcerptsTest.php | 11 ++--- tests/unit/Grav/Common/InflectorTest.php | 7 +-- .../Common/Language/LanguageCodesTest.php | 2 +- .../Grav/Common/Markdown/ParsedownTest.php | 45 ++++++++++--------- tests/unit/Grav/Common/Page/PagesTest.php | 5 ++- .../Twig/Extensions/GravExtensionTest.php | 5 ++- tests/unit/Grav/Common/UriTest.php | 7 +-- tests/unit/Grav/Common/UtilsTest.php | 7 +-- .../Grav/Console/Gpm/InstallCommandTest.php | 7 +-- .../File/Formatter/CsvFormatterTest.php | 2 +- .../Framework/Filesystem/FilesystemTest.php | 10 +++-- 24 files changed, 111 insertions(+), 123 deletions(-) diff --git a/codeception.yml b/codeception.yml index 4b41baa97f..e968b85040 100644 --- a/codeception.yml +++ b/codeception.yml @@ -2,7 +2,7 @@ actor: Tester bootstrap: _bootstrap.php paths: tests: tests - log: tests/_output + output: tests/_output data: tests/_data support: tests/_support envs: tests/_envs diff --git a/composer.json b/composer.json index e20d437587..f82ad1c6ad 100644 --- a/composer.json +++ b/composer.json @@ -68,13 +68,13 @@ "multiavatar/multiavatar-php": "^1.0" }, "require-dev": { - "codeception/codeception": "^5.0", + "codeception/codeception": "^5.1", "phpstan/phpstan": "^1.12", "phpstan/phpstan-deprecation-rules": "^1.2", "phpunit/php-code-coverage": "~9.2", "getgrav/markdowndocs": "^2.0", - "codeception/module-asserts": "^3.0", - "codeception/module-phpbrowser": "^3.0" + "codeception/module-asserts": "*", + "codeception/module-phpbrowser": "*" }, "repositories": [ { diff --git a/composer.lock b/composer.lock index 2021c4c268..57f648ce33 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": "a11f7fe97247357a2dfe64210d20615b", + "content-hash": "f0dd39cd25f1a10bfd5277beac4e826e", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -3885,25 +3885,25 @@ "packages-dev": [ { "name": "behat/gherkin", - "version": "v4.9.0", + "version": "v4.10.0", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4" + "reference": "cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4", - "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6", + "reference": "cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6", "shasum": "" }, "require": { "php": "~7.2|~8.0" }, "require-dev": { - "cucumber/cucumber": "dev-gherkin-22.0.0", + "cucumber/cucumber": "dev-gherkin-24.1.0", "phpunit/phpunit": "~8|~9", - "symfony/yaml": "~3|~4|~5" + "symfony/yaml": "~3|~4|~5|~6|~7" }, "suggest": { "symfony/yaml": "If you want to parse features, represented in YAML files" @@ -3942,9 +3942,9 @@ ], "support": { "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.9.0" + "source": "https://github.com/Behat/Gherkin/tree/v4.10.0" }, - "time": "2021-10-12T13:05:09+00:00" + "time": "2024-10-19T14:46:06+00:00" }, { "name": "codeception/codeception", @@ -4641,16 +4641,16 @@ }, { "name": "guzzlehttp/promises", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -4704,7 +4704,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.3" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -4720,7 +4720,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "masterminds/html5", @@ -5027,16 +5027,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.6", + "version": "1.12.7", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "dc4d2f145a88ea7141ae698effd64d9df46527ae" + "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc4d2f145a88ea7141ae698effd64d9df46527ae", - "reference": "dc4d2f145a88ea7141ae698effd64d9df46527ae", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", + "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", "shasum": "" }, "require": { @@ -5081,7 +5081,7 @@ "type": "github" } ], - "time": "2024-10-06T15:03:59+00:00" + "time": "2024-10-18T11:12:07+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", diff --git a/tests/_support/Helper/Unit.php b/tests/_support/Helper/Unit.php index 74ef5a6b89..fca98844d2 100644 --- a/tests/_support/Helper/Unit.php +++ b/tests/_support/Helper/Unit.php @@ -60,31 +60,4 @@ public function _afterStep(Codeception\Step $step) { } - /** - * HOOK: before each suite - * - * @param Codeception\TestCase $test - */ - public function _before(Codeception\TestCase $test) - { - } - - /** - * HOOK: before each suite - * - * @param Codeception\TestCase $test - */ - public function _after(Codeception\TestCase $test) - { - } - - /** - * HOOK: on fail - * - * @param Codeception\TestCase $test - * @param $fail - */ - public function _failed(Codeception\TestCase $test, $fail) - { - } } diff --git a/tests/acceptance.suite.yml b/tests/acceptance.suite.yml index 2734f47d7e..1efb88a0b5 100644 --- a/tests/acceptance.suite.yml +++ b/tests/acceptance.suite.yml @@ -4,7 +4,7 @@ # Perform tests in browser using the WebDriver or PhpBrowser. # If you need both WebDriver and PHPBrowser tests - create a separate suite. -class_name: AcceptanceTester +class: AcceptanceTester modules: enabled: - PhpBrowser: diff --git a/tests/functional.suite.yml b/tests/functional.suite.yml index 075765bd90..2ffb52053f 100644 --- a/tests/functional.suite.yml +++ b/tests/functional.suite.yml @@ -4,7 +4,7 @@ # Emulate web requests and make application process them # Include one of framework modules (Symfony2, Yii2, Laravel5) to use it -class_name: FunctionalTester +class: FunctionalTester modules: enabled: # add framework module here diff --git a/tests/functional/Grav/Console/DirectInstallCommandTest.php b/tests/functional/Grav/Console/DirectInstallCommandTest.php index 4f71998629..76beb1fc7e 100644 --- a/tests/functional/Grav/Console/DirectInstallCommandTest.php +++ b/tests/functional/Grav/Console/DirectInstallCommandTest.php @@ -7,7 +7,7 @@ /** * Class DirectInstallCommandTest */ -class DirectInstallCommandTest extends \Codeception\TestCase\Test +class DirectInstallCommandTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -16,9 +16,10 @@ class DirectInstallCommandTest extends \Codeception\TestCase\Test protected $directInstall; - protected function _before(): void + protected function setUp(): void { - $this->grav = Fixtures::get('grav'); + parent::setUp(); +$this->grav = Fixtures::get('grav'); $this->directInstallCommand = new DirectInstallCommand(); } } diff --git a/tests/unit.suite.yml b/tests/unit.suite.yml index 02dc9b1e0a..2e32b569d3 100644 --- a/tests/unit.suite.yml +++ b/tests/unit.suite.yml @@ -2,7 +2,7 @@ # # Suite for unit (internal) tests. -class_name: UnitTester +class: UnitTester modules: enabled: - Asserts diff --git a/tests/unit/Grav/Common/AssetsTest.php b/tests/unit/Grav/Common/AssetsTest.php index 57539a6f34..817f52fe43 100644 --- a/tests/unit/Grav/Common/AssetsTest.php +++ b/tests/unit/Grav/Common/AssetsTest.php @@ -7,7 +7,7 @@ /** * Class AssetsTest */ -class AssetsTest extends \Codeception\TestCase\Test +class AssetsTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -15,14 +15,15 @@ class AssetsTest extends \Codeception\TestCase\Test /** @var Assets $assets */ protected $assets; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $grav = Fixtures::get('grav'); $this->grav = $grav(); $this->assets = $this->grav['assets']; } - protected function _after(): void + protected function tearDown(): void { } @@ -565,12 +566,12 @@ public function testPipeline(): void $this->assets->add('test.css', null, true); $this->assets->setCssPipeline(true); $css = $this->assets->css(); - self::assertRegExp('##', $css); + self::assertMatchesRegularExpression('##', $css); //Add a core Grav CSS file, which is found. Pipeline will now return a file $this->assets->add('/system/assets/debugger/phpdebugbar', null, true); $css = $this->assets->css(); - self::assertRegExp('##', $css); + self::assertMatchesRegularExpression('##', $css); } public function testPipelineWithTimestamp(): void @@ -582,7 +583,7 @@ public function testPipelineWithTimestamp(): void //Add a core Grav CSS file, which is found. Pipeline will now return a file $this->assets->add('/system/assets/debugger.css', null, true); $css = $this->assets->css(); - self::assertRegExp('##', $css); + self::assertMatchesRegularExpression('##', $css); } public function testInline(): void diff --git a/tests/unit/Grav/Common/BrowserTest.php b/tests/unit/Grav/Common/BrowserTest.php index a1033d8c97..c44dffecb3 100644 --- a/tests/unit/Grav/Common/BrowserTest.php +++ b/tests/unit/Grav/Common/BrowserTest.php @@ -6,18 +6,19 @@ /** * Class BrowserTest */ -class BrowserTest extends \Codeception\TestCase\Test +class BrowserTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $grav = Fixtures::get('grav'); $this->grav = $grav(); } - protected function _after(): void + protected function tearDown(): void { } diff --git a/tests/unit/Grav/Common/ComposerTest.php b/tests/unit/Grav/Common/ComposerTest.php index 8c73a1fc3d..b4f47d84c6 100644 --- a/tests/unit/Grav/Common/ComposerTest.php +++ b/tests/unit/Grav/Common/ComposerTest.php @@ -3,13 +3,13 @@ use Codeception\Util\Fixtures; use Grav\Common\Composer; -class ComposerTest extends \Codeception\TestCase\Test +class ComposerTest extends \PHPUnit\Framework\TestCase { - protected function _before(): void + protected function setUp(): void { } - protected function _after(): void + protected function tearDown(): void { } diff --git a/tests/unit/Grav/Common/Data/BlueprintTest.php b/tests/unit/Grav/Common/Data/BlueprintTest.php index ff6ccf56e7..54a2879e10 100644 --- a/tests/unit/Grav/Common/Data/BlueprintTest.php +++ b/tests/unit/Grav/Common/Data/BlueprintTest.php @@ -7,7 +7,7 @@ /** * Class InstallCommandTest */ -class BlueprintTest extends \Codeception\TestCase\Test +class BlueprintTest extends \PHPUnit\Framework\TestCase { /** */ diff --git a/tests/unit/Grav/Common/GPM/GPMTest.php b/tests/unit/Grav/Common/GPM/GPMTest.php index 684ed3dd18..6968021e18 100644 --- a/tests/unit/Grav/Common/GPM/GPMTest.php +++ b/tests/unit/Grav/Common/GPM/GPMTest.php @@ -35,7 +35,7 @@ public function findPackages($searches = []) /** * Class InstallCommandTest */ -class GpmTest extends \Codeception\TestCase\Test +class GpmTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -43,13 +43,15 @@ class GpmTest extends \Codeception\TestCase\Test /** @var GpmStub */ protected $gpm; - protected function _before(): void + protected function setUp(): void { - $this->grav = Fixtures::get('grav'); + parent::setUp(); + +$this->grav = Fixtures::get('grav'); $this->gpm = new GpmStub(); } - protected function _after(): void + protected function tearDown(): void { } diff --git a/tests/unit/Grav/Common/Helpers/ExcerptsTest.php b/tests/unit/Grav/Common/Helpers/ExcerptsTest.php index 8cb473c314..950f213045 100644 --- a/tests/unit/Grav/Common/Helpers/ExcerptsTest.php +++ b/tests/unit/Grav/Common/Helpers/ExcerptsTest.php @@ -13,7 +13,7 @@ /** * Class ExcerptsTest */ -class ExcerptsTest extends \Codeception\TestCase\Test +class ExcerptsTest extends \PHPUnit\Framework\TestCase { /** @var Parsedown $parsedown */ protected $parsedown; @@ -38,8 +38,9 @@ class ExcerptsTest extends \Codeception\TestCase\Test protected $old_home; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $grav = Fixtures::get('grav'); $this->grav = $grav(); $this->pages = $this->grav['pages']; @@ -70,7 +71,7 @@ protected function _before(): void $this->uri->initializeWithURL('http://testing.dev/item2/item2-2')->init(); } - protected function _after(): void + protected function tearDown(): void { $this->config->set('system.home.alias', $this->old_home); } @@ -78,11 +79,11 @@ protected function _after(): void public function testProcessImageHtml(): void { - self::assertRegexp( + self::assertMatchesRegularExpression( '|Sample Image|', Excerpts::processImageHtml('Sample Image', $this->page) ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|Sample Image|', Excerpts::processImageHtml('Sample Image', $this->page) ); diff --git a/tests/unit/Grav/Common/InflectorTest.php b/tests/unit/Grav/Common/InflectorTest.php index 63e6e9961e..4c914474e9 100644 --- a/tests/unit/Grav/Common/InflectorTest.php +++ b/tests/unit/Grav/Common/InflectorTest.php @@ -8,7 +8,7 @@ /** * Class InflectorTest */ -class InflectorTest extends \Codeception\TestCase\Test +class InflectorTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -16,14 +16,15 @@ class InflectorTest extends \Codeception\TestCase\Test /** @var Inflector $uri */ protected $inflector; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $grav = Fixtures::get('grav'); $this->grav = $grav(); $this->inflector = $this->grav['inflector']; } - protected function _after(): void + protected function tearDown(): void { } diff --git a/tests/unit/Grav/Common/Language/LanguageCodesTest.php b/tests/unit/Grav/Common/Language/LanguageCodesTest.php index 3450c88ea5..e163942d0c 100644 --- a/tests/unit/Grav/Common/Language/LanguageCodesTest.php +++ b/tests/unit/Grav/Common/Language/LanguageCodesTest.php @@ -5,7 +5,7 @@ /** * Class ParsedownTest */ -class LanguageCodesTest extends \Codeception\TestCase\Test +class LanguageCodesTest extends \PHPUnit\Framework\TestCase { public function testRtl(): void { diff --git a/tests/unit/Grav/Common/Markdown/ParsedownTest.php b/tests/unit/Grav/Common/Markdown/ParsedownTest.php index 5706389b9e..4503c4d91c 100644 --- a/tests/unit/Grav/Common/Markdown/ParsedownTest.php +++ b/tests/unit/Grav/Common/Markdown/ParsedownTest.php @@ -13,7 +13,7 @@ /** * Class ParsedownTest */ -class ParsedownTest extends \Codeception\TestCase\Test +class ParsedownTest extends \PHPUnit\Framework\TestCase { /** @var Parsedown $parsedown */ protected $parsedown; @@ -35,8 +35,9 @@ class ParsedownTest extends \Codeception\TestCase\Test protected $old_home; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $grav = Fixtures::get('grav'); $this->grav = $grav(); $this->pages = $this->grav['pages']; @@ -72,7 +73,7 @@ protected function _before(): void $this->parsedown = new Parsedown($excerpts); } - protected function _after(): void + protected function tearDown(): void { $this->config->set('system.home.alias', $this->old_home); } @@ -88,7 +89,7 @@ public function testImages(): void '

', $this->parsedown->text('![](sample-image.jpg)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](cache-image.jpg?cropResize=200,200&foo)') ); @@ -99,11 +100,11 @@ public function testImages(): void '

', $this->parsedown->text('![](sample-image.jpg)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](cache-image.jpg?cropResize=200,200&foo)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](/home-cache-image.jpg?cache)') ); @@ -130,7 +131,7 @@ public function testImagesSubDir(): void $this->config->set('system.images.cache_all', false); $this->uri->initializeWithUrlAndRootPath('http://testing.dev/subdir/item2/item2-2', '/subdir')->init(); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](/home-cache-image.jpg?cache)') ); @@ -138,7 +139,7 @@ public function testImagesSubDir(): void '

', $this->parsedown->text('![](sample-image.jpg)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](cache-image.jpg?cache)') ); @@ -161,11 +162,11 @@ public function testImagesAbsoluteUrls(): void '

', $this->parsedown->text('![](sample-image.jpg)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](cache-image.jpg?cache)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](/home-cache-image.jpg?cache)') ); @@ -188,11 +189,11 @@ public function testImagesSubDirAbsoluteUrls(): void '

', $this->parsedown->text('![](sample-image.jpg)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](cache-image.jpg?cache)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](/home-cache-image.jpg?cropResize=200,200)') ); @@ -320,7 +321,7 @@ public function testCLSAutoSizes(): void $this->parsedown->text('![](sample-image.jpg?autoSizes=false)') ); - self::assertRegExp( + self::assertMatchesRegularExpression( '/width="400" height="200"/', $this->parsedown->text('![](sample-image.jpg?reset&resize=400,200)') ); @@ -328,33 +329,33 @@ public function testCLSAutoSizes(): void $this->config->set('system.images.cls.retina_scale', 2); - self::assertRegExp( + self::assertMatchesRegularExpression( '/width="400" height="200"/', $this->parsedown->text('![](sample-image.jpg?reset&resize=800,400)') ); $this->config->set('system.images.cls.retina_scale', 4); - self::assertRegExp( + self::assertMatchesRegularExpression( '/width="200" height="100"/', $this->parsedown->text('![](sample-image.jpg?reset&resize=800,400)') ); - self::assertRegExp( + self::assertMatchesRegularExpression( '/width="266" height="133"/', $this->parsedown->text('![](sample-image.jpg?reset&resize=800,400&retinaScale=3)') ); $this->config->set('system.images.cls.aspect_ratio', true); - self::assertRegExp( + self::assertMatchesRegularExpression( '/style="--aspect-ratio: 800\/400;"/', $this->parsedown->text('![](sample-image.jpg?reset&resize=800,400)') ); $this->config->set('system.images.cls.aspect_ratio', false); - self::assertRegExp( + self::assertMatchesRegularExpression( '/style="--aspect-ratio: 800\/400;"/', $this->parsedown->text('![](sample-image.jpg?reset&resize=800,400&aspectRatio=true)') ); @@ -383,11 +384,11 @@ public function testRootImages(): void '

', $this->parsedown->text('![](home-sample-image.jpg)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](home-cache-image.jpg?cache)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](home-cache-image.jpg?cropResize=200,200&foo)') ); @@ -416,11 +417,11 @@ public function testRootImagesSubDirAbsoluteUrls(): void '

', $this->parsedown->text('![](sample-image.jpg)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](cache-image.jpg?cache)') ); - self::assertRegexp( + self::assertMatchesRegularExpression( '|

<\/p>|', $this->parsedown->text('![](/home-cache-image.jpg?cropResize=200,200)') ); diff --git a/tests/unit/Grav/Common/Page/PagesTest.php b/tests/unit/Grav/Common/Page/PagesTest.php index edff75bc83..74f816ad51 100644 --- a/tests/unit/Grav/Common/Page/PagesTest.php +++ b/tests/unit/Grav/Common/Page/PagesTest.php @@ -10,7 +10,7 @@ /** * Class PagesTest */ -class PagesTest extends \Codeception\TestCase\Test +class PagesTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -21,8 +21,9 @@ class PagesTest extends \Codeception\TestCase\Test /** @var PageInterface $root_page */ protected $root_page; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $grav = Fixtures::get('grav'); $this->grav = $grav(); $this->pages = $this->grav['pages']; diff --git a/tests/unit/Grav/Common/Twig/Extensions/GravExtensionTest.php b/tests/unit/Grav/Common/Twig/Extensions/GravExtensionTest.php index 2adb023788..d5370b1f41 100644 --- a/tests/unit/Grav/Common/Twig/Extensions/GravExtensionTest.php +++ b/tests/unit/Grav/Common/Twig/Extensions/GravExtensionTest.php @@ -7,7 +7,7 @@ /** * Class GravExtensionTest */ -class GravExtensionTest extends \Codeception\TestCase\Test +class GravExtensionTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -15,8 +15,9 @@ class GravExtensionTest extends \Codeception\TestCase\Test /** @var GravExtension $twig_ext */ protected $twig_ext; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $this->grav = Fixtures::get('grav'); $this->twig_ext = new GravExtension(); } diff --git a/tests/unit/Grav/Common/UriTest.php b/tests/unit/Grav/Common/UriTest.php index c36ce52daf..8f236dc403 100644 --- a/tests/unit/Grav/Common/UriTest.php +++ b/tests/unit/Grav/Common/UriTest.php @@ -9,7 +9,7 @@ /** * Class UriTest */ -class UriTest extends \Codeception\TestCase\Test +class UriTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -858,15 +858,16 @@ class UriTest extends \Codeception\TestCase\Test ], ]; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $grav = Fixtures::get('grav'); $this->grav = $grav(); $this->uri = $this->grav['uri']; $this->config = $this->grav['config']; } - protected function _after(): void + protected function tearDown(): void { } diff --git a/tests/unit/Grav/Common/UtilsTest.php b/tests/unit/Grav/Common/UtilsTest.php index 9a29ad7e2f..05b7cbd8c0 100644 --- a/tests/unit/Grav/Common/UtilsTest.php +++ b/tests/unit/Grav/Common/UtilsTest.php @@ -8,7 +8,7 @@ /** * Class UtilsTest */ -class UtilsTest extends \Codeception\TestCase\Test +class UtilsTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -16,14 +16,15 @@ class UtilsTest extends \Codeception\TestCase\Test /** @var Uri $uri */ protected $uri; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $grav = Fixtures::get('grav'); $this->grav = $grav(); $this->uri = $this->grav['uri']; } - protected function _after(): void + protected function tearDown(): void { } diff --git a/tests/unit/Grav/Console/Gpm/InstallCommandTest.php b/tests/unit/Grav/Console/Gpm/InstallCommandTest.php index 94aef1ac81..43dd5a49f7 100644 --- a/tests/unit/Grav/Console/Gpm/InstallCommandTest.php +++ b/tests/unit/Grav/Console/Gpm/InstallCommandTest.php @@ -7,7 +7,7 @@ /** * Class InstallCommandTest */ -class InstallCommandTest extends \Codeception\TestCase\Test +class InstallCommandTest extends \PHPUnit\Framework\TestCase { /** @var Grav $grav */ protected $grav; @@ -16,13 +16,14 @@ class InstallCommandTest extends \Codeception\TestCase\Test protected $installCommand; - protected function _before(): void + protected function setUp(): void { + parent::setUp(); $this->grav = Fixtures::get('grav'); $this->installCommand = new InstallCommand(); } - protected function _after(): void + protected function tearDown(): void { } } diff --git a/tests/unit/Grav/Framework/File/Formatter/CsvFormatterTest.php b/tests/unit/Grav/Framework/File/Formatter/CsvFormatterTest.php index 7bff4e25fe..cce1d20fc7 100644 --- a/tests/unit/Grav/Framework/File/Formatter/CsvFormatterTest.php +++ b/tests/unit/Grav/Framework/File/Formatter/CsvFormatterTest.php @@ -5,7 +5,7 @@ /** * Class CsvFormatterTest */ -class CsvFormatterTest extends \Codeception\TestCase\Test +class CsvFormatterTest extends \PHPUnit\Framework\TestCase { public function testEncodeWithAssocColumns(): void { diff --git a/tests/unit/Grav/Framework/Filesystem/FilesystemTest.php b/tests/unit/Grav/Framework/Filesystem/FilesystemTest.php index 2aea40ca46..eb9eab0f5b 100644 --- a/tests/unit/Grav/Framework/Filesystem/FilesystemTest.php +++ b/tests/unit/Grav/Framework/Filesystem/FilesystemTest.php @@ -5,7 +5,7 @@ /** * Class FilesystemTest */ -class FilesystemTest extends \Codeception\TestCase\Test +class FilesystemTest extends \PHPUnit\Framework\TestCase { protected $class; @@ -280,12 +280,14 @@ class FilesystemTest extends \Codeception\TestCase\Test ], ]; - protected function _before(): void + protected function setUp(): void { - $this->class = Filesystem::getInstance(); + parent::setUp(); + +$this->class = Filesystem::getInstance(); } - protected function _after(): void + protected function tearDown(): void { unset($this->class); } From 302f02ca5d4d4c493c9a7de7b550f52501265104 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Tue, 22 Oct 2024 18:01:41 +0100 Subject: [PATCH 35/54] revert schema --- system/defines.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/defines.php b/system/defines.php index a55159b406..21aead4e39 100644 --- a/system/defines.php +++ b/system/defines.php @@ -10,7 +10,7 @@ // Some standard defines define('GRAV', true); define('GRAV_VERSION', '1.8.0'); -define('GRAV_SCHEMA', '1.8.0_2024-10-14_1'); +define('GRAV_SCHEMA', '1.7.0_2020-11-20_1'); define('GRAV_TESTING', false); // PHP minimum requirement From 574a430a1041952960538b59b88acbc101019bc8 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 12:14:45 +0100 Subject: [PATCH 36/54] more composer updates --- composer.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index f82ad1c6ad..c87c774ce7 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,6 @@ "psr/http-server-middleware": "^1.0", "psr/container": "^1.1", "psr/log": "^1.1", - "symfony/contracts": "~v3.0", "symfony/cache": "^6.4", "symfony/yaml": "^6.4", "symfony/console": "^6.4", @@ -39,7 +38,7 @@ "symfony/process": "^6.4", "symfony/http-client": "^6.4", "twig/twig": "^2.1", - "monolog/monolog": "^1.27", + "monolog/monolog": "^2.0", "doctrine/cache": "^2.2", "doctrine/collections": "^1.8", "pimple/pimple": "~3.5.0", @@ -50,7 +49,7 @@ "rockettheme/toolbox": "v2.x-dev", "composer/ca-bundle": "^1.5", "composer/semver": "^3.4", - "dragonmantank/cron-expression": "^1.2", + "dragonmantank/cron-expression": "^3.0", "willdurand/negotiation": "^3.1", "rhukster/dom-sanitizer": "^1.0", "matthiasmullie/minify": "^1.3", @@ -59,7 +58,6 @@ "filp/whoops": "~2.16", "itsgoingd/clockwork": "^5.2", "maximebf/debugbar": "~1.23", - "getgrav/image": "^3.0", "getgrav/cache": "^2.0", "antoligy/dom-string-iterators": "^1.0", From 10d36a10bc5319b92e5154e4c951759fcc1f9dcc Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 12:16:29 +0100 Subject: [PATCH 37/54] updated composer.lock --- composer.lock | 531 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 454 insertions(+), 77 deletions(-) diff --git a/composer.lock b/composer.lock index 57f648ce33..0f48f20e9a 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": "f0dd39cd25f1a10bfd5277beac4e826e", + "content-hash": "6624f4f63ab14ab12417c415ec58fbc3", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -497,25 +497,36 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v1.2.1", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad" + "reference": "8c784d071debd117328803d86b2097615b457500" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/9504fa9ea681b586028adaaa0877db4aecf32bad", - "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" }, "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -527,9 +538,9 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" } ], "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", @@ -538,9 +549,16 @@ "schedule" ], "support": { - "source": "https://github.com/dragonmantank/cron-expression/tree/v1.2.0" + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" }, - "time": "2017-01-23T04:29:33+00:00" + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2024-10-09T13:47:03+00:00" }, { "name": "erusev/parsedown", @@ -1335,51 +1353,67 @@ }, { "name": "monolog/monolog", - "version": "1.27.1", + "version": "2.9.3", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" + "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", - "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/a30bfe2e142720dfa990d0a7e573997f5d884215", + "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" + "php": ">=7.2", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "provide": { - "psr/log-implementation": "1.0.0" + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" }, "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpstan/phpstan": "^0.12.59", - "phpunit/phpunit": "~4.5", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", - "swiftmailer/swiftmailer": "^5.3|^6.0" + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2@dev", + "guzzlehttp/guzzle": "^7.4", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpspec/prophecy": "^1.15", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.38 || ^9.6.19", + "predis/predis": "^1.1 || ^2.0", + "rollbar/rollbar": "^1.3 || ^2 || ^3", + "ruflin/elastica": "^7", + "swiftmailer/swiftmailer": "^5.3|^6.0", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, "autoload": { "psr-4": { "Monolog\\": "src/Monolog" @@ -1393,11 +1427,11 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "homepage": "https://github.com/Seldaek/monolog", "keywords": [ "log", "logging", @@ -1405,7 +1439,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + "source": "https://github.com/Seldaek/monolog/tree/2.9.3" }, "funding": [ { @@ -1417,7 +1451,7 @@ "type": "tidelift" } ], - "time": "2022-06-09T08:53:42+00:00" + "time": "2024-04-12T20:52:51+00:00" }, { "name": "multiavatar/multiavatar-php", @@ -2447,6 +2481,82 @@ ], "time": "2024-09-16T16:01:33+00:00" }, + { + "name": "symfony/cache-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/df6a1a44c890faded49a5fca33c2d5c5fd3c2197", + "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/cache": "^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, { "name": "symfony/console", "version": "v6.4.12", @@ -2542,54 +2652,35 @@ "time": "2024-09-20T08:15:52+00:00" }, { - "name": "symfony/contracts", + "name": "symfony/deprecation-contracts", "version": "v3.5.0", "source": { "type": "git", - "url": "https://github.com/symfony/contracts.git", - "reference": "f8cd5313753cfac8329ebc4033e2013b874208e1" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/f8cd5313753cfac8329ebc4033e2013b874208e1", - "reference": "f8cd5313753cfac8329ebc4033e2013b874208e1", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/cache": "^3.0", - "psr/container": "^1.1|^2.0", - "psr/event-dispatcher": "^1.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "replace": { - "symfony/cache-contracts": "self.version", - "symfony/deprecation-contracts": "self.version", - "symfony/event-dispatcher-contracts": "self.version", - "symfony/http-client-contracts": "self.version", - "symfony/service-contracts": "self.version", - "symfony/translation-contracts": "self.version" - }, - "require-dev": { - "symfony/polyfill-intl-idn": "^1.10" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { "files": [ - "Deprecation/function.php" - ], - "psr-4": { - "Symfony\\Contracts\\": "" - }, - "exclude-from-classmap": [ - "**/Tests/" + "function.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2606,19 +2697,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A set of abstractions extracted out of the Symfony components", + "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "dev", - "interfaces", - "interoperability", - "standards" - ], "support": { - "source": "https://github.com/symfony/contracts/tree/v3.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" }, "funding": [ { @@ -2716,6 +2798,82 @@ ], "time": "2024-05-31T14:49:08+00:00" }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, { "name": "symfony/http-client", "version": "v6.4.12", @@ -2809,6 +2967,84 @@ ], "time": "2024-09-20T08:21:33+00:00" }, + { + "name": "symfony/http-client-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "20414d96f391677bf80078aa55baece78b82647d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d", + "reference": "20414d96f391677bf80078aa55baece78b82647d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, { "name": "symfony/polyfill-ctype", "version": "v1.31.0", @@ -3424,6 +3660,89 @@ ], "time": "2024-09-17T12:47:12+00:00" }, + { + "name": "symfony/service-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, { "name": "symfony/string", "version": "v7.1.5", @@ -3825,6 +4144,64 @@ ], "time": "2024-09-09T17:53:56+00:00" }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + }, { "name": "willdurand/negotiation", "version": "3.1.0", From ae567469b7ec84079d5280b8a76a33eaefa37c5f Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 13:08:06 +0100 Subject: [PATCH 38/54] prepare for beta release --- CHANGELOG.md | 4 ++-- README.md | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d884ef02c2..9ca89872b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -# v1.8.0-dev -## mm/dd/2022 +# v1.8.0-beta.1 +## 10/23/2024 1. [](#new) * Set minimum requirements to **PHP 8.2** diff --git a/README.md b/README.md index f16f62b4e4..3a0214dbd1 100644 --- a/README.md +++ b/README.md @@ -89,9 +89,10 @@ $ bin/gpm update ## Upgrading from older version +* [Upgrading to Grav 1.8](https://learn.getgrav.org/16/advanced/grav-development/grav-18-upgrade-guide) * [Upgrading to Grav 1.7](https://learn.getgrav.org/16/advanced/grav-development/grav-17-upgrade-guide) * [Upgrading to Grav 1.6](https://learn.getgrav.org/16/advanced/grav-development/grav-16-upgrade-guide) -* [Upgrading from Grav <1.6](https://learn.getgrav.org/16/advanced/grav-development/grav-15-upgrade-guide) +* [Upgrading from Grav before 1.6](https://learn.getgrav.org/16/advanced/grav-development/grav-15-upgrade-guide) # Contributing We appreciate any contribution to Grav, whether it is related to bugs, grammar, or simply a suggestion or improvement! Please refer to the [Contributing guide](CONTRIBUTING.md) for more guidance on this topic. From ee55d097f2deec2bbf1e1d2ffc084c776b3db9a2 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 13:08:34 +0100 Subject: [PATCH 39/54] set testing true --- system/defines.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/defines.php b/system/defines.php index 21aead4e39..71818cebe1 100644 --- a/system/defines.php +++ b/system/defines.php @@ -11,7 +11,7 @@ define('GRAV', true); define('GRAV_VERSION', '1.8.0'); define('GRAV_SCHEMA', '1.7.0_2020-11-20_1'); -define('GRAV_TESTING', false); +define('GRAV_TESTING', true); // PHP minimum requirement if (!defined('GRAV_PHP_MIN')) { From 3947bb03aa492152b91bdd089ee9a8b8f938c40a Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 13:14:26 +0100 Subject: [PATCH 40/54] set version properly --- system/defines.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/defines.php b/system/defines.php index 71818cebe1..ed67862e0b 100644 --- a/system/defines.php +++ b/system/defines.php @@ -9,7 +9,7 @@ // Some standard defines define('GRAV', true); -define('GRAV_VERSION', '1.8.0'); +define('GRAV_VERSION', '1.8.0-beta.1'); define('GRAV_SCHEMA', '1.7.0_2020-11-20_1'); define('GRAV_TESTING', true); From 16eafbbb048599fd2cdd499297e00fc128339a26 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 14:37:45 +0100 Subject: [PATCH 41/54] udpate build.yaml --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d21bea1bc9..17e3cf3cba 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -11,7 +11,7 @@ jobs: permissions: contents: write # for release creation (svenstaro/upload-release-action) - if: "!github.event.release.prerelease" + #if: "!github.event.release.prerelease" runs-on: ubuntu-latest steps: @@ -23,7 +23,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 7.3 + php-version: 8.2 extensions: opcache, gd tools: composer:v2 coverage: none From 5cd859865f19ae1046cc44e295d85b5ed3d2fc58 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 16:44:49 +0100 Subject: [PATCH 42/54] use build-grav-18.sh build script --- .github/workflows/build.yaml | 6 +++--- CHANGELOG.md | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 17e3cf3cba..6ded8d7b74 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -38,14 +38,14 @@ jobs: - name: Retrieval of Builder Scripts run: | # Real Grav URL - curl --silent -H "Authorization: token ${{ secrets.GLOBAL_TOKEN }}" -H "Accept: application/vnd.github.v3.raw" ${{ secrets.BUILD_SCRIPT_URL }} --output build-grav.sh + curl --silent -H "Authorization: token ${{ secrets.GLOBAL_TOKEN }}" -H "Accept: application/vnd.github.v3.raw" ${{ secrets.BUILD_SCRIPT_URL }} --output build-grav-18.sh # Development Local URL - # curl ${{ secrets.BUILD_SCRIPT_URL }} --output build-grav.sh + # curl ${{ secrets.BUILD_SCRIPT_URL }} --output build-grav-18.sh - name: Grav Builder run: | - bash ./build-grav.sh + bash ./build-grav-18.sh - name: Upload packages to release uses: svenstaro/upload-release-action@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ca89872b6..84bfdfa7fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,18 +17,18 @@ ## 10/23/2024 1. [](#new) - * New `Utils::toAscii()` method - * Added support for Clockwork Debugger to allow web UI (requires new `clockwork-web` plugin) + * New `Utils::toAscii()` method + * Added support for Clockwork Debugger to allow web UI (requires new `clockwork-web` plugin) 1. [](#improved) - * Include modular sub-pages in last-modification date computation [#3562](https://github.com/getgrav/grav/pull/3562) - * Updated vendor libs to latest versions - * Updated JQuery to `3.7.1` [#3787](https://github.com/getgrav/grav/pull/3827) - * Updated vendor libraries to latest versions - * Support for Fediverse Creator meta tag [#3844](https://github.com/getgrav/grav/pull/3844) -1. [](#bugfix) - * Fixes deprecated for return type in Filesystem with PHP 8.3.6 [#3831](https://github.com/getgrav/grav/issues/3831) - * Fix for `exif_imagtetype()` throwing an exception when file doesn't exist - * Fix JSON output comments check with content type [#3859](https://github.com/getgrav/grav/pull/3859) + * Include modular sub-pages in last-modification date computation [#3562](https://github.com/getgrav/grav/pull/3562) + * Updated vendor libs to latest versions + * Updated JQuery to `3.7.1` [#3787](https://github.com/getgrav/grav/pull/3827) + * Updated vendor libraries to latest versions + * Support for Fediverse Creator meta tag [#3844](https://github.com/getgrav/grav/pull/3844) +1. [](#bugfix) + * Fixes deprecated for return type in Filesystem with PHP 8.3.6 [#3831](https://github.com/getgrav/grav/issues/3831) + * Fix for `exif_imagtetype()` throwing an exception when file doesn't exist + * Fix JSON output comments check with content type [#3859](https://github.com/getgrav/grav/pull/3859) # v1.7.46 ## 05/15/2024 From 59031a87114df577b3155d8b853af2428ae1978a Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 17:07:10 +0100 Subject: [PATCH 43/54] use BUILD_SCRIPT_URL_18 in build --- .github/workflows/build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6ded8d7b74..f74e9cfcae 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -38,14 +38,14 @@ jobs: - name: Retrieval of Builder Scripts run: | # Real Grav URL - curl --silent -H "Authorization: token ${{ secrets.GLOBAL_TOKEN }}" -H "Accept: application/vnd.github.v3.raw" ${{ secrets.BUILD_SCRIPT_URL }} --output build-grav-18.sh + curl --silent -H "Authorization: token ${{ secrets.GLOBAL_TOKEN }}" -H "Accept: application/vnd.github.v3.raw" ${{ secrets.BUILD_SCRIPT_URL_18 }} --output build-grav.sh # Development Local URL - # curl ${{ secrets.BUILD_SCRIPT_URL }} --output build-grav-18.sh + # curl ${{ secrets.BUILD_SCRIPT_URL_18 }} --output build-grav.sh - name: Grav Builder run: | - bash ./build-grav-18.sh + bash ./build-grav.sh - name: Upload packages to release uses: svenstaro/upload-release-action@v2 From 62c60b8ba12140288f22f03e25551df77bd633c3 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 23 Oct 2024 17:17:51 +0100 Subject: [PATCH 44/54] Fixed a couple of monolog deprecations --- system/src/Grav/Common/Errors/Errors.php | 2 +- system/src/Grav/Common/Flex/Types/Users/UserIndex.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/src/Grav/Common/Errors/Errors.php b/system/src/Grav/Common/Errors/Errors.php index eec79f48e5..ac56fa6300 100644 --- a/system/src/Grav/Common/Errors/Errors.php +++ b/system/src/Grav/Common/Errors/Errors.php @@ -70,7 +70,7 @@ public function resetHandlers() $logger = $grav['log']; $whoops->pushHandler(function ($exception, $inspector, $run) use ($logger) { try { - $logger->addCritical($exception->getMessage() . ' - Trace: ' . $exception->getTraceAsString()); + $logger->critical($exception->getMessage() . ' - Trace: ' . $exception->getTraceAsString()); } catch (Exception $e) { echo $e; } diff --git a/system/src/Grav/Common/Flex/Types/Users/UserIndex.php b/system/src/Grav/Common/Flex/Types/Users/UserIndex.php index d6781af05c..74524106d2 100644 --- a/system/src/Grav/Common/Flex/Types/Users/UserIndex.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserIndex.php @@ -197,7 +197,7 @@ protected static function onChanges(array $entries, array $added, array $updated /** @var Logger $logger */ $logger = $grav['log']; - $logger->addDebug($message); + $logger->debug($message); /** @var Debugger $debugger */ $debugger = $grav['debugger']; From 173d08243a433dded351ce51007e211dc8a14561 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Thu, 24 Oct 2024 11:58:04 +0100 Subject: [PATCH 45/54] use dev-master of Clockwork to support Monolog2/3 --- composer.json | 2 +- composer.lock | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index c87c774ce7..28a212d767 100644 --- a/composer.json +++ b/composer.json @@ -56,7 +56,7 @@ "donatj/phpuseragentparser": "~1.9", "guzzlehttp/psr7": "^2.7", "filp/whoops": "~2.16", - "itsgoingd/clockwork": "^5.2", + "itsgoingd/clockwork": "dev-master", "maximebf/debugbar": "~1.23", "getgrav/image": "^3.0", "getgrav/cache": "^2.0", diff --git a/composer.lock b/composer.lock index 0f48f20e9a..4d35d201b7 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": "6624f4f63ab14ab12417c415ec58fbc3", + "content-hash": "cfe92c7f71ab9a5954889cf8546d5bc8", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -961,29 +961,31 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.2.2", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "29bc4cedfbe742b419544c30b7b6e15cd9da08ef" + "reference": "bbcefdf1e32540e9a2de5fbd1eacbb77d3f50bda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/29bc4cedfbe742b419544c30b7b6e15cd9da08ef", - "reference": "29bc4cedfbe742b419544c30b7b6e15cd9da08ef", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/bbcefdf1e32540e9a2de5fbd1eacbb77d3f50bda", + "reference": "bbcefdf1e32540e9a2de5fbd1eacbb77d3f50bda", "shasum": "" }, "require": { "ext-json": "*", - "php": ">=5.6" + "php": ">=7.1" }, "suggest": { "ext-pdo": "Needed in order to use a SQL database for metadata storage", "ext-pdo_mysql": "Needed in order to use MySQL for metadata storage", "ext-pdo_postgres": "Needed in order to use Postgres for metadata storage", "ext-pdo_sqlite": "Needed in order to use a SQLite for metadata storage", - "ext-redis": "Needed in order to use Redis for metadata storage" + "ext-redis": "Needed in order to use Redis for metadata storage", + "php-http/discovery": "Vanilla integration - required for the middleware zero-configuration setup" }, + "default-branch": true, "type": "library", "extra": { "laravel": { @@ -1024,7 +1026,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.2.2" + "source": "https://github.com/itsgoingd/clockwork/tree/master" }, "funding": [ { @@ -1032,7 +1034,7 @@ "type": "github" } ], - "time": "2024-04-14T10:49:22+00:00" + "time": "2024-10-22T22:30:34+00:00" }, { "name": "league/climate", @@ -7341,7 +7343,8 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { - "rockettheme/toolbox": 20 + "rockettheme/toolbox": 20, + "itsgoingd/clockwork": 20 }, "prefer-stable": false, "prefer-lowest": false, From b59a3adc80e67625a12afca4d082f4c536993d82 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 25 Oct 2024 15:29:16 +0100 Subject: [PATCH 46/54] avif support via getgrav/image updates --- composer.json | 2 +- composer.lock | 45 +- system/config/mime.yaml | 3972 ++++++++++++++++++++------------------- 3 files changed, 2010 insertions(+), 2009 deletions(-) diff --git a/composer.json b/composer.json index 28a212d767..02950c433f 100644 --- a/composer.json +++ b/composer.json @@ -58,7 +58,7 @@ "filp/whoops": "~2.16", "itsgoingd/clockwork": "dev-master", "maximebf/debugbar": "~1.23", - "getgrav/image": "^3.0", + "getgrav/image": "^4.0", "getgrav/cache": "^2.0", "antoligy/dom-string-iterators": "^1.0", "miljar/php-exif": "^0.6", diff --git a/composer.lock b/composer.lock index 4d35d201b7..5270e5d509 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": "cfe92c7f71ab9a5954889cf8546d5bc8", + "content-hash": "ab43b03988d8dd81b83f75d4ff9b5253", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -734,17 +734,17 @@ }, { "name": "getgrav/cache", - "version": "v2.0.0", + "version": "v2.0.1", "target-dir": "Gregwar/Cache", "source": { "type": "git", "url": "https://github.com/getgrav/Cache.git", - "reference": "56fd63f752779928fcd1074ab7d12f406dde8861" + "reference": "28e2b0072add37b9547daea1da6fcd26d660850b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getgrav/Cache/zipball/56fd63f752779928fcd1074ab7d12f406dde8861", - "reference": "56fd63f752779928fcd1074ab7d12f406dde8861", + "url": "https://api.github.com/repos/getgrav/Cache/zipball/28e2b0072add37b9547daea1da6fcd26d660850b", + "reference": "28e2b0072add37b9547daea1da6fcd26d660850b", "shasum": "" }, "require": { @@ -779,41 +779,40 @@ "system" ], "support": { - "source": "https://github.com/getgrav/Cache/tree/v2.0.0" + "source": "https://github.com/getgrav/Cache/tree/v2.0.1" }, - "time": "2021-04-20T05:48:00+00:00" + "time": "2024-10-25T14:21:29+00:00" }, { "name": "getgrav/image", - "version": "v3.0.1", - "target-dir": "Gregwar/Image", + "version": "v4.0.0", "source": { "type": "git", "url": "https://github.com/getgrav/Image.git", - "reference": "a6a36c24db4b0fd7a7bfd50b86412eaecd5c6370" + "reference": "5d06194ca0588727b25f80d7302253edaf5d8e9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getgrav/Image/zipball/a6a36c24db4b0fd7a7bfd50b86412eaecd5c6370", - "reference": "a6a36c24db4b0fd7a7bfd50b86412eaecd5c6370", + "url": "https://api.github.com/repos/getgrav/Image/zipball/5d06194ca0588727b25f80d7302253edaf5d8e9f", + "reference": "5d06194ca0588727b25f80d7302253edaf5d8e9f", "shasum": "" }, "require": { "ext-gd": "*", "getgrav/cache": "^2.0", - "php": "^5.6 || ^7.0 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "sllh/php-cs-fixer-styleci-bridge": "~1.0", - "symfony/phpunit-bridge": "^2.7.4 || ^3.0" + "phpunit/phpunit": "^9", + "sllh/php-cs-fixer-styleci-bridge": "~1.0" }, "suggest": { "behat/transliterator": "Transliterator provides ability to set non-latin1 pretty names" }, "type": "library", "autoload": { - "psr-0": { - "Gregwar\\Image": "" + "psr-4": { + "Gregwar\\Image\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -839,9 +838,9 @@ "image" ], "support": { - "source": "https://github.com/getgrav/Image/tree/v3.0.1" + "source": "https://github.com/getgrav/Image/tree/v4.0.0" }, - "time": "2023-05-08T21:44:38+00:00" + "time": "2024-10-25T14:14:34+00:00" }, { "name": "guzzlehttp/psr7", @@ -965,12 +964,12 @@ "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "bbcefdf1e32540e9a2de5fbd1eacbb77d3f50bda" + "reference": "00eb90fb2842532e4c3b0ae2eafae290c854b11f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/bbcefdf1e32540e9a2de5fbd1eacbb77d3f50bda", - "reference": "bbcefdf1e32540e9a2de5fbd1eacbb77d3f50bda", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/00eb90fb2842532e4c3b0ae2eafae290c854b11f", + "reference": "00eb90fb2842532e4c3b0ae2eafae290c854b11f", "shasum": "" }, "require": { @@ -1034,7 +1033,7 @@ "type": "github" } ], - "time": "2024-10-22T22:30:34+00:00" + "time": "2024-10-24T20:15:54+00:00" }, { "name": "league/climate", diff --git a/system/config/mime.yaml b/system/config/mime.yaml index 3143c67337..0edb802e43 100644 --- a/system/config/mime.yaml +++ b/system/config/mime.yaml @@ -1,1986 +1,1988 @@ types: - '123': - - application/vnd.lotus-1-2-3 - wof: - - application/font-woff - php: - - application/php - - application/x-httpd-php - - application/x-httpd-php-source - - application/x-php - - text/php - - text/x-php - otf: - - application/x-font-otf - - font/otf - ttf: - - application/x-font-ttf - - font/ttf - ttc: - - application/x-font-ttf - - font/collection - zip: - - application/x-gzip - - application/zip - - application/x-zip-compressed - amr: - - audio/amr - mp3: - - audio/mpeg - mpga: - - audio/mpeg - mp2: - - audio/mpeg - mp2a: - - audio/mpeg - m2a: - - audio/mpeg - m3a: - - audio/mpeg - jpg: - - image/jpeg - jpeg: - - image/jpeg - jpe: - - image/jpeg - bmp: - - image/x-ms-bmp - - image/bmp - ez: - - application/andrew-inset - aw: - - application/applixware - atom: - - application/atom+xml - atomcat: - - application/atomcat+xml - atomsvc: - - application/atomsvc+xml - ccxml: - - application/ccxml+xml - cdmia: - - application/cdmi-capability - cdmic: - - application/cdmi-container - cdmid: - - application/cdmi-domain - cdmio: - - application/cdmi-object - cdmiq: - - application/cdmi-queue - cu: - - application/cu-seeme - davmount: - - application/davmount+xml - dbk: - - application/docbook+xml - dssc: - - application/dssc+der - xdssc: - - application/dssc+xml - ecma: - - application/ecmascript - emma: - - application/emma+xml - epub: - - application/epub+zip - exi: - - application/exi - pfr: - - application/font-tdpfr - gml: - - application/gml+xml - gpx: - - application/gpx+xml - gxf: - - application/gxf - stk: - - application/hyperstudio - ink: - - application/inkml+xml - inkml: - - application/inkml+xml - ipfix: - - application/ipfix - jar: - - application/java-archive - ser: - - application/java-serialized-object - class: - - application/java-vm - js: - - application/javascript - json: - - application/json - jsonml: - - application/jsonml+json - lostxml: - - application/lost+xml - hqx: - - application/mac-binhex40 - cpt: - - application/mac-compactpro - mads: - - application/mads+xml - mrc: - - application/marc - mrcx: - - application/marcxml+xml - ma: - - application/mathematica - nb: - - application/mathematica - mb: - - application/mathematica - mathml: - - application/mathml+xml - mbox: - - application/mbox - mscml: - - application/mediaservercontrol+xml - metalink: - - application/metalink+xml - meta4: - - application/metalink4+xml - mets: - - application/mets+xml - mods: - - application/mods+xml - m21: - - application/mp21 - mp21: - - application/mp21 - mp4s: - - application/mp4 - doc: - - application/msword - dot: - - application/msword - mxf: - - application/mxf - bin: - - application/octet-stream - dms: - - application/octet-stream - lrf: - - application/octet-stream - mar: - - application/octet-stream - so: - - application/octet-stream - dist: - - application/octet-stream - distz: - - application/octet-stream - pkg: - - application/octet-stream - bpk: - - application/octet-stream - dump: - - application/octet-stream - elc: - - application/octet-stream - deploy: - - application/octet-stream - oda: - - application/oda - opf: - - application/oebps-package+xml - ogx: - - application/ogg - omdoc: - - application/omdoc+xml - onetoc: - - application/onenote - onetoc2: - - application/onenote - onetmp: - - application/onenote - onepkg: - - application/onenote - oxps: - - application/oxps - xer: - - application/patch-ops-error+xml - pdf: - - application/pdf - pgp: - - application/pgp-encrypted - asc: - - application/pgp-signature - sig: - - application/pgp-signature - prf: - - application/pics-rules - p10: - - application/pkcs10 - p7m: - - application/pkcs7-mime - p7c: - - application/pkcs7-mime - p7s: - - application/pkcs7-signature - p8: - - application/pkcs8 - ac: - - application/pkix-attr-cert - cer: - - application/pkix-cert - crl: - - application/pkix-crl - pkipath: - - application/pkix-pkipath - pki: - - application/pkixcmp - pls: - - application/pls+xml - ai: - - application/postscript - eps: - - application/postscript - ps: - - application/postscript - cww: - - application/prs.cww - pskcxml: - - application/pskc+xml - rdf: - - application/rdf+xml - rif: - - application/reginfo+xml - rnc: - - application/relax-ng-compact-syntax - rl: - - application/resource-lists+xml - rld: - - application/resource-lists-diff+xml - rs: - - application/rls-services+xml - gbr: - - application/rpki-ghostbusters - mft: - - application/rpki-manifest - roa: - - application/rpki-roa - rsd: - - application/rsd+xml - rss: - - application/rss+xml - rtf: - - application/rtf - sbml: - - application/sbml+xml - scq: - - application/scvp-cv-request - scs: - - application/scvp-cv-response - spq: - - application/scvp-vp-request - spp: - - application/scvp-vp-response - sdp: - - application/sdp - setpay: - - application/set-payment-initiation - setreg: - - application/set-registration-initiation - shf: - - application/shf+xml - smi: - - application/smil+xml - smil: - - application/smil+xml - rq: - - application/sparql-query - srx: - - application/sparql-results+xml - gram: - - application/srgs - grxml: - - application/srgs+xml - sru: - - application/sru+xml - ssdl: - - application/ssdl+xml - ssml: - - application/ssml+xml - tei: - - application/tei+xml - teicorpus: - - application/tei+xml - tfi: - - application/thraud+xml - tsd: - - application/timestamped-data - plb: - - application/vnd.3gpp.pic-bw-large - psb: - - application/vnd.3gpp.pic-bw-small - pvb: - - application/vnd.3gpp.pic-bw-var - tcap: - - application/vnd.3gpp2.tcap - pwn: - - application/vnd.3m.post-it-notes - aso: - - application/vnd.accpac.simply.aso - imp: - - application/vnd.accpac.simply.imp - acu: - - application/vnd.acucobol - atc: - - application/vnd.acucorp - acutc: - - application/vnd.acucorp - air: - - application/vnd.adobe.air-application-installer-package+zip - fcdt: - - application/vnd.adobe.formscentral.fcdt - fxp: - - application/vnd.adobe.fxp - fxpl: - - application/vnd.adobe.fxp - xdp: - - application/vnd.adobe.xdp+xml - xfdf: - - application/vnd.adobe.xfdf - ahead: - - application/vnd.ahead.space - azf: - - application/vnd.airzip.filesecure.azf - azs: - - application/vnd.airzip.filesecure.azs - azw: - - application/vnd.amazon.ebook - acc: - - application/vnd.americandynamics.acc - ami: - - application/vnd.amiga.ami - apk: - - application/vnd.android.package-archive - cii: - - application/vnd.anser-web-certificate-issue-initiation - fti: - - application/vnd.anser-web-funds-transfer-initiation - atx: - - application/vnd.antix.game-component - mpkg: - - application/vnd.apple.installer+xml - m3u8: - - application/vnd.apple.mpegurl - swi: - - application/vnd.aristanetworks.swi - iota: - - application/vnd.astraea-software.iota - aep: - - application/vnd.audiograph - mpm: - - application/vnd.blueice.multipass - bmi: - - application/vnd.bmi - rep: - - application/vnd.businessobjects - cdxml: - - application/vnd.chemdraw+xml - mmd: - - application/vnd.chipnuts.karaoke-mmd - cdy: - - application/vnd.cinderella - cla: - - application/vnd.claymore - rp9: - - application/vnd.cloanto.rp9 - c4g: - - application/vnd.clonk.c4group - c4d: - - application/vnd.clonk.c4group - c4f: - - application/vnd.clonk.c4group - c4p: - - application/vnd.clonk.c4group - c4u: - - application/vnd.clonk.c4group - c11amc: - - application/vnd.cluetrust.cartomobile-config - c11amz: - - application/vnd.cluetrust.cartomobile-config-pkg - csp: - - application/vnd.commonspace - cdbcmsg: - - application/vnd.contact.cmsg - cmc: - - application/vnd.cosmocaller - clkx: - - application/vnd.crick.clicker - clkk: - - application/vnd.crick.clicker.keyboard - clkp: - - application/vnd.crick.clicker.palette - clkt: - - application/vnd.crick.clicker.template - clkw: - - application/vnd.crick.clicker.wordbank - wbs: - - application/vnd.criticaltools.wbs+xml - pml: - - application/vnd.ctc-posml - ppd: - - application/vnd.cups-ppd - car: - - application/vnd.curl.car - pcurl: - - application/vnd.curl.pcurl - dart: - - application/vnd.dart - rdz: - - application/vnd.data-vision.rdz - uvf: - - application/vnd.dece.data - uvvf: - - application/vnd.dece.data - uvd: - - application/vnd.dece.data - uvvd: - - application/vnd.dece.data - uvt: - - application/vnd.dece.ttml+xml - uvvt: - - application/vnd.dece.ttml+xml - uvx: - - application/vnd.dece.unspecified - uvvx: - - application/vnd.dece.unspecified - uvz: - - application/vnd.dece.zip - uvvz: - - application/vnd.dece.zip - fe_launch: - - application/vnd.denovo.fcselayout-link - dna: - - application/vnd.dna - mlp: - - application/vnd.dolby.mlp - dpg: - - application/vnd.dpgraph - dfac: - - application/vnd.dreamfactory - kpxx: - - application/vnd.ds-keypoint - ait: - - application/vnd.dvb.ait - svc: - - application/vnd.dvb.service - geo: - - application/vnd.dynageo - mag: - - application/vnd.ecowin.chart - nml: - - application/vnd.enliven - esf: - - application/vnd.epson.esf - msf: - - application/vnd.epson.msf - qam: - - application/vnd.epson.quickanime - slt: - - application/vnd.epson.salt - ssf: - - application/vnd.epson.ssf - es3: - - application/vnd.eszigno3+xml - et3: - - application/vnd.eszigno3+xml - ez2: - - application/vnd.ezpix-album - ez3: - - application/vnd.ezpix-package - fdf: - - application/vnd.fdf - mseed: - - application/vnd.fdsn.mseed - seed: - - application/vnd.fdsn.seed - dataless: - - application/vnd.fdsn.seed - gph: - - application/vnd.flographit - ftc: - - application/vnd.fluxtime.clip - fm: - - application/vnd.framemaker - frame: - - application/vnd.framemaker - maker: - - application/vnd.framemaker - book: - - application/vnd.framemaker - fnc: - - application/vnd.frogans.fnc - ltf: - - application/vnd.frogans.ltf - fsc: - - application/vnd.fsc.weblaunch - oas: - - application/vnd.fujitsu.oasys - oa2: - - application/vnd.fujitsu.oasys2 - oa3: - - application/vnd.fujitsu.oasys3 - fg5: - - application/vnd.fujitsu.oasysgp - bh2: - - application/vnd.fujitsu.oasysprs - ddd: - - application/vnd.fujixerox.ddd - xdw: - - application/vnd.fujixerox.docuworks - xbd: - - application/vnd.fujixerox.docuworks.binder - fzs: - - application/vnd.fuzzysheet - txd: - - application/vnd.genomatix.tuxedo - ggb: - - application/vnd.geogebra.file - ggt: - - application/vnd.geogebra.tool - gex: - - application/vnd.geometry-explorer - gre: - - application/vnd.geometry-explorer - gxt: - - application/vnd.geonext - g2w: - - application/vnd.geoplan - g3w: - - application/vnd.geospace - gmx: - - application/vnd.gmx - kml: - - application/vnd.google-earth.kml+xml - kmz: - - application/vnd.google-earth.kmz - gqf: - - application/vnd.grafeq - gqs: - - application/vnd.grafeq - gac: - - application/vnd.groove-account - ghf: - - application/vnd.groove-help - gim: - - application/vnd.groove-identity-message - grv: - - application/vnd.groove-injector - gtm: - - application/vnd.groove-tool-message - tpl: - - application/vnd.groove-tool-template - vcg: - - application/vnd.groove-vcard - hal: - - application/vnd.hal+xml - zmm: - - application/vnd.handheld-entertainment+xml - hbci: - - application/vnd.hbci - les: - - application/vnd.hhe.lesson-player - hpgl: - - application/vnd.hp-hpgl - hpid: - - application/vnd.hp-hpid - hps: - - application/vnd.hp-hps - jlt: - - application/vnd.hp-jlyt - pcl: - - application/vnd.hp-pcl - pclxl: - - application/vnd.hp-pclxl - sfd-hdstx: - - application/vnd.hydrostatix.sof-data - mpy: - - application/vnd.ibm.minipay - afp: - - application/vnd.ibm.modcap - listafp: - - application/vnd.ibm.modcap - list3820: - - application/vnd.ibm.modcap - irm: - - application/vnd.ibm.rights-management - sc: - - application/vnd.ibm.secure-container - icc: - - application/vnd.iccprofile - icm: - - application/vnd.iccprofile - igl: - - application/vnd.igloader - ivp: - - application/vnd.immervision-ivp - ivu: - - application/vnd.immervision-ivu - igm: - - application/vnd.insors.igm - xpw: - - application/vnd.intercon.formnet - xpx: - - application/vnd.intercon.formnet - i2g: - - application/vnd.intergeo - qbo: - - application/vnd.intu.qbo - qfx: - - application/vnd.intu.qfx - rcprofile: - - application/vnd.ipunplugged.rcprofile - irp: - - application/vnd.irepository.package+xml - xpr: - - application/vnd.is-xpr - fcs: - - application/vnd.isac.fcs - jam: - - application/vnd.jam - rms: - - application/vnd.jcp.javame.midlet-rms - jisp: - - application/vnd.jisp - joda: - - application/vnd.joost.joda-archive - ktz: - - application/vnd.kahootz - ktr: - - application/vnd.kahootz - karbon: - - application/vnd.kde.karbon - chrt: - - application/vnd.kde.kchart - kfo: - - application/vnd.kde.kformula - flw: - - application/vnd.kde.kivio - kon: - - application/vnd.kde.kontour - kpr: - - application/vnd.kde.kpresenter - kpt: - - application/vnd.kde.kpresenter - ksp: - - application/vnd.kde.kspread - kwd: - - application/vnd.kde.kword - kwt: - - application/vnd.kde.kword - htke: - - application/vnd.kenameaapp - kia: - - application/vnd.kidspiration - kne: - - application/vnd.kinar - knp: - - application/vnd.kinar - skp: - - application/vnd.koan - skd: - - application/vnd.koan - skt: - - application/vnd.koan - skm: - - application/vnd.koan - sse: - - application/vnd.kodak-descriptor - lasxml: - - application/vnd.las.las+xml - lbd: - - application/vnd.llamagraphics.life-balance.desktop - lbe: - - application/vnd.llamagraphics.life-balance.exchange+xml - apr: - - application/vnd.lotus-approach - pre: - - application/vnd.lotus-freelance - nsf: - - application/vnd.lotus-notes - org: - - application/vnd.lotus-organizer - scm: - - application/vnd.lotus-screencam - lwp: - - application/vnd.lotus-wordpro - portpkg: - - application/vnd.macports.portpkg - mcd: - - application/vnd.mcd - mc1: - - application/vnd.medcalcdata - cdkey: - - application/vnd.mediastation.cdkey - mwf: - - application/vnd.mfer - mfm: - - application/vnd.mfmp - flo: - - application/vnd.micrografx.flo - igx: - - application/vnd.micrografx.igx - mif: - - application/vnd.mif - daf: - - application/vnd.mobius.daf - dis: - - application/vnd.mobius.dis - mbk: - - application/vnd.mobius.mbk - mqy: - - application/vnd.mobius.mqy - msl: - - application/vnd.mobius.msl - plc: - - application/vnd.mobius.plc - txf: - - application/vnd.mobius.txf - mpn: - - application/vnd.mophun.application - mpc: - - application/vnd.mophun.certificate - xul: - - application/vnd.mozilla.xul+xml - cil: - - application/vnd.ms-artgalry - cab: - - application/vnd.ms-cab-compressed - xls: - - application/vnd.ms-excel - xlm: - - application/vnd.ms-excel - xla: - - application/vnd.ms-excel - xlc: - - application/vnd.ms-excel - xlt: - - application/vnd.ms-excel - xlw: - - application/vnd.ms-excel - xlam: - - application/vnd.ms-excel.addin.macroenabled.12 - xlsb: - - application/vnd.ms-excel.sheet.binary.macroenabled.12 - xlsm: - - application/vnd.ms-excel.sheet.macroenabled.12 - xltm: - - application/vnd.ms-excel.template.macroenabled.12 - eot: - - application/vnd.ms-fontobject - chm: - - application/vnd.ms-htmlhelp - ims: - - application/vnd.ms-ims - lrm: - - application/vnd.ms-lrm - thmx: - - application/vnd.ms-officetheme - cat: - - application/vnd.ms-pki.seccat - stl: - - application/vnd.ms-pki.stl - ppt: - - application/vnd.ms-powerpoint - pps: - - application/vnd.ms-powerpoint - pot: - - application/vnd.ms-powerpoint - ppam: - - application/vnd.ms-powerpoint.addin.macroenabled.12 - pptm: - - application/vnd.ms-powerpoint.presentation.macroenabled.12 - sldm: - - application/vnd.ms-powerpoint.slide.macroenabled.12 - ppsm: - - application/vnd.ms-powerpoint.slideshow.macroenabled.12 - potm: - - application/vnd.ms-powerpoint.template.macroenabled.12 - mpp: - - application/vnd.ms-project - mpt: - - application/vnd.ms-project - docm: - - application/vnd.ms-word.document.macroenabled.12 - dotm: - - application/vnd.ms-word.template.macroenabled.12 - wps: - - application/vnd.ms-works - wks: - - application/vnd.ms-works - wcm: - - application/vnd.ms-works - wdb: - - application/vnd.ms-works - wpl: - - application/vnd.ms-wpl - xps: - - application/vnd.ms-xpsdocument - mseq: - - application/vnd.mseq - mus: - - application/vnd.musician - msty: - - application/vnd.muvee.style - taglet: - - application/vnd.mynfc - nlu: - - application/vnd.neurolanguage.nlu - ntf: - - application/vnd.nitf - nitf: - - application/vnd.nitf - nnd: - - application/vnd.noblenet-directory - nns: - - application/vnd.noblenet-sealer - nnw: - - application/vnd.noblenet-web - ngdat: - - application/vnd.nokia.n-gage.data - n-gage: - - application/vnd.nokia.n-gage.symbian.install - rpst: - - application/vnd.nokia.radio-preset - rpss: - - application/vnd.nokia.radio-presets - edm: - - application/vnd.novadigm.edm - edx: - - application/vnd.novadigm.edx - ext: - - application/vnd.novadigm.ext - odc: - - application/vnd.oasis.opendocument.chart - otc: - - application/vnd.oasis.opendocument.chart-template - odb: - - application/vnd.oasis.opendocument.database - odf: - - application/vnd.oasis.opendocument.formula - odft: - - application/vnd.oasis.opendocument.formula-template - odg: - - application/vnd.oasis.opendocument.graphics - otg: - - application/vnd.oasis.opendocument.graphics-template - odi: - - application/vnd.oasis.opendocument.image - oti: - - application/vnd.oasis.opendocument.image-template - odp: - - application/vnd.oasis.opendocument.presentation - otp: - - application/vnd.oasis.opendocument.presentation-template - ods: - - application/vnd.oasis.opendocument.spreadsheet - ots: - - application/vnd.oasis.opendocument.spreadsheet-template - odt: - - application/vnd.oasis.opendocument.text - odm: - - application/vnd.oasis.opendocument.text-master - ott: - - application/vnd.oasis.opendocument.text-template - oth: - - application/vnd.oasis.opendocument.text-web - xo: - - application/vnd.olpc-sugar - dd2: - - application/vnd.oma.dd2+xml - oxt: - - application/vnd.openofficeorg.extension - pptx: - - application/vnd.openxmlformats-officedocument.presentationml.presentation - sldx: - - application/vnd.openxmlformats-officedocument.presentationml.slide - ppsx: - - application/vnd.openxmlformats-officedocument.presentationml.slideshow - potx: - - application/vnd.openxmlformats-officedocument.presentationml.template - xlsx: - - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - xltx: - - application/vnd.openxmlformats-officedocument.spreadsheetml.template - docx: - - application/vnd.openxmlformats-officedocument.wordprocessingml.document - dotx: - - application/vnd.openxmlformats-officedocument.wordprocessingml.template - mgp: - - application/vnd.osgeo.mapguide.package - dp: - - application/vnd.osgi.dp - esa: - - application/vnd.osgi.subsystem - pdb: - - application/vnd.palm - pqa: - - application/vnd.palm - oprc: - - application/vnd.palm - paw: - - application/vnd.pawaafile - str: - - application/vnd.pg.format - ei6: - - application/vnd.pg.osasli - efif: - - application/vnd.picsel - wg: - - application/vnd.pmi.widget - plf: - - application/vnd.pocketlearn - pbd: - - application/vnd.powerbuilder6 - box: - - application/vnd.previewsystems.box - mgz: - - application/vnd.proteus.magazine - qps: - - application/vnd.publishare-delta-tree - ptid: - - application/vnd.pvi.ptid1 - qxd: - - application/vnd.quark.quarkxpress - qxt: - - application/vnd.quark.quarkxpress - qwd: - - application/vnd.quark.quarkxpress - qwt: - - application/vnd.quark.quarkxpress - qxl: - - application/vnd.quark.quarkxpress - qxb: - - application/vnd.quark.quarkxpress - bed: - - application/vnd.realvnc.bed - mxl: - - application/vnd.recordare.musicxml - musicxml: - - application/vnd.recordare.musicxml+xml - cryptonote: - - application/vnd.rig.cryptonote - cod: - - application/vnd.rim.cod - rm: - - application/vnd.rn-realmedia - rmvb: - - application/vnd.rn-realmedia-vbr - link66: - - application/vnd.route66.link66+xml - st: - - application/vnd.sailingtracker.track - see: - - application/vnd.seemail - sema: - - application/vnd.sema - semd: - - application/vnd.semd - semf: - - application/vnd.semf - ifm: - - application/vnd.shana.informed.formdata - itp: - - application/vnd.shana.informed.formtemplate - iif: - - application/vnd.shana.informed.interchange - ipk: - - application/vnd.shana.informed.package - twd: - - application/vnd.simtech-mindmapper - twds: - - application/vnd.simtech-mindmapper - mmf: - - application/vnd.smaf - teacher: - - application/vnd.smart.teacher - sdkm: - - application/vnd.solent.sdkm+xml - sdkd: - - application/vnd.solent.sdkm+xml - dxp: - - application/vnd.spotfire.dxp - sfs: - - application/vnd.spotfire.sfs - sdc: - - application/vnd.stardivision.calc - sda: - - application/vnd.stardivision.draw - sdd: - - application/vnd.stardivision.impress - smf: - - application/vnd.stardivision.math - sdw: - - application/vnd.stardivision.writer - vor: - - application/vnd.stardivision.writer - sgl: - - application/vnd.stardivision.writer-global - smzip: - - application/vnd.stepmania.package - sm: - - application/vnd.stepmania.stepchart - sxc: - - application/vnd.sun.xml.calc - stc: - - application/vnd.sun.xml.calc.template - sxd: - - application/vnd.sun.xml.draw - std: - - application/vnd.sun.xml.draw.template - sxi: - - application/vnd.sun.xml.impress - sti: - - application/vnd.sun.xml.impress.template - sxm: - - application/vnd.sun.xml.math - sxw: - - application/vnd.sun.xml.writer - sxg: - - application/vnd.sun.xml.writer.global - stw: - - application/vnd.sun.xml.writer.template - sus: - - application/vnd.sus-calendar - susp: - - application/vnd.sus-calendar - svd: - - application/vnd.svd - sis: - - application/vnd.symbian.install - sisx: - - application/vnd.symbian.install - xsm: - - application/vnd.syncml+xml - bdm: - - application/vnd.syncml.dm+wbxml - xdm: - - application/vnd.syncml.dm+xml - tao: - - application/vnd.tao.intent-module-archive - pcap: - - application/vnd.tcpdump.pcap - cap: - - application/vnd.tcpdump.pcap - dmp: - - application/vnd.tcpdump.pcap - tmo: - - application/vnd.tmobile-livetv - tpt: - - application/vnd.trid.tpt - mxs: - - application/vnd.triscape.mxs - tra: - - application/vnd.trueapp - ufd: - - application/vnd.ufdl - ufdl: - - application/vnd.ufdl - utz: - - application/vnd.uiq.theme - umj: - - application/vnd.umajin - unityweb: - - application/vnd.unity - uoml: - - application/vnd.uoml+xml - vcx: - - application/vnd.vcx - vsd: - - application/vnd.visio - vst: - - application/vnd.visio - vss: - - application/vnd.visio - vsw: - - application/vnd.visio - vis: - - application/vnd.visionary - vsf: - - application/vnd.vsf - wbxml: - - application/vnd.wap.wbxml - wmlc: - - application/vnd.wap.wmlc - wmlsc: - - application/vnd.wap.wmlscriptc - wtb: - - application/vnd.webturbo - nbp: - - application/vnd.wolfram.player - wpd: - - application/vnd.wordperfect - wqd: - - application/vnd.wqd - stf: - - application/vnd.wt.stf - xar: - - application/vnd.xara - xfdl: - - application/vnd.xfdl - hvd: - - application/vnd.yamaha.hv-dic - hvs: - - application/vnd.yamaha.hv-script - hvp: - - application/vnd.yamaha.hv-voice - osf: - - application/vnd.yamaha.openscoreformat - osfpvg: - - application/vnd.yamaha.openscoreformat.osfpvg+xml - saf: - - application/vnd.yamaha.smaf-audio - spf: - - application/vnd.yamaha.smaf-phrase - cmp: - - application/vnd.yellowriver-custom-menu - zir: - - application/vnd.zul - zirz: - - application/vnd.zul - zaz: - - application/vnd.zzazz.deck+xml - vxml: - - application/voicexml+xml - wgt: - - application/widget - hlp: - - application/winhlp - wsdl: - - application/wsdl+xml - wspolicy: - - application/wspolicy+xml - 7z: - - application/x-7z-compressed - abw: - - application/x-abiword - ace: - - application/x-ace-compressed - dmg: - - application/x-apple-diskimage - aab: - - application/x-authorware-bin - x32: - - application/x-authorware-bin - u32: - - application/x-authorware-bin - vox: - - application/x-authorware-bin - aam: - - application/x-authorware-map - aas: - - application/x-authorware-seg - bcpio: - - application/x-bcpio - torrent: - - application/x-bittorrent - blb: - - application/x-blorb - blorb: - - application/x-blorb - bz: - - application/x-bzip - bz2: - - application/x-bzip2 - boz: - - application/x-bzip2 - cbr: - - application/x-cbr - cba: - - application/x-cbr - cbt: - - application/x-cbr - cbz: - - application/x-cbr - cb7: - - application/x-cbr - vcd: - - application/x-cdlink - cfs: - - application/x-cfs-compressed - chat: - - application/x-chat - pgn: - - application/x-chess-pgn - nsc: - - application/x-conference - cpio: - - application/x-cpio - csh: - - application/x-csh - deb: - - application/x-debian-package - udeb: - - application/x-debian-package - dgc: - - application/x-dgc-compressed - dir: - - application/x-director - dcr: - - application/x-director - dxr: - - application/x-director - cst: - - application/x-director - cct: - - application/x-director - cxt: - - application/x-director - w3d: - - application/x-director - fgd: - - application/x-director - swa: - - application/x-director - wad: - - application/x-doom - ncx: - - application/x-dtbncx+xml - dtb: - - application/x-dtbook+xml - res: - - application/x-dtbresource+xml - dvi: - - application/x-dvi - evy: - - application/x-envoy - eva: - - application/x-eva - bdf: - - application/x-font-bdf - gsf: - - application/x-font-ghostscript - psf: - - application/x-font-linux-psf - pcf: - - application/x-font-pcf - snf: - - application/x-font-snf - pfa: - - application/x-font-type1 - pfb: - - application/x-font-type1 - pfm: - - application/x-font-type1 - afm: - - application/x-font-type1 - arc: - - application/x-freearc - spl: - - application/x-futuresplash - gca: - - application/x-gca-compressed - ulx: - - application/x-glulx - gnumeric: - - application/x-gnumeric - gramps: - - application/x-gramps-xml - gtar: - - application/x-gtar - hdf: - - application/x-hdf - install: - - application/x-install-instructions - iso: - - application/x-iso9660-image - jnlp: - - application/x-java-jnlp-file - latex: - - application/x-latex - lzh: - - application/x-lzh-compressed - lha: - - application/x-lzh-compressed - mie: - - application/x-mie - prc: - - application/x-mobipocket-ebook - mobi: - - application/x-mobipocket-ebook - application: - - application/x-ms-application - lnk: - - application/x-ms-shortcut - wmd: - - application/x-ms-wmd - wmz: - - application/x-ms-wmz - - application/x-msmetafile - xbap: - - application/x-ms-xbap - mdb: - - application/x-msaccess - obd: - - application/x-msbinder - crd: - - application/x-mscardfile - clp: - - application/x-msclip - exe: - - application/x-msdownload - dll: - - application/x-msdownload - com: - - application/x-msdownload - bat: - - application/x-msdownload - msi: - - application/x-msdownload - mvb: - - application/x-msmediaview - m13: - - application/x-msmediaview - m14: - - application/x-msmediaview - wmf: - - application/x-msmetafile - emf: - - application/x-msmetafile - emz: - - application/x-msmetafile - mny: - - application/x-msmoney - pub: - - application/x-mspublisher - scd: - - application/x-msschedule - trm: - - application/x-msterminal - wri: - - application/x-mswrite - nc: - - application/x-netcdf - cdf: - - application/x-netcdf - nzb: - - application/x-nzb - p12: - - application/x-pkcs12 - pfx: - - application/x-pkcs12 - p7b: - - application/x-pkcs7-certificates - spc: - - application/x-pkcs7-certificates - p7r: - - application/x-pkcs7-certreqresp - rar: - - application/x-rar-compressed - ris: - - application/x-research-info-systems - sh: - - application/x-sh - shar: - - application/x-shar - swf: - - application/x-shockwave-flash - xap: - - application/x-silverlight-app - sql: - - application/x-sql - sit: - - application/x-stuffit - sitx: - - application/x-stuffitx - srt: - - application/x-subrip - sv4cpio: - - application/x-sv4cpio - sv4crc: - - application/x-sv4crc - t3: - - application/x-t3vm-image - gam: - - application/x-tads - tar: - - application/x-tar - tcl: - - application/x-tcl - tex: - - application/x-tex - tfm: - - application/x-tex-tfm - texinfo: - - application/x-texinfo - texi: - - application/x-texinfo - obj: - - application/x-tgif - ustar: - - application/x-ustar - src: - - application/x-wais-source - der: - - application/x-x509-ca-cert - crt: - - application/x-x509-ca-cert - fig: - - application/x-xfig - xlf: - - application/x-xliff+xml - xpi: - - application/x-xpinstall - xz: - - application/x-xz - z1: - - application/x-zmachine - z2: - - application/x-zmachine - z3: - - application/x-zmachine - z4: - - application/x-zmachine - z5: - - application/x-zmachine - z6: - - application/x-zmachine - z7: - - application/x-zmachine - z8: - - application/x-zmachine - xaml: - - application/xaml+xml - xdf: - - application/xcap-diff+xml - xenc: - - application/xenc+xml - xhtml: - - application/xhtml+xml - xht: - - application/xhtml+xml - xml: - - application/xml - xsl: - - application/xml - dtd: - - application/xml-dtd - xop: - - application/xop+xml - xpl: - - application/xproc+xml - xslt: - - application/xslt+xml - xspf: - - application/xspf+xml - mxml: - - application/xv+xml - xhvml: - - application/xv+xml - xvml: - - application/xv+xml - xvm: - - application/xv+xml - yang: - - application/yang - yin: - - application/yin+xml - adp: - - audio/adpcm - au: - - audio/basic - snd: - - audio/basic - mid: - - audio/midi - midi: - - audio/midi - kar: - - audio/midi - rmi: - - audio/midi - m4a: - - audio/mp4 - mp4a: - - audio/mp4 - oga: - - audio/ogg - ogg: - - audio/ogg - spx: - - audio/ogg - s3m: - - audio/s3m - sil: - - audio/silk - uva: - - audio/vnd.dece.audio - uvva: - - audio/vnd.dece.audio - eol: - - audio/vnd.digital-winds - dra: - - audio/vnd.dra - dts: - - audio/vnd.dts - dtshd: - - audio/vnd.dts.hd - lvp: - - audio/vnd.lucent.voice - pya: - - audio/vnd.ms-playready.media.pya - ecelp4800: - - audio/vnd.nuera.ecelp4800 - ecelp7470: - - audio/vnd.nuera.ecelp7470 - ecelp9600: - - audio/vnd.nuera.ecelp9600 - rip: - - audio/vnd.rip - weba: - - audio/webm - aac: - - audio/x-aac - aif: - - audio/x-aiff - aiff: - - audio/x-aiff - aifc: - - audio/x-aiff - caf: - - audio/x-caf - flac: - - audio/x-flac - mka: - - audio/x-matroska - m3u: - - audio/x-mpegurl - wax: - - audio/x-ms-wax - wma: - - audio/x-ms-wma - ram: - - audio/x-pn-realaudio - ra: - - audio/x-pn-realaudio - rmp: - - audio/x-pn-realaudio-plugin - wav: - - audio/x-wav - xm: - - audio/xm - cdx: - - chemical/x-cdx - cif: - - chemical/x-cif - cmdf: - - chemical/x-cmdf - cml: - - chemical/x-cml - csml: - - chemical/x-csml - xyz: - - chemical/x-xyz - woff: - - font/woff - woff2: - - font/woff2 - cgm: - - image/cgm - g3: - - image/g3fax - gif: - - image/gif - ief: - - image/ief - ktx: - - image/ktx - png: - - image/png - btif: - - image/prs.btif - sgi: - - image/sgi - svg: - - image/svg+xml - svgz: - - image/svg+xml - tiff: - - image/tiff - tif: - - image/tiff - psd: - - image/vnd.adobe.photoshop - uvi: - - image/vnd.dece.graphic - uvvi: - - image/vnd.dece.graphic - uvg: - - image/vnd.dece.graphic - uvvg: - - image/vnd.dece.graphic - djvu: - - image/vnd.djvu - djv: - - image/vnd.djvu - sub: - - image/vnd.dvb.subtitle - - text/vnd.dvb.subtitle - dwg: - - image/vnd.dwg - dxf: - - image/vnd.dxf - fbs: - - image/vnd.fastbidsheet - fpx: - - image/vnd.fpx - fst: - - image/vnd.fst - mmr: - - image/vnd.fujixerox.edmics-mmr - rlc: - - image/vnd.fujixerox.edmics-rlc - mdi: - - image/vnd.ms-modi - wdp: - - image/vnd.ms-photo - npx: - - image/vnd.net-fpx - wbmp: - - image/vnd.wap.wbmp - xif: - - image/vnd.xiff - webp: - - image/webp - 3ds: - - image/x-3ds - ras: - - image/x-cmu-raster - cmx: - - image/x-cmx - fh: - - image/x-freehand - fhc: - - image/x-freehand - fh4: - - image/x-freehand - fh5: - - image/x-freehand - fh7: - - image/x-freehand - ico: - - image/x-icon - sid: - - image/x-mrsid-image - pcx: - - image/x-pcx - pic: - - image/x-pict - pct: - - image/x-pict - pnm: - - image/x-portable-anymap - pbm: - - image/x-portable-bitmap - pgm: - - image/x-portable-graymap - ppm: - - image/x-portable-pixmap - rgb: - - image/x-rgb - tga: - - image/x-tga - xbm: - - image/x-xbitmap - xpm: - - image/x-xpixmap - xwd: - - image/x-xwindowdump - eml: - - message/rfc822 - mime: - - message/rfc822 - igs: - - model/iges - iges: - - model/iges - msh: - - model/mesh - mesh: - - model/mesh - silo: - - model/mesh - dae: - - model/vnd.collada+xml - dwf: - - model/vnd.dwf - gdl: - - model/vnd.gdl - gtw: - - model/vnd.gtw - mts: - - model/vnd.mts - vtu: - - model/vnd.vtu - wrl: - - model/vrml - vrml: - - model/vrml - x3db: - - model/x3d+binary - x3dbz: - - model/x3d+binary - x3dv: - - model/x3d+vrml - x3dvz: - - model/x3d+vrml - x3d: - - model/x3d+xml - x3dz: - - model/x3d+xml - appcache: - - text/cache-manifest - ics: - - text/calendar - ifb: - - text/calendar - css: - - text/css - csv: - - text/csv - html: - - text/html - htm: - - text/html - n3: - - text/n3 - txt: - - text/plain - text: - - text/plain - conf: - - text/plain - def: - - text/plain - list: - - text/plain - log: - - text/plain - in: - - text/plain - dsc: - - text/prs.lines.tag - rtx: - - text/richtext - sgml: - - text/sgml - sgm: - - text/sgml - tsv: - - text/tab-separated-values - t: - - text/troff - tr: - - text/troff - roff: - - text/troff - man: - - text/troff - me: - - text/troff - ms: - - text/troff - ttl: - - text/turtle - uri: - - text/uri-list - uris: - - text/uri-list - urls: - - text/uri-list - vcard: - - text/vcard - curl: - - text/vnd.curl - dcurl: - - text/vnd.curl.dcurl - mcurl: - - text/vnd.curl.mcurl - scurl: - - text/vnd.curl.scurl - fly: - - text/vnd.fly - flx: - - text/vnd.fmi.flexstor - gv: - - text/vnd.graphviz - 3dml: - - text/vnd.in3d.3dml - spot: - - text/vnd.in3d.spot - jad: - - text/vnd.sun.j2me.app-descriptor - wml: - - text/vnd.wap.wml - wmls: - - text/vnd.wap.wmlscript - s: - - text/x-asm - asm: - - text/x-asm - c: - - text/x-c - cc: - - text/x-c - cxx: - - text/x-c - cpp: - - text/x-c - h: - - text/x-c - hh: - - text/x-c - dic: - - text/x-c - f: - - text/x-fortran - for: - - text/x-fortran - f77: - - text/x-fortran - f90: - - text/x-fortran - java: - - text/x-java-source - nfo: - - text/x-nfo - opml: - - text/x-opml - p: - - text/x-pascal - pas: - - text/x-pascal - etx: - - text/x-setext - sfv: - - text/x-sfv - uu: - - text/x-uuencode - vcs: - - text/x-vcalendar - vcf: - - text/x-vcard - 3gp: - - video/3gpp - 3g2: - - video/3gpp2 - h261: - - video/h261 - h263: - - video/h263 - h264: - - video/h264 - jpgv: - - video/jpeg - jpm: - - video/jpm - jpgm: - - video/jpm - mj2: - - video/mj2 - mjp2: - - video/mj2 - mp4: - - video/mp4 - mp4v: - - video/mp4 - mpg4: - - video/mp4 - mpeg: - - video/mpeg - mpg: - - video/mpeg - mpe: - - video/mpeg - m1v: - - video/mpeg - m2v: - - video/mpeg - ogv: - - video/ogg - qt: - - video/quicktime - mov: - - video/quicktime - uvh: - - video/vnd.dece.hd - uvvh: - - video/vnd.dece.hd - uvm: - - video/vnd.dece.mobile - uvvm: - - video/vnd.dece.mobile - uvp: - - video/vnd.dece.pd - uvvp: - - video/vnd.dece.pd - uvs: - - video/vnd.dece.sd - uvvs: - - video/vnd.dece.sd - uvv: - - video/vnd.dece.video - uvvv: - - video/vnd.dece.video - dvb: - - video/vnd.dvb.file - fvt: - - video/vnd.fvt - mxu: - - video/vnd.mpegurl - m4u: - - video/vnd.mpegurl - pyv: - - video/vnd.ms-playready.media.pyv - uvu: - - video/vnd.uvvu.mp4 - uvvu: - - video/vnd.uvvu.mp4 - viv: - - video/vnd.vivo - webm: - - video/webm - f4v: - - video/x-f4v - fli: - - video/x-fli - flv: - - video/x-flv - m4v: - - video/x-m4v - mkv: - - video/x-matroska - mk3d: - - video/x-matroska - mks: - - video/x-matroska - mng: - - video/x-mng - asf: - - video/x-ms-asf - asx: - - video/x-ms-asf - vob: - - video/x-ms-vob - wm: - - video/x-ms-wm - wmv: - - video/x-ms-wmv - wmx: - - video/x-ms-wmx - wvx: - - video/x-ms-wvx - avi: - - video/x-msvideo - movie: - - video/x-sgi-movie - smv: - - video/x-smv - ice: - - x-conference/x-cooltalk + '123': + - application/vnd.lotus-1-2-3 + wof: + - application/font-woff + php: + - application/php + - application/x-httpd-php + - application/x-httpd-php-source + - application/x-php + - text/php + - text/x-php + otf: + - application/x-font-otf + - font/otf + ttf: + - application/x-font-ttf + - font/ttf + ttc: + - application/x-font-ttf + - font/collection + zip: + - application/x-gzip + - application/zip + - application/x-zip-compressed + amr: + - audio/amr + mp3: + - audio/mpeg + mpga: + - audio/mpeg + mp2: + - audio/mpeg + mp2a: + - audio/mpeg + m2a: + - audio/mpeg + m3a: + - audio/mpeg + jpg: + - image/jpeg + jpeg: + - image/jpeg + jpe: + - image/jpeg + bmp: + - image/x-ms-bmp + - image/bmp + ez: + - application/andrew-inset + aw: + - application/applixware + atom: + - application/atom+xml + atomcat: + - application/atomcat+xml + atomsvc: + - application/atomsvc+xml + ccxml: + - application/ccxml+xml + cdmia: + - application/cdmi-capability + cdmic: + - application/cdmi-container + cdmid: + - application/cdmi-domain + cdmio: + - application/cdmi-object + cdmiq: + - application/cdmi-queue + cu: + - application/cu-seeme + davmount: + - application/davmount+xml + dbk: + - application/docbook+xml + dssc: + - application/dssc+der + xdssc: + - application/dssc+xml + ecma: + - application/ecmascript + emma: + - application/emma+xml + epub: + - application/epub+zip + exi: + - application/exi + pfr: + - application/font-tdpfr + gml: + - application/gml+xml + gpx: + - application/gpx+xml + gxf: + - application/gxf + stk: + - application/hyperstudio + ink: + - application/inkml+xml + inkml: + - application/inkml+xml + ipfix: + - application/ipfix + jar: + - application/java-archive + ser: + - application/java-serialized-object + class: + - application/java-vm + js: + - application/javascript + json: + - application/json + jsonml: + - application/jsonml+json + lostxml: + - application/lost+xml + hqx: + - application/mac-binhex40 + cpt: + - application/mac-compactpro + mads: + - application/mads+xml + mrc: + - application/marc + mrcx: + - application/marcxml+xml + ma: + - application/mathematica + nb: + - application/mathematica + mb: + - application/mathematica + mathml: + - application/mathml+xml + mbox: + - application/mbox + mscml: + - application/mediaservercontrol+xml + metalink: + - application/metalink+xml + meta4: + - application/metalink4+xml + mets: + - application/mets+xml + mods: + - application/mods+xml + m21: + - application/mp21 + mp21: + - application/mp21 + mp4s: + - application/mp4 + doc: + - application/msword + dot: + - application/msword + mxf: + - application/mxf + bin: + - application/octet-stream + dms: + - application/octet-stream + lrf: + - application/octet-stream + mar: + - application/octet-stream + so: + - application/octet-stream + dist: + - application/octet-stream + distz: + - application/octet-stream + pkg: + - application/octet-stream + bpk: + - application/octet-stream + dump: + - application/octet-stream + elc: + - application/octet-stream + deploy: + - application/octet-stream + oda: + - application/oda + opf: + - application/oebps-package+xml + ogx: + - application/ogg + omdoc: + - application/omdoc+xml + onetoc: + - application/onenote + onetoc2: + - application/onenote + onetmp: + - application/onenote + onepkg: + - application/onenote + oxps: + - application/oxps + xer: + - application/patch-ops-error+xml + pdf: + - application/pdf + pgp: + - application/pgp-encrypted + asc: + - application/pgp-signature + sig: + - application/pgp-signature + prf: + - application/pics-rules + p10: + - application/pkcs10 + p7m: + - application/pkcs7-mime + p7c: + - application/pkcs7-mime + p7s: + - application/pkcs7-signature + p8: + - application/pkcs8 + ac: + - application/pkix-attr-cert + cer: + - application/pkix-cert + crl: + - application/pkix-crl + pkipath: + - application/pkix-pkipath + pki: + - application/pkixcmp + pls: + - application/pls+xml + ai: + - application/postscript + eps: + - application/postscript + ps: + - application/postscript + cww: + - application/prs.cww + pskcxml: + - application/pskc+xml + rdf: + - application/rdf+xml + rif: + - application/reginfo+xml + rnc: + - application/relax-ng-compact-syntax + rl: + - application/resource-lists+xml + rld: + - application/resource-lists-diff+xml + rs: + - application/rls-services+xml + gbr: + - application/rpki-ghostbusters + mft: + - application/rpki-manifest + roa: + - application/rpki-roa + rsd: + - application/rsd+xml + rss: + - application/rss+xml + rtf: + - application/rtf + sbml: + - application/sbml+xml + scq: + - application/scvp-cv-request + scs: + - application/scvp-cv-response + spq: + - application/scvp-vp-request + spp: + - application/scvp-vp-response + sdp: + - application/sdp + setpay: + - application/set-payment-initiation + setreg: + - application/set-registration-initiation + shf: + - application/shf+xml + smi: + - application/smil+xml + smil: + - application/smil+xml + rq: + - application/sparql-query + srx: + - application/sparql-results+xml + gram: + - application/srgs + grxml: + - application/srgs+xml + sru: + - application/sru+xml + ssdl: + - application/ssdl+xml + ssml: + - application/ssml+xml + tei: + - application/tei+xml + teicorpus: + - application/tei+xml + tfi: + - application/thraud+xml + tsd: + - application/timestamped-data + plb: + - application/vnd.3gpp.pic-bw-large + psb: + - application/vnd.3gpp.pic-bw-small + pvb: + - application/vnd.3gpp.pic-bw-var + tcap: + - application/vnd.3gpp2.tcap + pwn: + - application/vnd.3m.post-it-notes + aso: + - application/vnd.accpac.simply.aso + imp: + - application/vnd.accpac.simply.imp + acu: + - application/vnd.acucobol + atc: + - application/vnd.acucorp + acutc: + - application/vnd.acucorp + air: + - application/vnd.adobe.air-application-installer-package+zip + fcdt: + - application/vnd.adobe.formscentral.fcdt + fxp: + - application/vnd.adobe.fxp + fxpl: + - application/vnd.adobe.fxp + xdp: + - application/vnd.adobe.xdp+xml + xfdf: + - application/vnd.adobe.xfdf + ahead: + - application/vnd.ahead.space + azf: + - application/vnd.airzip.filesecure.azf + azs: + - application/vnd.airzip.filesecure.azs + azw: + - application/vnd.amazon.ebook + acc: + - application/vnd.americandynamics.acc + ami: + - application/vnd.amiga.ami + apk: + - application/vnd.android.package-archive + cii: + - application/vnd.anser-web-certificate-issue-initiation + fti: + - application/vnd.anser-web-funds-transfer-initiation + atx: + - application/vnd.antix.game-component + mpkg: + - application/vnd.apple.installer+xml + m3u8: + - application/vnd.apple.mpegurl + swi: + - application/vnd.aristanetworks.swi + iota: + - application/vnd.astraea-software.iota + aep: + - application/vnd.audiograph + mpm: + - application/vnd.blueice.multipass + bmi: + - application/vnd.bmi + rep: + - application/vnd.businessobjects + cdxml: + - application/vnd.chemdraw+xml + mmd: + - application/vnd.chipnuts.karaoke-mmd + cdy: + - application/vnd.cinderella + cla: + - application/vnd.claymore + rp9: + - application/vnd.cloanto.rp9 + c4g: + - application/vnd.clonk.c4group + c4d: + - application/vnd.clonk.c4group + c4f: + - application/vnd.clonk.c4group + c4p: + - application/vnd.clonk.c4group + c4u: + - application/vnd.clonk.c4group + c11amc: + - application/vnd.cluetrust.cartomobile-config + c11amz: + - application/vnd.cluetrust.cartomobile-config-pkg + csp: + - application/vnd.commonspace + cdbcmsg: + - application/vnd.contact.cmsg + cmc: + - application/vnd.cosmocaller + clkx: + - application/vnd.crick.clicker + clkk: + - application/vnd.crick.clicker.keyboard + clkp: + - application/vnd.crick.clicker.palette + clkt: + - application/vnd.crick.clicker.template + clkw: + - application/vnd.crick.clicker.wordbank + wbs: + - application/vnd.criticaltools.wbs+xml + pml: + - application/vnd.ctc-posml + ppd: + - application/vnd.cups-ppd + car: + - application/vnd.curl.car + pcurl: + - application/vnd.curl.pcurl + dart: + - application/vnd.dart + rdz: + - application/vnd.data-vision.rdz + uvf: + - application/vnd.dece.data + uvvf: + - application/vnd.dece.data + uvd: + - application/vnd.dece.data + uvvd: + - application/vnd.dece.data + uvt: + - application/vnd.dece.ttml+xml + uvvt: + - application/vnd.dece.ttml+xml + uvx: + - application/vnd.dece.unspecified + uvvx: + - application/vnd.dece.unspecified + uvz: + - application/vnd.dece.zip + uvvz: + - application/vnd.dece.zip + fe_launch: + - application/vnd.denovo.fcselayout-link + dna: + - application/vnd.dna + mlp: + - application/vnd.dolby.mlp + dpg: + - application/vnd.dpgraph + dfac: + - application/vnd.dreamfactory + kpxx: + - application/vnd.ds-keypoint + ait: + - application/vnd.dvb.ait + svc: + - application/vnd.dvb.service + geo: + - application/vnd.dynageo + mag: + - application/vnd.ecowin.chart + nml: + - application/vnd.enliven + esf: + - application/vnd.epson.esf + msf: + - application/vnd.epson.msf + qam: + - application/vnd.epson.quickanime + slt: + - application/vnd.epson.salt + ssf: + - application/vnd.epson.ssf + es3: + - application/vnd.eszigno3+xml + et3: + - application/vnd.eszigno3+xml + ez2: + - application/vnd.ezpix-album + ez3: + - application/vnd.ezpix-package + fdf: + - application/vnd.fdf + mseed: + - application/vnd.fdsn.mseed + seed: + - application/vnd.fdsn.seed + dataless: + - application/vnd.fdsn.seed + gph: + - application/vnd.flographit + ftc: + - application/vnd.fluxtime.clip + fm: + - application/vnd.framemaker + frame: + - application/vnd.framemaker + maker: + - application/vnd.framemaker + book: + - application/vnd.framemaker + fnc: + - application/vnd.frogans.fnc + ltf: + - application/vnd.frogans.ltf + fsc: + - application/vnd.fsc.weblaunch + oas: + - application/vnd.fujitsu.oasys + oa2: + - application/vnd.fujitsu.oasys2 + oa3: + - application/vnd.fujitsu.oasys3 + fg5: + - application/vnd.fujitsu.oasysgp + bh2: + - application/vnd.fujitsu.oasysprs + ddd: + - application/vnd.fujixerox.ddd + xdw: + - application/vnd.fujixerox.docuworks + xbd: + - application/vnd.fujixerox.docuworks.binder + fzs: + - application/vnd.fuzzysheet + txd: + - application/vnd.genomatix.tuxedo + ggb: + - application/vnd.geogebra.file + ggt: + - application/vnd.geogebra.tool + gex: + - application/vnd.geometry-explorer + gre: + - application/vnd.geometry-explorer + gxt: + - application/vnd.geonext + g2w: + - application/vnd.geoplan + g3w: + - application/vnd.geospace + gmx: + - application/vnd.gmx + kml: + - application/vnd.google-earth.kml+xml + kmz: + - application/vnd.google-earth.kmz + gqf: + - application/vnd.grafeq + gqs: + - application/vnd.grafeq + gac: + - application/vnd.groove-account + ghf: + - application/vnd.groove-help + gim: + - application/vnd.groove-identity-message + grv: + - application/vnd.groove-injector + gtm: + - application/vnd.groove-tool-message + tpl: + - application/vnd.groove-tool-template + vcg: + - application/vnd.groove-vcard + hal: + - application/vnd.hal+xml + zmm: + - application/vnd.handheld-entertainment+xml + hbci: + - application/vnd.hbci + les: + - application/vnd.hhe.lesson-player + hpgl: + - application/vnd.hp-hpgl + hpid: + - application/vnd.hp-hpid + hps: + - application/vnd.hp-hps + jlt: + - application/vnd.hp-jlyt + pcl: + - application/vnd.hp-pcl + pclxl: + - application/vnd.hp-pclxl + sfd-hdstx: + - application/vnd.hydrostatix.sof-data + mpy: + - application/vnd.ibm.minipay + afp: + - application/vnd.ibm.modcap + listafp: + - application/vnd.ibm.modcap + list3820: + - application/vnd.ibm.modcap + irm: + - application/vnd.ibm.rights-management + sc: + - application/vnd.ibm.secure-container + icc: + - application/vnd.iccprofile + icm: + - application/vnd.iccprofile + igl: + - application/vnd.igloader + ivp: + - application/vnd.immervision-ivp + ivu: + - application/vnd.immervision-ivu + igm: + - application/vnd.insors.igm + xpw: + - application/vnd.intercon.formnet + xpx: + - application/vnd.intercon.formnet + i2g: + - application/vnd.intergeo + qbo: + - application/vnd.intu.qbo + qfx: + - application/vnd.intu.qfx + rcprofile: + - application/vnd.ipunplugged.rcprofile + irp: + - application/vnd.irepository.package+xml + xpr: + - application/vnd.is-xpr + fcs: + - application/vnd.isac.fcs + jam: + - application/vnd.jam + rms: + - application/vnd.jcp.javame.midlet-rms + jisp: + - application/vnd.jisp + joda: + - application/vnd.joost.joda-archive + ktz: + - application/vnd.kahootz + ktr: + - application/vnd.kahootz + karbon: + - application/vnd.kde.karbon + chrt: + - application/vnd.kde.kchart + kfo: + - application/vnd.kde.kformula + flw: + - application/vnd.kde.kivio + kon: + - application/vnd.kde.kontour + kpr: + - application/vnd.kde.kpresenter + kpt: + - application/vnd.kde.kpresenter + ksp: + - application/vnd.kde.kspread + kwd: + - application/vnd.kde.kword + kwt: + - application/vnd.kde.kword + htke: + - application/vnd.kenameaapp + kia: + - application/vnd.kidspiration + kne: + - application/vnd.kinar + knp: + - application/vnd.kinar + skp: + - application/vnd.koan + skd: + - application/vnd.koan + skt: + - application/vnd.koan + skm: + - application/vnd.koan + sse: + - application/vnd.kodak-descriptor + lasxml: + - application/vnd.las.las+xml + lbd: + - application/vnd.llamagraphics.life-balance.desktop + lbe: + - application/vnd.llamagraphics.life-balance.exchange+xml + apr: + - application/vnd.lotus-approach + pre: + - application/vnd.lotus-freelance + nsf: + - application/vnd.lotus-notes + org: + - application/vnd.lotus-organizer + scm: + - application/vnd.lotus-screencam + lwp: + - application/vnd.lotus-wordpro + portpkg: + - application/vnd.macports.portpkg + mcd: + - application/vnd.mcd + mc1: + - application/vnd.medcalcdata + cdkey: + - application/vnd.mediastation.cdkey + mwf: + - application/vnd.mfer + mfm: + - application/vnd.mfmp + flo: + - application/vnd.micrografx.flo + igx: + - application/vnd.micrografx.igx + mif: + - application/vnd.mif + daf: + - application/vnd.mobius.daf + dis: + - application/vnd.mobius.dis + mbk: + - application/vnd.mobius.mbk + mqy: + - application/vnd.mobius.mqy + msl: + - application/vnd.mobius.msl + plc: + - application/vnd.mobius.plc + txf: + - application/vnd.mobius.txf + mpn: + - application/vnd.mophun.application + mpc: + - application/vnd.mophun.certificate + xul: + - application/vnd.mozilla.xul+xml + cil: + - application/vnd.ms-artgalry + cab: + - application/vnd.ms-cab-compressed + xls: + - application/vnd.ms-excel + xlm: + - application/vnd.ms-excel + xla: + - application/vnd.ms-excel + xlc: + - application/vnd.ms-excel + xlt: + - application/vnd.ms-excel + xlw: + - application/vnd.ms-excel + xlam: + - application/vnd.ms-excel.addin.macroenabled.12 + xlsb: + - application/vnd.ms-excel.sheet.binary.macroenabled.12 + xlsm: + - application/vnd.ms-excel.sheet.macroenabled.12 + xltm: + - application/vnd.ms-excel.template.macroenabled.12 + eot: + - application/vnd.ms-fontobject + chm: + - application/vnd.ms-htmlhelp + ims: + - application/vnd.ms-ims + lrm: + - application/vnd.ms-lrm + thmx: + - application/vnd.ms-officetheme + cat: + - application/vnd.ms-pki.seccat + stl: + - application/vnd.ms-pki.stl + ppt: + - application/vnd.ms-powerpoint + pps: + - application/vnd.ms-powerpoint + pot: + - application/vnd.ms-powerpoint + ppam: + - application/vnd.ms-powerpoint.addin.macroenabled.12 + pptm: + - application/vnd.ms-powerpoint.presentation.macroenabled.12 + sldm: + - application/vnd.ms-powerpoint.slide.macroenabled.12 + ppsm: + - application/vnd.ms-powerpoint.slideshow.macroenabled.12 + potm: + - application/vnd.ms-powerpoint.template.macroenabled.12 + mpp: + - application/vnd.ms-project + mpt: + - application/vnd.ms-project + docm: + - application/vnd.ms-word.document.macroenabled.12 + dotm: + - application/vnd.ms-word.template.macroenabled.12 + wps: + - application/vnd.ms-works + wks: + - application/vnd.ms-works + wcm: + - application/vnd.ms-works + wdb: + - application/vnd.ms-works + wpl: + - application/vnd.ms-wpl + xps: + - application/vnd.ms-xpsdocument + mseq: + - application/vnd.mseq + mus: + - application/vnd.musician + msty: + - application/vnd.muvee.style + taglet: + - application/vnd.mynfc + nlu: + - application/vnd.neurolanguage.nlu + ntf: + - application/vnd.nitf + nitf: + - application/vnd.nitf + nnd: + - application/vnd.noblenet-directory + nns: + - application/vnd.noblenet-sealer + nnw: + - application/vnd.noblenet-web + ngdat: + - application/vnd.nokia.n-gage.data + n-gage: + - application/vnd.nokia.n-gage.symbian.install + rpst: + - application/vnd.nokia.radio-preset + rpss: + - application/vnd.nokia.radio-presets + edm: + - application/vnd.novadigm.edm + edx: + - application/vnd.novadigm.edx + ext: + - application/vnd.novadigm.ext + odc: + - application/vnd.oasis.opendocument.chart + otc: + - application/vnd.oasis.opendocument.chart-template + odb: + - application/vnd.oasis.opendocument.database + odf: + - application/vnd.oasis.opendocument.formula + odft: + - application/vnd.oasis.opendocument.formula-template + odg: + - application/vnd.oasis.opendocument.graphics + otg: + - application/vnd.oasis.opendocument.graphics-template + odi: + - application/vnd.oasis.opendocument.image + oti: + - application/vnd.oasis.opendocument.image-template + odp: + - application/vnd.oasis.opendocument.presentation + otp: + - application/vnd.oasis.opendocument.presentation-template + ods: + - application/vnd.oasis.opendocument.spreadsheet + ots: + - application/vnd.oasis.opendocument.spreadsheet-template + odt: + - application/vnd.oasis.opendocument.text + odm: + - application/vnd.oasis.opendocument.text-master + ott: + - application/vnd.oasis.opendocument.text-template + oth: + - application/vnd.oasis.opendocument.text-web + xo: + - application/vnd.olpc-sugar + dd2: + - application/vnd.oma.dd2+xml + oxt: + - application/vnd.openofficeorg.extension + pptx: + - application/vnd.openxmlformats-officedocument.presentationml.presentation + sldx: + - application/vnd.openxmlformats-officedocument.presentationml.slide + ppsx: + - application/vnd.openxmlformats-officedocument.presentationml.slideshow + potx: + - application/vnd.openxmlformats-officedocument.presentationml.template + xlsx: + - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + xltx: + - application/vnd.openxmlformats-officedocument.spreadsheetml.template + docx: + - application/vnd.openxmlformats-officedocument.wordprocessingml.document + dotx: + - application/vnd.openxmlformats-officedocument.wordprocessingml.template + mgp: + - application/vnd.osgeo.mapguide.package + dp: + - application/vnd.osgi.dp + esa: + - application/vnd.osgi.subsystem + pdb: + - application/vnd.palm + pqa: + - application/vnd.palm + oprc: + - application/vnd.palm + paw: + - application/vnd.pawaafile + str: + - application/vnd.pg.format + ei6: + - application/vnd.pg.osasli + efif: + - application/vnd.picsel + wg: + - application/vnd.pmi.widget + plf: + - application/vnd.pocketlearn + pbd: + - application/vnd.powerbuilder6 + box: + - application/vnd.previewsystems.box + mgz: + - application/vnd.proteus.magazine + qps: + - application/vnd.publishare-delta-tree + ptid: + - application/vnd.pvi.ptid1 + qxd: + - application/vnd.quark.quarkxpress + qxt: + - application/vnd.quark.quarkxpress + qwd: + - application/vnd.quark.quarkxpress + qwt: + - application/vnd.quark.quarkxpress + qxl: + - application/vnd.quark.quarkxpress + qxb: + - application/vnd.quark.quarkxpress + bed: + - application/vnd.realvnc.bed + mxl: + - application/vnd.recordare.musicxml + musicxml: + - application/vnd.recordare.musicxml+xml + cryptonote: + - application/vnd.rig.cryptonote + cod: + - application/vnd.rim.cod + rm: + - application/vnd.rn-realmedia + rmvb: + - application/vnd.rn-realmedia-vbr + link66: + - application/vnd.route66.link66+xml + st: + - application/vnd.sailingtracker.track + see: + - application/vnd.seemail + sema: + - application/vnd.sema + semd: + - application/vnd.semd + semf: + - application/vnd.semf + ifm: + - application/vnd.shana.informed.formdata + itp: + - application/vnd.shana.informed.formtemplate + iif: + - application/vnd.shana.informed.interchange + ipk: + - application/vnd.shana.informed.package + twd: + - application/vnd.simtech-mindmapper + twds: + - application/vnd.simtech-mindmapper + mmf: + - application/vnd.smaf + teacher: + - application/vnd.smart.teacher + sdkm: + - application/vnd.solent.sdkm+xml + sdkd: + - application/vnd.solent.sdkm+xml + dxp: + - application/vnd.spotfire.dxp + sfs: + - application/vnd.spotfire.sfs + sdc: + - application/vnd.stardivision.calc + sda: + - application/vnd.stardivision.draw + sdd: + - application/vnd.stardivision.impress + smf: + - application/vnd.stardivision.math + sdw: + - application/vnd.stardivision.writer + vor: + - application/vnd.stardivision.writer + sgl: + - application/vnd.stardivision.writer-global + smzip: + - application/vnd.stepmania.package + sm: + - application/vnd.stepmania.stepchart + sxc: + - application/vnd.sun.xml.calc + stc: + - application/vnd.sun.xml.calc.template + sxd: + - application/vnd.sun.xml.draw + std: + - application/vnd.sun.xml.draw.template + sxi: + - application/vnd.sun.xml.impress + sti: + - application/vnd.sun.xml.impress.template + sxm: + - application/vnd.sun.xml.math + sxw: + - application/vnd.sun.xml.writer + sxg: + - application/vnd.sun.xml.writer.global + stw: + - application/vnd.sun.xml.writer.template + sus: + - application/vnd.sus-calendar + susp: + - application/vnd.sus-calendar + svd: + - application/vnd.svd + sis: + - application/vnd.symbian.install + sisx: + - application/vnd.symbian.install + xsm: + - application/vnd.syncml+xml + bdm: + - application/vnd.syncml.dm+wbxml + xdm: + - application/vnd.syncml.dm+xml + tao: + - application/vnd.tao.intent-module-archive + pcap: + - application/vnd.tcpdump.pcap + cap: + - application/vnd.tcpdump.pcap + dmp: + - application/vnd.tcpdump.pcap + tmo: + - application/vnd.tmobile-livetv + tpt: + - application/vnd.trid.tpt + mxs: + - application/vnd.triscape.mxs + tra: + - application/vnd.trueapp + ufd: + - application/vnd.ufdl + ufdl: + - application/vnd.ufdl + utz: + - application/vnd.uiq.theme + umj: + - application/vnd.umajin + unityweb: + - application/vnd.unity + uoml: + - application/vnd.uoml+xml + vcx: + - application/vnd.vcx + vsd: + - application/vnd.visio + vst: + - application/vnd.visio + vss: + - application/vnd.visio + vsw: + - application/vnd.visio + vis: + - application/vnd.visionary + vsf: + - application/vnd.vsf + wbxml: + - application/vnd.wap.wbxml + wmlc: + - application/vnd.wap.wmlc + wmlsc: + - application/vnd.wap.wmlscriptc + wtb: + - application/vnd.webturbo + nbp: + - application/vnd.wolfram.player + wpd: + - application/vnd.wordperfect + wqd: + - application/vnd.wqd + stf: + - application/vnd.wt.stf + xar: + - application/vnd.xara + xfdl: + - application/vnd.xfdl + hvd: + - application/vnd.yamaha.hv-dic + hvs: + - application/vnd.yamaha.hv-script + hvp: + - application/vnd.yamaha.hv-voice + osf: + - application/vnd.yamaha.openscoreformat + osfpvg: + - application/vnd.yamaha.openscoreformat.osfpvg+xml + saf: + - application/vnd.yamaha.smaf-audio + spf: + - application/vnd.yamaha.smaf-phrase + cmp: + - application/vnd.yellowriver-custom-menu + zir: + - application/vnd.zul + zirz: + - application/vnd.zul + zaz: + - application/vnd.zzazz.deck+xml + vxml: + - application/voicexml+xml + wgt: + - application/widget + hlp: + - application/winhlp + wsdl: + - application/wsdl+xml + wspolicy: + - application/wspolicy+xml + 7z: + - application/x-7z-compressed + abw: + - application/x-abiword + ace: + - application/x-ace-compressed + dmg: + - application/x-apple-diskimage + aab: + - application/x-authorware-bin + x32: + - application/x-authorware-bin + u32: + - application/x-authorware-bin + vox: + - application/x-authorware-bin + aam: + - application/x-authorware-map + aas: + - application/x-authorware-seg + bcpio: + - application/x-bcpio + torrent: + - application/x-bittorrent + blb: + - application/x-blorb + blorb: + - application/x-blorb + bz: + - application/x-bzip + bz2: + - application/x-bzip2 + boz: + - application/x-bzip2 + cbr: + - application/x-cbr + cba: + - application/x-cbr + cbt: + - application/x-cbr + cbz: + - application/x-cbr + cb7: + - application/x-cbr + vcd: + - application/x-cdlink + cfs: + - application/x-cfs-compressed + chat: + - application/x-chat + pgn: + - application/x-chess-pgn + nsc: + - application/x-conference + cpio: + - application/x-cpio + csh: + - application/x-csh + deb: + - application/x-debian-package + udeb: + - application/x-debian-package + dgc: + - application/x-dgc-compressed + dir: + - application/x-director + dcr: + - application/x-director + dxr: + - application/x-director + cst: + - application/x-director + cct: + - application/x-director + cxt: + - application/x-director + w3d: + - application/x-director + fgd: + - application/x-director + swa: + - application/x-director + wad: + - application/x-doom + ncx: + - application/x-dtbncx+xml + dtb: + - application/x-dtbook+xml + res: + - application/x-dtbresource+xml + dvi: + - application/x-dvi + evy: + - application/x-envoy + eva: + - application/x-eva + bdf: + - application/x-font-bdf + gsf: + - application/x-font-ghostscript + psf: + - application/x-font-linux-psf + pcf: + - application/x-font-pcf + snf: + - application/x-font-snf + pfa: + - application/x-font-type1 + pfb: + - application/x-font-type1 + pfm: + - application/x-font-type1 + afm: + - application/x-font-type1 + arc: + - application/x-freearc + spl: + - application/x-futuresplash + gca: + - application/x-gca-compressed + ulx: + - application/x-glulx + gnumeric: + - application/x-gnumeric + gramps: + - application/x-gramps-xml + gtar: + - application/x-gtar + hdf: + - application/x-hdf + install: + - application/x-install-instructions + iso: + - application/x-iso9660-image + jnlp: + - application/x-java-jnlp-file + latex: + - application/x-latex + lzh: + - application/x-lzh-compressed + lha: + - application/x-lzh-compressed + mie: + - application/x-mie + prc: + - application/x-mobipocket-ebook + mobi: + - application/x-mobipocket-ebook + application: + - application/x-ms-application + lnk: + - application/x-ms-shortcut + wmd: + - application/x-ms-wmd + wmz: + - application/x-ms-wmz + - application/x-msmetafile + xbap: + - application/x-ms-xbap + mdb: + - application/x-msaccess + obd: + - application/x-msbinder + crd: + - application/x-mscardfile + clp: + - application/x-msclip + exe: + - application/x-msdownload + dll: + - application/x-msdownload + com: + - application/x-msdownload + bat: + - application/x-msdownload + msi: + - application/x-msdownload + mvb: + - application/x-msmediaview + m13: + - application/x-msmediaview + m14: + - application/x-msmediaview + wmf: + - application/x-msmetafile + emf: + - application/x-msmetafile + emz: + - application/x-msmetafile + mny: + - application/x-msmoney + pub: + - application/x-mspublisher + scd: + - application/x-msschedule + trm: + - application/x-msterminal + wri: + - application/x-mswrite + nc: + - application/x-netcdf + cdf: + - application/x-netcdf + nzb: + - application/x-nzb + p12: + - application/x-pkcs12 + pfx: + - application/x-pkcs12 + p7b: + - application/x-pkcs7-certificates + spc: + - application/x-pkcs7-certificates + p7r: + - application/x-pkcs7-certreqresp + rar: + - application/x-rar-compressed + ris: + - application/x-research-info-systems + sh: + - application/x-sh + shar: + - application/x-shar + swf: + - application/x-shockwave-flash + xap: + - application/x-silverlight-app + sql: + - application/x-sql + sit: + - application/x-stuffit + sitx: + - application/x-stuffitx + srt: + - application/x-subrip + sv4cpio: + - application/x-sv4cpio + sv4crc: + - application/x-sv4crc + t3: + - application/x-t3vm-image + gam: + - application/x-tads + tar: + - application/x-tar + tcl: + - application/x-tcl + tex: + - application/x-tex + tfm: + - application/x-tex-tfm + texinfo: + - application/x-texinfo + texi: + - application/x-texinfo + obj: + - application/x-tgif + ustar: + - application/x-ustar + src: + - application/x-wais-source + der: + - application/x-x509-ca-cert + crt: + - application/x-x509-ca-cert + fig: + - application/x-xfig + xlf: + - application/x-xliff+xml + xpi: + - application/x-xpinstall + xz: + - application/x-xz + z1: + - application/x-zmachine + z2: + - application/x-zmachine + z3: + - application/x-zmachine + z4: + - application/x-zmachine + z5: + - application/x-zmachine + z6: + - application/x-zmachine + z7: + - application/x-zmachine + z8: + - application/x-zmachine + xaml: + - application/xaml+xml + xdf: + - application/xcap-diff+xml + xenc: + - application/xenc+xml + xhtml: + - application/xhtml+xml + xht: + - application/xhtml+xml + xml: + - application/xml + xsl: + - application/xml + dtd: + - application/xml-dtd + xop: + - application/xop+xml + xpl: + - application/xproc+xml + xslt: + - application/xslt+xml + xspf: + - application/xspf+xml + mxml: + - application/xv+xml + xhvml: + - application/xv+xml + xvml: + - application/xv+xml + xvm: + - application/xv+xml + yang: + - application/yang + yin: + - application/yin+xml + adp: + - audio/adpcm + au: + - audio/basic + snd: + - audio/basic + mid: + - audio/midi + midi: + - audio/midi + kar: + - audio/midi + rmi: + - audio/midi + m4a: + - audio/mp4 + mp4a: + - audio/mp4 + oga: + - audio/ogg + ogg: + - audio/ogg + spx: + - audio/ogg + s3m: + - audio/s3m + sil: + - audio/silk + uva: + - audio/vnd.dece.audio + uvva: + - audio/vnd.dece.audio + eol: + - audio/vnd.digital-winds + dra: + - audio/vnd.dra + dts: + - audio/vnd.dts + dtshd: + - audio/vnd.dts.hd + lvp: + - audio/vnd.lucent.voice + pya: + - audio/vnd.ms-playready.media.pya + ecelp4800: + - audio/vnd.nuera.ecelp4800 + ecelp7470: + - audio/vnd.nuera.ecelp7470 + ecelp9600: + - audio/vnd.nuera.ecelp9600 + rip: + - audio/vnd.rip + weba: + - audio/webm + aac: + - audio/x-aac + aif: + - audio/x-aiff + aiff: + - audio/x-aiff + aifc: + - audio/x-aiff + caf: + - audio/x-caf + flac: + - audio/x-flac + mka: + - audio/x-matroska + m3u: + - audio/x-mpegurl + wax: + - audio/x-ms-wax + wma: + - audio/x-ms-wma + ram: + - audio/x-pn-realaudio + ra: + - audio/x-pn-realaudio + rmp: + - audio/x-pn-realaudio-plugin + wav: + - audio/x-wav + xm: + - audio/xm + cdx: + - chemical/x-cdx + cif: + - chemical/x-cif + cmdf: + - chemical/x-cmdf + cml: + - chemical/x-cml + csml: + - chemical/x-csml + xyz: + - chemical/x-xyz + woff: + - font/woff + woff2: + - font/woff2 + image: + - image/avif + cgm: + - image/cgm + g3: + - image/g3fax + gif: + - image/gif + ief: + - image/ief + ktx: + - image/ktx + png: + - image/png + btif: + - image/prs.btif + sgi: + - image/sgi + svg: + - image/svg+xml + svgz: + - image/svg+xml + tiff: + - image/tiff + tif: + - image/tiff + psd: + - image/vnd.adobe.photoshop + uvi: + - image/vnd.dece.graphic + uvvi: + - image/vnd.dece.graphic + uvg: + - image/vnd.dece.graphic + uvvg: + - image/vnd.dece.graphic + djvu: + - image/vnd.djvu + djv: + - image/vnd.djvu + sub: + - image/vnd.dvb.subtitle + - text/vnd.dvb.subtitle + dwg: + - image/vnd.dwg + dxf: + - image/vnd.dxf + fbs: + - image/vnd.fastbidsheet + fpx: + - image/vnd.fpx + fst: + - image/vnd.fst + mmr: + - image/vnd.fujixerox.edmics-mmr + rlc: + - image/vnd.fujixerox.edmics-rlc + mdi: + - image/vnd.ms-modi + wdp: + - image/vnd.ms-photo + npx: + - image/vnd.net-fpx + wbmp: + - image/vnd.wap.wbmp + xif: + - image/vnd.xiff + webp: + - image/webp + 3ds: + - image/x-3ds + ras: + - image/x-cmu-raster + cmx: + - image/x-cmx + fh: + - image/x-freehand + fhc: + - image/x-freehand + fh4: + - image/x-freehand + fh5: + - image/x-freehand + fh7: + - image/x-freehand + ico: + - image/x-icon + sid: + - image/x-mrsid-image + pcx: + - image/x-pcx + pic: + - image/x-pict + pct: + - image/x-pict + pnm: + - image/x-portable-anymap + pbm: + - image/x-portable-bitmap + pgm: + - image/x-portable-graymap + ppm: + - image/x-portable-pixmap + rgb: + - image/x-rgb + tga: + - image/x-tga + xbm: + - image/x-xbitmap + xpm: + - image/x-xpixmap + xwd: + - image/x-xwindowdump + eml: + - message/rfc822 + mime: + - message/rfc822 + igs: + - model/iges + iges: + - model/iges + msh: + - model/mesh + mesh: + - model/mesh + silo: + - model/mesh + dae: + - model/vnd.collada+xml + dwf: + - model/vnd.dwf + gdl: + - model/vnd.gdl + gtw: + - model/vnd.gtw + mts: + - model/vnd.mts + vtu: + - model/vnd.vtu + wrl: + - model/vrml + vrml: + - model/vrml + x3db: + - model/x3d+binary + x3dbz: + - model/x3d+binary + x3dv: + - model/x3d+vrml + x3dvz: + - model/x3d+vrml + x3d: + - model/x3d+xml + x3dz: + - model/x3d+xml + appcache: + - text/cache-manifest + ics: + - text/calendar + ifb: + - text/calendar + css: + - text/css + csv: + - text/csv + html: + - text/html + htm: + - text/html + n3: + - text/n3 + txt: + - text/plain + text: + - text/plain + conf: + - text/plain + def: + - text/plain + list: + - text/plain + log: + - text/plain + in: + - text/plain + dsc: + - text/prs.lines.tag + rtx: + - text/richtext + sgml: + - text/sgml + sgm: + - text/sgml + tsv: + - text/tab-separated-values + t: + - text/troff + tr: + - text/troff + roff: + - text/troff + man: + - text/troff + me: + - text/troff + ms: + - text/troff + ttl: + - text/turtle + uri: + - text/uri-list + uris: + - text/uri-list + urls: + - text/uri-list + vcard: + - text/vcard + curl: + - text/vnd.curl + dcurl: + - text/vnd.curl.dcurl + mcurl: + - text/vnd.curl.mcurl + scurl: + - text/vnd.curl.scurl + fly: + - text/vnd.fly + flx: + - text/vnd.fmi.flexstor + gv: + - text/vnd.graphviz + 3dml: + - text/vnd.in3d.3dml + spot: + - text/vnd.in3d.spot + jad: + - text/vnd.sun.j2me.app-descriptor + wml: + - text/vnd.wap.wml + wmls: + - text/vnd.wap.wmlscript + s: + - text/x-asm + asm: + - text/x-asm + c: + - text/x-c + cc: + - text/x-c + cxx: + - text/x-c + cpp: + - text/x-c + h: + - text/x-c + hh: + - text/x-c + dic: + - text/x-c + f: + - text/x-fortran + for: + - text/x-fortran + f77: + - text/x-fortran + f90: + - text/x-fortran + java: + - text/x-java-source + nfo: + - text/x-nfo + opml: + - text/x-opml + p: + - text/x-pascal + pas: + - text/x-pascal + etx: + - text/x-setext + sfv: + - text/x-sfv + uu: + - text/x-uuencode + vcs: + - text/x-vcalendar + vcf: + - text/x-vcard + 3gp: + - video/3gpp + 3g2: + - video/3gpp2 + h261: + - video/h261 + h263: + - video/h263 + h264: + - video/h264 + jpgv: + - video/jpeg + jpm: + - video/jpm + jpgm: + - video/jpm + mj2: + - video/mj2 + mjp2: + - video/mj2 + mp4: + - video/mp4 + mp4v: + - video/mp4 + mpg4: + - video/mp4 + mpeg: + - video/mpeg + mpg: + - video/mpeg + mpe: + - video/mpeg + m1v: + - video/mpeg + m2v: + - video/mpeg + ogv: + - video/ogg + qt: + - video/quicktime + mov: + - video/quicktime + uvh: + - video/vnd.dece.hd + uvvh: + - video/vnd.dece.hd + uvm: + - video/vnd.dece.mobile + uvvm: + - video/vnd.dece.mobile + uvp: + - video/vnd.dece.pd + uvvp: + - video/vnd.dece.pd + uvs: + - video/vnd.dece.sd + uvvs: + - video/vnd.dece.sd + uvv: + - video/vnd.dece.video + uvvv: + - video/vnd.dece.video + dvb: + - video/vnd.dvb.file + fvt: + - video/vnd.fvt + mxu: + - video/vnd.mpegurl + m4u: + - video/vnd.mpegurl + pyv: + - video/vnd.ms-playready.media.pyv + uvu: + - video/vnd.uvvu.mp4 + uvvu: + - video/vnd.uvvu.mp4 + viv: + - video/vnd.vivo + webm: + - video/webm + f4v: + - video/x-f4v + fli: + - video/x-fli + flv: + - video/x-flv + m4v: + - video/x-m4v + mkv: + - video/x-matroska + mk3d: + - video/x-matroska + mks: + - video/x-matroska + mng: + - video/x-mng + asf: + - video/x-ms-asf + asx: + - video/x-ms-asf + vob: + - video/x-ms-vob + wm: + - video/x-ms-wm + wmv: + - video/x-ms-wmv + wmx: + - video/x-ms-wmx + wvx: + - video/x-ms-wvx + avi: + - video/x-msvideo + movie: + - video/x-sgi-movie + smv: + - video/x-smv + ice: + - x-conference/x-cooltalk From 4f065b95a7409960f8ee4999a6f86ab959d21138 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 25 Oct 2024 17:33:47 +0100 Subject: [PATCH 47/54] updated composer to latest version --- bin/composer.phar | Bin 2977479 -> 3053896 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bin/composer.phar b/bin/composer.phar index e6ba7bbadc93b5fc256ac8a80023ae73deacb942..e3253ebc9ddf7acb72fe456d4ca6a0545619da47 100755 GIT binary patch delta 95950 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

=-m!yWwse$FB&!F6Ado2F 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 delta 47805 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⪈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 E1?7Uh%m4rY From 800b2e1ecb638c2cdf3ee2a0b414faab5529d60f Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 25 Oct 2024 17:39:34 +0100 Subject: [PATCH 48/54] updated changelog --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84bfdfa7fc..32bc168945 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# v1.8.0-beta.2 +## mm/dd/2024 + +1. [](#new) + * Use `dev-master` branch of Clockwork to support Monolog2 / Monolog3 + * `AVIF` image support via updates to `getgrav/Image` library +1. [](#improved) + * Updated composer libraries + * Updated composer.php binary to `v2.8.1` + + # v1.8.0-beta.1 ## 10/23/2024 From 46736ce25689c595649bc5993154f3a79c25d50b Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 25 Oct 2024 17:53:51 +0100 Subject: [PATCH 49/54] upgrade to doctrine/collectons 2.2 --- CHANGELOG.md | 1 + composer.json | 2 +- composer.lock | 50 +++++++++++++------- system/src/Grav/Framework/Flex/FlexIndex.php | 12 +++++ 4 files changed, 47 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32bc168945..02e80f6ea2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ 1. [](#new) * Use `dev-master` branch of Clockwork to support Monolog2 / Monolog3 * `AVIF` image support via updates to `getgrav/Image` library + * Upgrade to **Doctrine Collection 2.2** 1. [](#improved) * Updated composer libraries * Updated composer.php binary to `v2.8.1` diff --git a/composer.json b/composer.json index 02950c433f..c9ffb89126 100644 --- a/composer.json +++ b/composer.json @@ -40,7 +40,7 @@ "twig/twig": "^2.1", "monolog/monolog": "^2.0", "doctrine/cache": "^2.2", - "doctrine/collections": "^1.8", + "doctrine/collections": "^2.2", "pimple/pimple": "~3.5.0", "nyholm/psr7-server": "^1.1", "nyholm/psr7": "^1.8", diff --git a/composer.lock b/composer.lock index 5270e5d509..a56f75a3cc 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": "ab43b03988d8dd81b83f75d4ff9b5253", + "content-hash": "55a4b92c7d97394ff5d898440f4e11f4", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -306,32 +306,34 @@ }, { "name": "doctrine/collections", - "version": "1.8.0", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59", + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1.3 || ^8.0" + "doctrine/deprecations": "^1", + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9.0 || ^10.0", - "phpstan/phpstan": "^1.4.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", - "vimeo/psalm": "^4.22" + "doctrine/coding-standard": "^12", + "ext-json": "*", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.11" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + "Doctrine\\Common\\Collections\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -370,9 +372,23 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.8.0" + "source": "https://github.com/doctrine/collections/tree/2.2.2" }, - "time": "2022-09-01T20:12:10+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections", + "type": "tidelift" + } + ], + "time": "2024-04-18T06:56:21+00:00" }, { "name": "doctrine/deprecations", @@ -7342,8 +7358,8 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { - "rockettheme/toolbox": 20, - "itsgoingd/clockwork": 20 + "itsgoingd/clockwork": 20, + "rockettheme/toolbox": 20 }, "prefer-stable": false, "prefer-lowest": false, @@ -7357,7 +7373,7 @@ "ext-libxml": "*", "ext-gd": "*" }, - "platform-dev": [], + "platform-dev": {}, "platform-overrides": { "php": "8.2" }, diff --git a/system/src/Grav/Framework/Flex/FlexIndex.php b/system/src/Grav/Framework/Flex/FlexIndex.php index 39fec18c85..2c87d590d2 100644 --- a/system/src/Grav/Framework/Flex/FlexIndex.php +++ b/system/src/Grav/Framework/Flex/FlexIndex.php @@ -9,6 +9,7 @@ namespace Grav\Framework\Flex; +use Closure; use Exception; use Grav\Common\Debugger; use Grav\Common\File\CompiledJsonFile; @@ -927,4 +928,15 @@ public function getType($prefix = false) return $type . $this->getFlexType(); } + + public function findFirst(Closure $p) + { + // TODO: Implement findFirst() method. + } + + public function reduce(Closure $func, mixed $initial = null) + { + // TODO: Implement reduce() method. + } + } From 85c4b8279ee54cbd289632ede503a726d2c8a7ba Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 25 Oct 2024 18:20:41 +0100 Subject: [PATCH 50/54] fixes for PHP 8.4 - Implicitly nullable parameter declarations deprecated --- composer.json | 3 +- composer.lock | 63 ++++++++++++++++++- system/src/Grav/Common/Backup/Backups.php | 2 +- system/src/Grav/Common/Cache.php | 4 +- system/src/Grav/Common/Data/Data.php | 2 +- system/src/Grav/Common/Data/DataInterface.php | 2 +- system/src/Grav/Common/Data/Validation.php | 2 +- system/src/Grav/Common/Debugger.php | 6 +- .../src/Grav/Common/Filesystem/Archiver.php | 6 +- .../Grav/Common/Filesystem/ZipArchiver.php | 6 +- system/src/Grav/Common/Flex/FlexObject.php | 2 +- .../Flex/Types/Pages/PageCollection.php | 4 +- .../Common/Flex/Types/Pages/PageIndex.php | 12 ++-- .../Common/Flex/Types/Pages/PageObject.php | 4 +- .../Types/Pages/Traits/PageRoutableTrait.php | 2 +- .../Types/UserGroups/UserGroupCollection.php | 2 +- .../Flex/Types/UserGroups/UserGroupObject.php | 2 +- .../Types/Users/Storage/UserFileStorage.php | 2 +- .../Common/Flex/Types/Users/UserObject.php | 4 +- system/src/Grav/Common/Grav.php | 6 +- system/src/Grav/Common/HTTP/Client.php | 2 +- system/src/Grav/Common/HTTP/Response.php | 4 +- system/src/Grav/Common/Helpers/Excerpts.php | 10 +-- system/src/Grav/Common/Helpers/YamlLinter.php | 2 +- system/src/Grav/Common/Iterator.php | 4 +- system/src/Grav/Common/Language/Language.php | 6 +- .../Interfaces/MediaCollectionInterface.php | 2 +- .../Media/Interfaces/MediaUploadInterface.php | 8 +-- .../Common/Media/Traits/MediaUploadTrait.php | 10 +-- system/src/Grav/Common/Page/Collection.php | 2 +- .../Page/Interfaces/PageRoutableInterface.php | 2 +- .../Page/Interfaces/PagesSourceInterface.php | 2 +- .../Grav/Common/Page/Markdown/Excerpts.php | 2 +- system/src/Grav/Common/Page/Media.php | 2 +- .../Grav/Common/Page/Medium/AbstractMedia.php | 2 +- .../Grav/Common/Page/Medium/ImageMedium.php | 2 +- system/src/Grav/Common/Page/Medium/Medium.php | 2 +- .../Grav/Common/Page/Medium/MediumFactory.php | 2 +- .../Common/Page/Medium/VectorImageMedium.php | 2 +- system/src/Grav/Common/Page/Page.php | 2 +- system/src/Grav/Common/Page/Pages.php | 8 +-- system/src/Grav/Common/Plugin.php | 4 +- .../Common/Processors/InitializeProcessor.php | 2 +- system/src/Grav/Common/Scheduler/Job.php | 4 +- .../src/Grav/Common/Scheduler/Scheduler.php | 2 +- system/src/Grav/Common/Security.php | 8 +-- .../Common/Twig/Extension/GravExtension.php | 2 +- .../Grav/Common/Twig/Node/TwigNodeSwitch.php | 2 +- .../Common/Twig/Node/TwigNodeTryCatch.php | 2 +- .../User/Interfaces/AuthorizeInterface.php | 2 +- .../src/Grav/Common/User/Traits/UserTrait.php | 2 +- system/src/Grav/Common/Utils.php | 6 +- .../Console/Application/PluginApplication.php | 2 +- .../src/Grav/Console/Cli/InstallCommand.php | 2 +- system/src/Grav/Console/ConsoleTrait.php | 2 +- .../src/Grav/Console/Gpm/InstallCommand.php | 2 +- system/src/Grav/Framework/Acl/Access.php | 6 +- system/src/Grav/Framework/Acl/Permissions.php | 2 +- .../Collection/AbstractIndexCollection.php | 4 +- .../Framework/Collection/FileCollection.php | 4 +- .../Relationships/RelationshipInterface.php | 4 +- .../ToManyRelationshipInterface.php | 4 +- .../ToOneRelationshipInterface.php | 6 +- .../Traits/ControllerResponseTrait.php | 8 +-- .../src/Grav/Framework/File/AbstractFile.php | 2 +- .../File/Formatter/AbstractFormatter.php | 2 +- .../File/Formatter/MarkdownFormatter.php | 2 +- .../Grav/Framework/Filesystem/Filesystem.php | 6 +- system/src/Grav/Framework/Flex/Flex.php | 10 +-- .../Grav/Framework/Flex/FlexCollection.php | 16 ++--- .../src/Grav/Framework/Flex/FlexDirectory.php | 30 ++++----- .../Grav/Framework/Flex/FlexDirectoryForm.php | 4 +- system/src/Grav/Framework/Flex/FlexForm.php | 4 +- system/src/Grav/Framework/Flex/FlexIndex.php | 22 +++---- system/src/Grav/Framework/Flex/FlexObject.php | 28 ++++----- .../Interfaces/FlexAuthorizeInterface.php | 2 +- .../Interfaces/FlexCollectionInterface.php | 8 +-- .../Interfaces/FlexDirectoryInterface.php | 24 +++---- .../Flex/Interfaces/FlexIndexInterface.php | 4 +- .../Flex/Interfaces/FlexInterface.php | 6 +- .../Flex/Interfaces/FlexObjectInterface.php | 10 +-- .../Flex/Interfaces/FlexStorageInterface.php | 6 +- .../Interfaces/FlexTranslateInterface.php | 4 +- .../Framework/Flex/Pages/FlexPageObject.php | 4 +- .../Flex/Pages/Traits/PageAuthorsTrait.php | 2 +- .../Flex/Pages/Traits/PageLegacyTrait.php | 2 +- .../Flex/Pages/Traits/PageRoutableTrait.php | 2 +- .../Flex/Pages/Traits/PageTranslateTrait.php | 8 +-- .../Framework/Flex/Storage/FileStorage.php | 2 +- .../Framework/Flex/Storage/FolderStorage.php | 6 +- .../Framework/Flex/Storage/SimpleStorage.php | 6 +- .../Flex/Traits/FlexAuthorizeTrait.php | 2 +- .../Framework/Flex/Traits/FlexMediaTrait.php | 6 +- system/src/Grav/Framework/Form/FormFlash.php | 14 ++--- .../Form/Interfaces/FormFlashInterface.php | 6 +- .../Form/Interfaces/FormInterface.php | 2 +- .../Grav/Framework/Form/Traits/FormTrait.php | 6 +- .../Framework/Interfaces/RenderInterface.php | 2 +- .../Collection/ObjectExpressionVisitor.php | 2 +- .../Pagination/AbstractPagination.php | 20 +++--- .../Interfaces/PaginationInterface.php | 10 +-- .../Grav/Framework/Pagination/Pagination.php | 2 +- system/src/Grav/Framework/Psr7/Response.php | 4 +- system/src/Grav/Framework/Psr7/Uri.php | 2 +- .../Relationships/ToManyRelationship.php | 8 +-- .../Relationships/ToOneRelationship.php | 12 ++-- .../Exception/InvalidArgumentException.php | 2 +- .../Exception/NotFoundException.php | 2 +- .../Exception/PageExpiredException.php | 2 +- .../Exception/RequestException.php | 2 +- .../RequestHandler/RequestHandler.php | 2 +- system/src/Grav/Framework/Route/Route.php | 2 +- .../src/Grav/Framework/Session/Messages.php | 6 +- system/src/Grav/Framework/Session/Session.php | 2 +- system/src/Grav/Framework/Uri/Uri.php | 2 +- system/src/Grav/Installer/VersionUpdater.php | 6 +- system/src/Grav/Installer/Versions.php | 2 +- 117 files changed, 353 insertions(+), 293 deletions(-) diff --git a/composer.json b/composer.json index c9ffb89126..fd41e78d56 100644 --- a/composer.json +++ b/composer.json @@ -72,7 +72,8 @@ "phpunit/php-code-coverage": "~9.2", "getgrav/markdowndocs": "^2.0", "codeception/module-asserts": "*", - "codeception/module-phpbrowser": "*" + "codeception/module-phpbrowser": "*", + "rector/rector": "^1.2" }, "repositories": [ { diff --git a/composer.lock b/composer.lock index a56f75a3cc..47593206c1 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": "55a4b92c7d97394ff5d898440f4e11f4", + "content-hash": "93cb46c384939d2a4edb42a301745aeb", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -6077,6 +6077,65 @@ }, "time": "2024-06-10T01:18:23+00:00" }, + { + "name": "rector/rector", + "version": "1.2.8", + "source": { + "type": "git", + "url": "https://github.com/rectorphp/rector.git", + "reference": "05755bf43617449c08ee8e50fb840c85ad3b1240" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/05755bf43617449c08ee8e50fb840c85ad3b1240", + "reference": "05755bf43617449c08ee8e50fb840c85ad3b1240", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "phpstan/phpstan": "^1.12.5" + }, + "conflict": { + "rector/rector-doctrine": "*", + "rector/rector-downgrade-php": "*", + "rector/rector-phpunit": "*", + "rector/rector-symfony": "*" + }, + "suggest": { + "ext-dom": "To manipulate phpunit.xml via the custom-rule command" + }, + "bin": [ + "bin/rector" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Instant Upgrade and Automated Refactoring of any PHP code", + "keywords": [ + "automation", + "dev", + "migration", + "refactoring" + ], + "support": { + "issues": "https://github.com/rectorphp/rector/issues", + "source": "https://github.com/rectorphp/rector/tree/1.2.8" + }, + "funding": [ + { + "url": "https://github.com/tomasvotruba", + "type": "github" + } + ], + "time": "2024-10-18T11:54:27+00:00" + }, { "name": "sebastian/cli-parser", "version": "1.0.2", @@ -7373,7 +7432,7 @@ "ext-libxml": "*", "ext-gd": "*" }, - "platform-dev": {}, + "platform-dev": [], "platform-overrides": { "php": "8.2" }, diff --git a/system/src/Grav/Common/Backup/Backups.php b/system/src/Grav/Common/Backup/Backups.php index dd2cf379c9..d9a1531a6a 100644 --- a/system/src/Grav/Common/Backup/Backups.php +++ b/system/src/Grav/Common/Backup/Backups.php @@ -194,7 +194,7 @@ public static function getAvailableBackups($force = false) * @param callable|null $status * @return string|null */ - public static function backup($id = 0, callable $status = null) + public static function backup($id = 0, ?callable $status = null) { $grav = Grav::instance(); diff --git a/system/src/Grav/Common/Cache.php b/system/src/Grav/Common/Cache.php index 1af5d4c0b1..4d70089ca7 100644 --- a/system/src/Grav/Common/Cache.php +++ b/system/src/Grav/Common/Cache.php @@ -241,7 +241,7 @@ public function getCacheStatus() * @throws \RedisException * @throws \Symfony\Component\Cache\Exception\CacheException */ - public function getCacheAdapter(string $namespace = null, int $defaultLifetime = null): AdapterInterface + public function getCacheAdapter(?string $namespace = null, ?int $defaultLifetime = null): AdapterInterface { $setting = $this->driver_setting ?? 'auto'; $driver_name = 'file'; @@ -333,7 +333,7 @@ public function getCacheAdapter(string $namespace = null, int $defaultLifetime = * * @return CacheProvider The cache driver to use */ - public function getCacheDriver(AdapterInterface $adapter = null) + public function getCacheDriver(?AdapterInterface $adapter = null) { if (null === $adapter) { $adapter = $this->getCacheAdapter(); diff --git a/system/src/Grav/Common/Data/Data.php b/system/src/Grav/Common/Data/Data.php index 95944b2faa..0900a74306 100644 --- a/system/src/Grav/Common/Data/Data.php +++ b/system/src/Grav/Common/Data/Data.php @@ -323,7 +323,7 @@ public function raw() * @param FileInterface|null $storage Optionally enter a new storage. * @return FileInterface|null */ - public function file(FileInterface $storage = null) + public function file(?FileInterface $storage = null) { if ($storage) { $this->storage = $storage; diff --git a/system/src/Grav/Common/Data/DataInterface.php b/system/src/Grav/Common/Data/DataInterface.php index 52469b18fd..a34fe69ad8 100644 --- a/system/src/Grav/Common/Data/DataInterface.php +++ b/system/src/Grav/Common/Data/DataInterface.php @@ -80,5 +80,5 @@ public function save(); * @param FileInterface|null $storage Optionally enter a new storage. * @return FileInterface */ - public function file(FileInterface $storage = null); + public function file(?FileInterface $storage = null); } diff --git a/system/src/Grav/Common/Data/Validation.php b/system/src/Grav/Common/Data/Validation.php index d0f5bff8a4..1b799ad877 100644 --- a/system/src/Grav/Common/Data/Validation.php +++ b/system/src/Grav/Common/Data/Validation.php @@ -162,7 +162,7 @@ public static function checkSafety($value, array $field) * @param UserInterface|null $user * @return bool */ - public static function authorize($action, UserInterface $user = null) + public static function authorize($action, ?UserInterface $user = null) { if (!$user) { return false; diff --git a/system/src/Grav/Common/Debugger.php b/system/src/Grav/Common/Debugger.php index 6d412c36c5..c732cbeafc 100644 --- a/system/src/Grav/Common/Debugger.php +++ b/system/src/Grav/Common/Debugger.php @@ -544,7 +544,7 @@ public function getData() * @param string|null $message * @return mixed */ - public function profile(callable $callable, string $message = null) + public function profile(callable $callable, ?string $message = null) { $this->startProfiling(); $response = $callable(); @@ -585,7 +585,7 @@ public function startProfiling(): void * @param string|null $message * @return array|null */ - public function stopProfiling(string $message = null): ?array + public function stopProfiling(?string $message = null): ?array { $timings = null; if ($this->enabled && extension_loaded('tideways_xhprof')) { @@ -776,7 +776,7 @@ public function addMessage($message, $label = 'info', $isString = true) * @param float|null $time * @return $this */ - public function addEvent(string $name, $event, EventDispatcherInterface $dispatcher, float $time = null) + public function addEvent(string $name, $event, EventDispatcherInterface $dispatcher, ?float $time = null) { if ($this->enabled && $this->clockwork) { $time = $time ?? microtime(true); diff --git a/system/src/Grav/Common/Filesystem/Archiver.php b/system/src/Grav/Common/Filesystem/Archiver.php index bf07791d47..a69b12ab3b 100644 --- a/system/src/Grav/Common/Filesystem/Archiver.php +++ b/system/src/Grav/Common/Filesystem/Archiver.php @@ -75,21 +75,21 @@ public function setOptions($options) * @param callable|null $status * @return $this */ - abstract public function compress($folder, callable $status = null); + abstract public function compress($folder, ?callable $status = null); /** * @param string $destination * @param callable|null $status * @return $this */ - abstract public function extract($destination, callable $status = null); + abstract public function extract($destination, ?callable $status = null); /** * @param array $folders * @param callable|null $status * @return $this */ - abstract public function addEmptyFolders($folders, callable $status = null); + abstract public function addEmptyFolders($folders, ?callable $status = null); /** * @param string $rootPath diff --git a/system/src/Grav/Common/Filesystem/ZipArchiver.php b/system/src/Grav/Common/Filesystem/ZipArchiver.php index 8e61a5d4f6..82b5a769c2 100644 --- a/system/src/Grav/Common/Filesystem/ZipArchiver.php +++ b/system/src/Grav/Common/Filesystem/ZipArchiver.php @@ -26,7 +26,7 @@ class ZipArchiver extends Archiver * @param callable|null $status * @return $this */ - public function extract($destination, callable $status = null) + public function extract($destination, ?callable $status = null) { $zip = new ZipArchive(); $archive = $zip->open($this->archive_file); @@ -51,7 +51,7 @@ public function extract($destination, callable $status = null) * @param callable|null $status * @return $this */ - public function compress($source, callable $status = null) + public function compress($source, ?callable $status = null) { if (!extension_loaded('zip')) { throw new InvalidArgumentException('ZipArchiver: Zip PHP module not installed...'); @@ -105,7 +105,7 @@ public function compress($source, callable $status = null) * @param callable|null $status * @return $this */ - public function addEmptyFolders($folders, callable $status = null) + public function addEmptyFolders($folders, ?callable $status = null) { if (!extension_loaded('zip')) { throw new InvalidArgumentException('ZipArchiver: Zip PHP module not installed...'); diff --git a/system/src/Grav/Common/Flex/FlexObject.php b/system/src/Grav/Common/Flex/FlexObject.php index 870bc05fc0..3ec49efa77 100644 --- a/system/src/Grav/Common/Flex/FlexObject.php +++ b/system/src/Grav/Common/Flex/FlexObject.php @@ -32,7 +32,7 @@ abstract class FlexObject extends \Grav\Framework\Flex\FlexObject implements Med * {@inheritdoc} * @see FlexObjectInterface::getFormValue() */ - public function getFormValue(string $name, $default = null, string $separator = null) + public function getFormValue(string $name, $default = null, ?string $separator = null) { $value = $this->getNestedProperty($name, null, $separator); diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php b/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php index bf1e2d55b9..a061f86eff 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php @@ -766,7 +766,7 @@ public function withPages(bool $bool = true) * @return static * @phpstan-return static */ - public function withTranslation(bool $bool = true, string $languageCode = null, bool $fallback = null) + public function withTranslation(bool $bool = true, ?string $languageCode = null, ?bool $fallback = null) { $list = array_keys(array_filter($this->call('hasTranslation', [$languageCode, $fallback]))); @@ -778,7 +778,7 @@ public function withTranslation(bool $bool = true, string $languageCode = null, * @param bool|null $fallback * @return PageIndex */ - public function withTranslated(string $languageCode = null, bool $fallback = null) + public function withTranslated(?string $languageCode = null, ?bool $fallback = null) { return $this->getIndex()->withTranslated($languageCode, $fallback); } diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php b/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php index f0b45e1592..82e8501ea6 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php @@ -66,7 +66,7 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface * @param array $entries * @param FlexDirectory|null $directory */ - public function __construct(array $entries = [], FlexDirectory $directory = null) + public function __construct(array $entries = [], ?FlexDirectory $directory = null) { // Remove root if it's taken. if (isset($entries[''])) { @@ -181,7 +181,7 @@ public function getRoot() * @return static * @phpstan-return static */ - public function withTranslated(string $languageCode = null, bool $fallback = null) + public function withTranslated(?string $languageCode = null, ?bool $fallback = null) { if (null === $languageCode) { return $this; @@ -413,7 +413,7 @@ public function getLevelListing(array $options): array * @return static * @phpstan-return static */ - protected function createFrom(array $entries, string $keyField = null) + protected function createFrom(array $entries, ?string $keyField = null) { /** @var static $index */ $index = parent::createFrom($entries, $keyField); @@ -428,7 +428,7 @@ protected function createFrom(array $entries, string $keyField = null) * @param bool|null $fallback * @return array */ - protected function translateEntries(array $entries, string $lang, bool $fallback = null): array + protected function translateEntries(array $entries, string $lang, ?bool $fallback = null): array { $languages = $this->getFallbackLanguages($lang, $fallback); foreach ($entries as $key => &$entry) { @@ -493,7 +493,7 @@ protected function getLanguageTemplates(string $key): array * @param bool|null $fallback * @return array */ - protected function getFallbackLanguages(string $languageCode = null, bool $fallback = null): array + protected function getFallbackLanguages(?string $languageCode = null, ?bool $fallback = null): array { $fallback = $fallback ?? true; if (!$fallback && null !== $languageCode) { @@ -781,7 +781,7 @@ protected static function getIndexFile(FlexStorageInterface $storage) * @param int|null $timestamp * @return string|null */ - private function jsDate(int $timestamp = null): ?string + private function jsDate(?int $timestamp = null): ?string { if (!$timestamp) { return null; diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php index 9f71df72e8..2af4ee7c85 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php @@ -129,7 +129,7 @@ public function getRoute($query = []): ?Route /** * @inheritdoc PageInterface */ - public function getFormValue(string $name, $default = null, string $separator = null) + public function getFormValue(string $name, $default = null, ?string $separator = null) { $test = new stdClass(); @@ -261,7 +261,7 @@ protected function onAfterSave(array $variables): void /** * @param UserInterface|null $user */ - public function check(UserInterface $user = null): void + public function check(?UserInterface $user = null): void { parent::check($user); diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php index 2cfe450208..8aeeed136e 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php +++ b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php @@ -32,7 +32,7 @@ trait PageRoutableTrait * @return PageInterface|null the parent page object if it exists. */ - public function parent(PageInterface $var = null) + public function parent(?PageInterface $var = null) { if (Utils::isAdminPlugin()) { return parent::parent(); diff --git a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php index daaa942368..f2c8591b0a 100644 --- a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php +++ b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php @@ -38,7 +38,7 @@ public static function getCachedMethods(): array * @param string|null $scope * @return bool|null */ - public function authorize(string $action, string $scope = null): ?bool + public function authorize(string $action, ?string $scope = null): ?bool { $authorized = null; /** @var UserGroupObject $object */ diff --git a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php index c8da8a2a17..9e753d21b8 100644 --- a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php +++ b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php @@ -57,7 +57,7 @@ public function getTitle(): string * @param string|null $scope * @return bool|null */ - public function authorize(string $action, string $scope = null): ?bool + public function authorize(string $action, ?string $scope = null): ?bool { if ($scope === 'test') { $scope = null; diff --git a/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php b/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php index 01e3f967a5..771210e1ba 100644 --- a/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php +++ b/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php @@ -23,7 +23,7 @@ class UserFileStorage extends FileStorage * {@inheritdoc} * @see FlexStorageInterface::getMediaPath() */ - public function getMediaPath(string $key = null): ?string + public function getMediaPath(?string $key = null): ?string { // There is no media support for file storage (fallback to common location). return null; diff --git a/system/src/Grav/Common/Flex/Types/Users/UserObject.php b/system/src/Grav/Common/Flex/Types/Users/UserObject.php index c59bfb4ec7..1a3eb3fa27 100644 --- a/system/src/Grav/Common/Flex/Types/Users/UserObject.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserObject.php @@ -270,7 +270,7 @@ public function isMyself(?UserInterface $user = null): bool * @param string|null $scope * @return bool|null */ - public function authorize(string $action, string $scope = null): ?bool + public function authorize(string $action, ?string $scope = null): ?bool { if ($scope === 'test') { // Special scope to test user permissions. @@ -557,7 +557,7 @@ public function raw() * @param FileInterface|null $storage Optionally enter a new storage. * @return FileInterface|null */ - public function file(FileInterface $storage = null) + public function file(?FileInterface $storage = null) { if (null !== $storage) { $this->_storage = $storage; diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index 5f879ca534..f9c9b00fb4 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -200,7 +200,7 @@ public function isSetup(): bool * @param string|null $environment * @return $this */ - public function setup(string $environment = null) + public function setup(?string $environment = null) { if (isset($this->initialized['setup'])) { return $this; @@ -522,7 +522,7 @@ public function redirectLangSafe($route, $code = null): void * @param ResponseInterface|null $response * @return void */ - public function header(ResponseInterface $response = null): void + public function header(?ResponseInterface $response = null): void { if (null === $response) { /** @var PageInterface $page */ @@ -585,7 +585,7 @@ public function dispatchEvent($event) * @param Event|null $event * @return Event */ - public function fireEvent($eventName, Event $event = null) + public function fireEvent($eventName, ?Event $event = null) { /** @var EventDispatcherInterface $events */ $events = $this['events']; diff --git a/system/src/Grav/Common/HTTP/Client.php b/system/src/Grav/Common/HTTP/Client.php index 02a420b84b..4c9a79616a 100644 --- a/system/src/Grav/Common/HTTP/Client.php +++ b/system/src/Grav/Common/HTTP/Client.php @@ -25,7 +25,7 @@ class Client 'User-Agent' => 'Grav CMS' ]; - public static function getClient(array $overrides = [], int $connections = 6, callable $callback = null): HttpClientInterface + public static function getClient(array $overrides = [], int $connections = 6, ?callable $callback = null): HttpClientInterface { $config = Grav::instance()['config']; $options = static::getOptions(); diff --git a/system/src/Grav/Common/HTTP/Response.php b/system/src/Grav/Common/HTTP/Response.php index f05af0e5e6..ca3a6efba6 100644 --- a/system/src/Grav/Common/HTTP/Response.php +++ b/system/src/Grav/Common/HTTP/Response.php @@ -41,7 +41,7 @@ class Response * @return string * @throws TransportExceptionInterface|RedirectionExceptionInterface|ServerExceptionInterface|TransportExceptionInterface|ClientExceptionInterface */ - public static function get(string $uri = '', array $overrides = [], callable $callback = null): string + public static function get(string $uri = '', array $overrides = [], ?callable $callback = null): string { $response = static::request('GET', $uri, $overrides, $callback); return $response->getContent(); @@ -58,7 +58,7 @@ public static function get(string $uri = '', array $overrides = [], callable $ca * @return ResponseInterface * @throws TransportExceptionInterface */ - public static function request(string $method, string $uri, array $overrides = [], callable $callback = null): ResponseInterface + public static function request(string $method, string $uri, array $overrides = [], ?callable $callback = null): ResponseInterface { if (empty($method)) { throw new TransportException('missing method (GET, PUT, etc.)'); diff --git a/system/src/Grav/Common/Helpers/Excerpts.php b/system/src/Grav/Common/Helpers/Excerpts.php index 254edc4974..77726d3022 100644 --- a/system/src/Grav/Common/Helpers/Excerpts.php +++ b/system/src/Grav/Common/Helpers/Excerpts.php @@ -30,7 +30,7 @@ class Excerpts * @param PageInterface|null $page Page, defaults to the current page object * @return string Returns final HTML string */ - public static function processImageHtml($html, PageInterface $page = null) + public static function processImageHtml($html, ?PageInterface $page = null) { $excerpt = static::getExcerptFromHtml($html, 'img'); if (null === $excerpt) { @@ -61,7 +61,7 @@ public static function processImageHtml($html, PageInterface $page = null) * @param PageInterface|null $page Page, defaults to the current page object * @return string Returns final HTML string */ - public static function processLinkHtml($html, PageInterface $page = null) + public static function processLinkHtml($html, ?PageInterface $page = null) { $excerpt = static::getExcerptFromHtml($html, 'a'); if (null === $excerpt) { @@ -158,7 +158,7 @@ public static function getHtmlFromExcerpt($excerpt) * @param string $type * @return mixed */ - public static function processLinkExcerpt($excerpt, PageInterface $page = null, $type = 'link') + public static function processLinkExcerpt($excerpt, ?PageInterface $page = null, $type = 'link') { $excerpts = new ExcerptsObject($page); @@ -172,7 +172,7 @@ public static function processLinkExcerpt($excerpt, PageInterface $page = null, * @param PageInterface|null $page Page, defaults to the current page object * @return array */ - public static function processImageExcerpt(array $excerpt, PageInterface $page = null) + public static function processImageExcerpt(array $excerpt, ?PageInterface $page = null) { $excerpts = new ExcerptsObject($page); @@ -187,7 +187,7 @@ public static function processImageExcerpt(array $excerpt, PageInterface $page = * @param PageInterface|null $page Page, defaults to the current page object * @return Medium|Link */ - public static function processMediaActions($medium, $url, PageInterface $page = null) + public static function processMediaActions($medium, $url, ?PageInterface $page = null) { $excerpts = new ExcerptsObject($page); diff --git a/system/src/Grav/Common/Helpers/YamlLinter.php b/system/src/Grav/Common/Helpers/YamlLinter.php index 1dee4958ae..53fe4f9dc3 100644 --- a/system/src/Grav/Common/Helpers/YamlLinter.php +++ b/system/src/Grav/Common/Helpers/YamlLinter.php @@ -29,7 +29,7 @@ class YamlLinter * @param string|null $folder * @return array */ - public static function lint(string $folder = null) + public static function lint(?string $folder = null) { if (null !== $folder) { $folder = $folder ?: GRAV_ROOT; diff --git a/system/src/Grav/Common/Iterator.php b/system/src/Grav/Common/Iterator.php index a60c74fb41..51ed5d1856 100644 --- a/system/src/Grav/Common/Iterator.php +++ b/system/src/Grav/Common/Iterator.php @@ -230,7 +230,7 @@ public function append($items) * * @return $this */ - public function filter(callable $callback = null) + public function filter(?callable $callback = null) { foreach ($this->items as $key => $value) { if ((!$callback && !(bool)$value) || ($callback && !$callback($value, $key))) { @@ -250,7 +250,7 @@ public function filter(callable $callback = null) * @return $this|array * */ - public function sort(callable $callback = null, $desc = false) + public function sort(?callable $callback = null, $desc = false) { if (!$callback || !is_callable($callback)) { return $this; diff --git a/system/src/Grav/Common/Language/Language.php b/system/src/Grav/Common/Language/Language.php index f2f3c1baaa..0e6096c690 100644 --- a/system/src/Grav/Common/Language/Language.php +++ b/system/src/Grav/Common/Language/Language.php @@ -358,7 +358,7 @@ public function getPageExtensions($fileExtension = null) * @param bool $assoc Return values in ['en' => '.en.md', ...] format. * @return array Key is the language code, value is the file extension to be used. */ - public function getFallbackPageExtensions(string $fileExtension = null, string $languageCode = null, bool $assoc = false) + public function getFallbackPageExtensions(?string $fileExtension = null, ?string $languageCode = null, bool $assoc = false) { $fileExtension = $fileExtension ?: CONTENT_EXT; $key = $fileExtension . '-' . ($languageCode ?? 'default') . '-' . (int)$assoc; @@ -411,7 +411,7 @@ public function resetFallbackPageExtensions() * @param bool $includeDefault If true, list contains '', which can be used for default * @return array */ - public function getFallbackLanguages(string $languageCode = null, bool $includeDefault = false) + public function getFallbackLanguages(?string $languageCode = null, bool $includeDefault = false) { // Handle default. if ($languageCode === '' || !$this->enabled()) { @@ -489,7 +489,7 @@ public function validate($lang) * @param bool $html_out * @return string|string[] */ - public function translate($args, array $languages = null, $array_support = false, $html_out = false) + public function translate($args, ?array $languages = null, $array_support = false, $html_out = false) { if (is_array($args)) { $lookup = array_shift($args); diff --git a/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php index a326e12cbd..58452f060c 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php @@ -105,7 +105,7 @@ public function createFromFile($file, array $params = []); * @param Blueprint|null $blueprint * @return Medium|null */ - public function createFromArray(array $items = [], Blueprint $blueprint = null); + public function createFromArray(array $items = [], ?Blueprint $blueprint = null); /** * @param MediaObjectInterface $mediaObject diff --git a/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php index 7d0d18894c..f4a70001a7 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php @@ -32,7 +32,7 @@ interface MediaUploadInterface * @return string * @throws RuntimeException */ - public function checkUploadedFile(UploadedFileInterface $uploadedFile, string $filename = null, array $settings = null): string; + public function checkUploadedFile(UploadedFileInterface $uploadedFile, ?string $filename = null, ?array $settings = null): string; /** * Copy uploaded file to the media collection. @@ -51,7 +51,7 @@ public function checkUploadedFile(UploadedFileInterface $uploadedFile, string $f * @return void * @throws RuntimeException */ - public function copyUploadedFile(UploadedFileInterface $uploadedFile, string $filename, array $settings = null): void; + public function copyUploadedFile(UploadedFileInterface $uploadedFile, string $filename, ?array $settings = null): void; /** * Delete real file from the media collection. @@ -60,7 +60,7 @@ public function copyUploadedFile(UploadedFileInterface $uploadedFile, string $fi * @param array|null $settings * @return void */ - public function deleteFile(string $filename, array $settings = null): void; + public function deleteFile(string $filename, ?array $settings = null): void; /** * Rename file inside the media collection. @@ -69,5 +69,5 @@ public function deleteFile(string $filename, array $settings = null): void; * @param string $to * @param array|null $settings */ - public function renameFile(string $from, string $to, array $settings = null): void; + public function renameFile(string $from, string $to, ?array $settings = null): void; } diff --git a/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php b/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php index 2b1c3bbeec..45d5208af0 100644 --- a/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php +++ b/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php @@ -71,7 +71,7 @@ public function createFromUploadedFile(UploadedFileInterface $uploadedFile, arra * @return string * @throws RuntimeException */ - public function checkUploadedFile(UploadedFileInterface $uploadedFile, string $filename = null, array $settings = null): string + public function checkUploadedFile(UploadedFileInterface $uploadedFile, ?string $filename = null, ?array $settings = null): string { // Check if there is an upload error. switch ($uploadedFile->getError()) { @@ -115,7 +115,7 @@ public function checkUploadedFile(UploadedFileInterface $uploadedFile, string $f * @return string * @throws RuntimeException */ - public function checkFileMetadata(array $metadata, string $filename = null, array $settings = null): string + public function checkFileMetadata(array $metadata, ?string $filename = null, ?array $settings = null): string { // Add the defaults to the settings. $settings = $this->getUploadSettings($settings); @@ -252,7 +252,7 @@ public function checkFileMetadata(array $metadata, string $filename = null, arra * @return void * @throws RuntimeException */ - public function copyUploadedFile(UploadedFileInterface $uploadedFile, string $filename, array $settings = null): void + public function copyUploadedFile(UploadedFileInterface $uploadedFile, string $filename, ?array $settings = null): void { // Add the defaults to the settings. $settings = $this->getUploadSettings($settings); @@ -329,7 +329,7 @@ public function copyUploadedFile(UploadedFileInterface $uploadedFile, string $fi * @return void * @throws RuntimeException */ - public function deleteFile(string $filename, array $settings = null): void + public function deleteFile(string $filename, ?array $settings = null): void { // Add the defaults to the settings. $settings = $this->getUploadSettings($settings); @@ -371,7 +371,7 @@ public function deleteFile(string $filename, array $settings = null): void * @param string $to * @param array|null $settings */ - public function renameFile(string $from, string $to, array $settings = null): void + public function renameFile(string $from, string $to, ?array $settings = null): void { // Add the defaults to the settings. $settings = $this->getUploadSettings($settings); diff --git a/system/src/Grav/Common/Page/Collection.php b/system/src/Grav/Common/Page/Collection.php index 8a625558c7..90d3346fd9 100644 --- a/system/src/Grav/Common/Page/Collection.php +++ b/system/src/Grav/Common/Page/Collection.php @@ -43,7 +43,7 @@ class Collection extends Iterator implements PageCollectionInterface * @param array $params * @param Pages|null $pages */ - public function __construct($items = [], array $params = [], Pages $pages = null) + public function __construct($items = [], array $params = [], ?Pages $pages = null) { parent::__construct($items); diff --git a/system/src/Grav/Common/Page/Interfaces/PageRoutableInterface.php b/system/src/Grav/Common/Page/Interfaces/PageRoutableInterface.php index 29002660c1..b2f6d409cf 100644 --- a/system/src/Grav/Common/Page/Interfaces/PageRoutableInterface.php +++ b/system/src/Grav/Common/Page/Interfaces/PageRoutableInterface.php @@ -133,7 +133,7 @@ public function folder($var = null); * @param PageInterface|null $var the parent page object * @return PageInterface|null the parent page object if it exists. */ - public function parent(PageInterface $var = null); + public function parent(?PageInterface $var = null); /** * Gets the top parent object for this page. Can return page itself. diff --git a/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php b/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php index d28f103f99..467d42a14f 100644 --- a/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php +++ b/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php @@ -52,5 +52,5 @@ public function get(string $route): ?PageInterface; * @param array|null $options * @return array */ - public function getChildren(string $route, array $options = null): array; + public function getChildren(string $route, ?array $options = null): array; } diff --git a/system/src/Grav/Common/Page/Markdown/Excerpts.php b/system/src/Grav/Common/Page/Markdown/Excerpts.php index d613c790e7..406b4a4796 100644 --- a/system/src/Grav/Common/Page/Markdown/Excerpts.php +++ b/system/src/Grav/Common/Page/Markdown/Excerpts.php @@ -42,7 +42,7 @@ class Excerpts * @param PageInterface|null $page * @param array|null $config */ - public function __construct(PageInterface $page = null, array $config = null) + public function __construct(?PageInterface $page = null, ?array $config = null) { $this->page = $page ?? Grav::instance()['page'] ?? null; diff --git a/system/src/Grav/Common/Page/Media.php b/system/src/Grav/Common/Page/Media.php index b29bbf3482..6478528e5d 100644 --- a/system/src/Grav/Common/Page/Media.php +++ b/system/src/Grav/Common/Page/Media.php @@ -38,7 +38,7 @@ class Media extends AbstractMedia * @param array|null $media_order * @param bool $load */ - public function __construct($path, array $media_order = null, $load = true) + public function __construct($path, ?array $media_order = null, $load = true) { $this->setPath($path); $this->media_order = $media_order; diff --git a/system/src/Grav/Common/Page/Medium/AbstractMedia.php b/system/src/Grav/Common/Page/Medium/AbstractMedia.php index 906d0447a9..3efe735aca 100644 --- a/system/src/Grav/Common/Page/Medium/AbstractMedia.php +++ b/system/src/Grav/Common/Page/Medium/AbstractMedia.php @@ -229,7 +229,7 @@ public function createFromFile($file, array $params = []) * @param Blueprint|null $blueprint * @return Medium|null */ - public function createFromArray(array $items = [], Blueprint $blueprint = null) + public function createFromArray(array $items = [], ?Blueprint $blueprint = null) { return MediumFactory::fromArray($items, $blueprint); } diff --git a/system/src/Grav/Common/Page/Medium/ImageMedium.php b/system/src/Grav/Common/Page/Medium/ImageMedium.php index 580e9f586b..5539d9fb0d 100644 --- a/system/src/Grav/Common/Page/Medium/ImageMedium.php +++ b/system/src/Grav/Common/Page/Medium/ImageMedium.php @@ -46,7 +46,7 @@ class ImageMedium extends Medium implements ImageMediaInterface, ImageManipulate * @param array $items * @param Blueprint|null $blueprint */ - public function __construct($items = [], Blueprint $blueprint = null) + public function __construct($items = [], ?Blueprint $blueprint = null) { parent::__construct($items, $blueprint); diff --git a/system/src/Grav/Common/Page/Medium/Medium.php b/system/src/Grav/Common/Page/Medium/Medium.php index a17f68a668..ede2a74415 100644 --- a/system/src/Grav/Common/Page/Medium/Medium.php +++ b/system/src/Grav/Common/Page/Medium/Medium.php @@ -43,7 +43,7 @@ class Medium extends Data implements RenderableInterface, MediaFileInterface * @param array $items * @param Blueprint|null $blueprint */ - public function __construct($items = [], Blueprint $blueprint = null) + public function __construct($items = [], ?Blueprint $blueprint = null) { parent::__construct($items, $blueprint); diff --git a/system/src/Grav/Common/Page/Medium/MediumFactory.php b/system/src/Grav/Common/Page/Medium/MediumFactory.php index 0796a8395d..3f555969cb 100644 --- a/system/src/Grav/Common/Page/Medium/MediumFactory.php +++ b/system/src/Grav/Common/Page/Medium/MediumFactory.php @@ -150,7 +150,7 @@ public static function fromUploadedFile(UploadedFileInterface $uploadedFile, arr * @param Blueprint|null $blueprint * @return Medium */ - public static function fromArray(array $items = [], Blueprint $blueprint = null) + public static function fromArray(array $items = [], ?Blueprint $blueprint = null) { $type = $items['type'] ?? null; diff --git a/system/src/Grav/Common/Page/Medium/VectorImageMedium.php b/system/src/Grav/Common/Page/Medium/VectorImageMedium.php index bf0beae4f6..0e5aac1a59 100644 --- a/system/src/Grav/Common/Page/Medium/VectorImageMedium.php +++ b/system/src/Grav/Common/Page/Medium/VectorImageMedium.php @@ -24,7 +24,7 @@ class VectorImageMedium extends StaticImageMedium * @param array $items * @param Blueprint|null $blueprint */ - public function __construct($items = [], Blueprint $blueprint = null) + public function __construct($items = [], ?Blueprint $blueprint = null) { parent::__construct($items, $blueprint); diff --git a/system/src/Grav/Common/Page/Page.php b/system/src/Grav/Common/Page/Page.php index 90b8c05701..2883b6ff8b 100644 --- a/system/src/Grav/Common/Page/Page.php +++ b/system/src/Grav/Common/Page/Page.php @@ -2395,7 +2395,7 @@ public function shouldProcess($process) * @param PageInterface|null $var the parent page object * @return PageInterface|null the parent page object if it exists. */ - public function parent(PageInterface $var = null) + public function parent(?PageInterface $var = null) { if ($var) { $this->parent = $var->path(); diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index 49d0f57c7e..a0b0506dcc 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -645,7 +645,7 @@ public function getCollection(array $params = [], array $context = []) * @param PageInterface|null $self * @return Collection */ - protected function evaluate($value, PageInterface $self = null) + protected function evaluate($value, ?PageInterface $self = null) { // Parse command. if (is_string($value)) { @@ -1160,7 +1160,7 @@ public function blueprints($type) * @param PageInterface|null $current * @return Collection */ - public function all(PageInterface $current = null) + public function all(?PageInterface $current = null) { $all = new Collection(); @@ -1234,7 +1234,7 @@ private static function getParents($rawRoutes) * @param bool $limitLevels * @return array */ - public function getList(PageInterface $current = null, $level = 0, $rawRoutes = false, $showAll = true, $showFullpath = false, $showSlug = false, $showModular = false, $limitLevels = false) + public function getList(?PageInterface $current = null, $level = 0, $rawRoutes = false, $showAll = true, $showFullpath = false, $showSlug = false, $showModular = false, $limitLevels = false) { if (!$current) { if ($level) { @@ -1822,7 +1822,7 @@ public function resetPages(array $pages_dirs): void * @throws RuntimeException * @internal */ - protected function recurse(string $directory, PageInterface $parent = null) + protected function recurse(string $directory, ?PageInterface $parent = null) { $directory = rtrim($directory, DS); $page = new Page; diff --git a/system/src/Grav/Common/Plugin.php b/system/src/Grav/Common/Plugin.php index 7b74c8ffd1..f6235141d3 100644 --- a/system/src/Grav/Common/Plugin.php +++ b/system/src/Grav/Common/Plugin.php @@ -72,7 +72,7 @@ public static function getSubscribedEvents() * @param Grav $grav * @param Config|null $config */ - public function __construct($name, Grav $grav, Config $config = null) + public function __construct($name, Grav $grav, ?Config $config = null) { $this->name = $name; $this->grav = $grav; @@ -414,7 +414,7 @@ public static function saveConfig($name) return true; } - public static function inheritedConfigOption(string $plugin, string $var, PageInterface $page = null, $default = null) + public static function inheritedConfigOption(string $plugin, string $var, ?PageInterface $page = null, $default = null) { if (Utils::isAdminPlugin()) { $page = Grav::instance()['admin']->page() ?? null; diff --git a/system/src/Grav/Common/Processors/InitializeProcessor.php b/system/src/Grav/Common/Processors/InitializeProcessor.php index 2c5035beb6..417f6c5436 100644 --- a/system/src/Grav/Common/Processors/InitializeProcessor.php +++ b/system/src/Grav/Common/Processors/InitializeProcessor.php @@ -415,7 +415,7 @@ protected function initializeUri(Config $config): void $this->stopTimer('_init_uri'); } - protected function handleRedirectRequest(RequestInterface $request, int $code = null): ?ResponseInterface + protected function handleRedirectRequest(RequestInterface $request, ?int $code = null): ?ResponseInterface { if (!in_array($request->getMethod(), ['GET', 'HEAD'])) { return null; diff --git a/system/src/Grav/Common/Scheduler/Job.php b/system/src/Grav/Common/Scheduler/Job.php index 3b119f434d..a5a5e6087d 100644 --- a/system/src/Grav/Common/Scheduler/Job.php +++ b/system/src/Grav/Common/Scheduler/Job.php @@ -188,7 +188,7 @@ public function getId() * @param DateTime|null $date * @return bool */ - public function isDue(DateTime $date = null) + public function isDue(?DateTime $date = null) { // The execution time is being defaulted if not defined if (!$this->executionTime) { @@ -259,7 +259,7 @@ public function runInBackground() * @param callable|null $whenOverlapping A callback to ignore job overlapping * @return self */ - public function onlyOne($tempDir = null, callable $whenOverlapping = null) + public function onlyOne($tempDir = null, ?callable $whenOverlapping = null) { if ($tempDir === null || !is_dir($tempDir)) { $tempDir = $this->tempDir; diff --git a/system/src/Grav/Common/Scheduler/Scheduler.php b/system/src/Grav/Common/Scheduler/Scheduler.php index d3cefb0f36..8e0f9e1d63 100644 --- a/system/src/Grav/Common/Scheduler/Scheduler.php +++ b/system/src/Grav/Common/Scheduler/Scheduler.php @@ -188,7 +188,7 @@ public function addCommand($command, $args = [], $id = null) * @param DateTime|null $runTime Optional, run at specific moment * @param bool $force force run even if not due */ - public function run(DateTime $runTime = null, $force = false) + public function run(?DateTime $runTime = null, $force = false) { $this->loadSavedJobs(); diff --git a/system/src/Grav/Common/Security.php b/system/src/Grav/Common/Security.php index 6fabf4eec3..491a61c01b 100644 --- a/system/src/Grav/Common/Security.php +++ b/system/src/Grav/Common/Security.php @@ -30,7 +30,7 @@ class Security * @param array|null $options * @return string|null */ - public static function detectXssFromSvgFile(string $filepath, array $options = null): ?string + public static function detectXssFromSvgFile(string $filepath, ?array $options = null): ?string { if (file_exists($filepath) && Grav::instance()['config']->get('security.sanitize_svg')) { $content = file_get_contents($filepath); @@ -95,7 +95,7 @@ public static function sanitizeSVG(string $file): void * @param callable|null $status * @return array */ - public static function detectXssFromPages(Pages $pages, $route = true, callable $status = null) + public static function detectXssFromPages(Pages $pages, $route = true, ?callable $status = null) { $routes = $pages->getList(null, 0, true); @@ -145,7 +145,7 @@ public static function detectXssFromPages(Pages $pages, $route = true, callable * @param string $prefix Prefix for returned values. * @return array Returns flatten list of potentially dangerous input values, such as 'data.content'. */ - public static function detectXssFromArray(array $array, string $prefix = '', array $options = null) + public static function detectXssFromArray(array $array, string $prefix = '', ?array $options = null) { if (null === $options) { $options = static::getXssDefaults(); @@ -176,7 +176,7 @@ public static function detectXssFromArray(array $array, string $prefix = '', arr * * Copies the code from: https://github.com/symphonycms/xssfilter/blob/master/extension.driver.php#L138 */ - public static function detectXss($string, array $options = null): ?string + public static function detectXss($string, ?array $options = null): ?string { // Skip any null or non string values if (null === $string || !is_string($string) || empty($string)) { diff --git a/system/src/Grav/Common/Twig/Extension/GravExtension.php b/system/src/Grav/Common/Twig/Extension/GravExtension.php index 3e30a02929..8e159ac865 100644 --- a/system/src/Grav/Common/Twig/Extension/GravExtension.php +++ b/system/src/Grav/Common/Twig/Extension/GravExtension.php @@ -932,7 +932,7 @@ public function translate(Environment $twig, ...$args) * @param bool $html_out * @return string */ - public function translateLanguage($args, array $languages = null, $array_support = false, $html_out = false) + public function translateLanguage($args, ?array $languages = null, $array_support = false, $html_out = false) { /** @var Language $language */ $language = $this->grav['language']; diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php b/system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php index 8dcc9ddb94..b7de4bbef2 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php @@ -26,7 +26,7 @@ class TwigNodeSwitch extends Node * @param int $lineno * @param string|null $tag */ - public function __construct(Node $value, Node $cases, Node $default = null, $lineno = 0, $tag = null) + public function __construct(Node $value, Node $cases, ?Node $default = null, $lineno = 0, $tag = null) { $nodes = ['value' => $value, 'cases' => $cases, 'default' => $default]; $nodes = array_filter($nodes); diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php b/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php index ddaf49d33b..d837861703 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php @@ -26,7 +26,7 @@ class TwigNodeTryCatch extends Node * @param int $lineno * @param string|null $tag */ - public function __construct(Node $try, Node $catch = null, $lineno = 0, $tag = null) + public function __construct(Node $try, ?Node $catch = null, $lineno = 0, $tag = null) { $nodes = ['try' => $try, 'catch' => $catch]; $nodes = array_filter($nodes); diff --git a/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php b/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php index 1045522321..d65c098ce2 100644 --- a/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php +++ b/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php @@ -22,5 +22,5 @@ interface AuthorizeInterface * @param string|null $scope * @return bool|null */ - public function authorize(string $action, string $scope = null): ?bool; + public function authorize(string $action, ?string $scope = null): ?bool; } diff --git a/system/src/Grav/Common/User/Traits/UserTrait.php b/system/src/Grav/Common/User/Traits/UserTrait.php index 8afcac0ac2..085de03eba 100644 --- a/system/src/Grav/Common/User/Traits/UserTrait.php +++ b/system/src/Grav/Common/User/Traits/UserTrait.php @@ -76,7 +76,7 @@ public function authenticate(string $password): bool * @param string|null $scope * @return bool|null */ - public function authorize(string $action, string $scope = null): ?bool + public function authorize(string $action, ?string $scope = null): ?bool { // User needs to be enabled. if ($this->get('state', 'enabled') !== 'enabled') { diff --git a/system/src/Grav/Common/Utils.php b/system/src/Grav/Common/Utils.php index 582fe5e3db..f106a64e7b 100644 --- a/system/src/Grav/Common/Utils.php +++ b/system/src/Grav/Common/Utils.php @@ -1005,7 +1005,7 @@ public static function checkFilename($filename): bool * @param int|null $flags * @return array|string */ - public static function pathinfo($path, int $flags = null) + public static function pathinfo($path, ?int $flags = null) { $path = str_replace(['%2F', '%5C'], ['/', '\\'], rawurlencode($path)); @@ -1618,7 +1618,7 @@ public static function sortArrayByKey($array, $array_key, $direction = SORT_DESC * @return string * @throws RuntimeException */ - public static function getPagePathFromToken($path, PageInterface $page = null) + public static function getPagePathFromToken($path, ?PageInterface $page = null) { return static::getPathFromToken($path, $page); } @@ -1947,7 +1947,7 @@ public static function getSubnet($ip, $prefix = 64) * @param array|null $defaults * @return array */ - public static function getSupportPageTypes(array $defaults = null) + public static function getSupportPageTypes(?array $defaults = null) { $types = Grav::instance()['config']->get('system.pages.types', $defaults); if (!is_array($types)) { diff --git a/system/src/Grav/Console/Application/PluginApplication.php b/system/src/Grav/Console/Application/PluginApplication.php index e748018773..c671b7b6d6 100644 --- a/system/src/Grav/Console/Application/PluginApplication.php +++ b/system/src/Grav/Console/Application/PluginApplication.php @@ -65,7 +65,7 @@ public function getPluginName(): string * @return int * @throws Throwable */ - public function run(InputInterface $input = null, OutputInterface $output = null): int + public function run(?InputInterface $input = null, ?OutputInterface $output = null): int { if (null === $input) { $argv = $_SERVER['argv'] ?? []; diff --git a/system/src/Grav/Console/Cli/InstallCommand.php b/system/src/Grav/Console/Cli/InstallCommand.php index 51fd16c333..fce40a10ef 100644 --- a/system/src/Grav/Console/Cli/InstallCommand.php +++ b/system/src/Grav/Console/Cli/InstallCommand.php @@ -173,7 +173,7 @@ private function gitclone(): int * @param string|null $type * @return int */ - private function symlink(string $name = null, string $type = null): int + private function symlink(?string $name = null, ?string $type = null): int { $io = $this->getIO(); diff --git a/system/src/Grav/Console/ConsoleTrait.php b/system/src/Grav/Console/ConsoleTrait.php index f3728fc38b..a514e88a2a 100644 --- a/system/src/Grav/Console/ConsoleTrait.php +++ b/system/src/Grav/Console/ConsoleTrait.php @@ -140,7 +140,7 @@ final protected function initializeGrav() * @param string|null $code * @return $this */ - final protected function setLanguage(string $code = null) + final protected function setLanguage(?string $code = null) { $this->initializeGrav(); diff --git a/system/src/Grav/Console/Gpm/InstallCommand.php b/system/src/Grav/Console/Gpm/InstallCommand.php index e3bb901f31..adbfea9de9 100644 --- a/system/src/Grav/Console/Gpm/InstallCommand.php +++ b/system/src/Grav/Console/Gpm/InstallCommand.php @@ -573,7 +573,7 @@ private function processGpm(Package $package, bool $is_update = false) * @param string|null $license * @return string|null */ - private function downloadPackage(Package $package, string $license = null) + private function downloadPackage(Package $package, ?string $license = null) { $io = $this->getIO(); diff --git a/system/src/Grav/Framework/Acl/Access.php b/system/src/Grav/Framework/Acl/Access.php index 2355da7cbd..408fa046e3 100644 --- a/system/src/Grav/Framework/Acl/Access.php +++ b/system/src/Grav/Framework/Acl/Access.php @@ -45,7 +45,7 @@ class Access implements JsonSerializable, IteratorAggregate, Countable * @param array|null $rules * @param string $name */ - public function __construct($acl = null, array $rules = null, string $name = '') + public function __construct($acl = null, ?array $rules = null, string $name = '') { $this->name = $name; $this->rules = $rules ?? []; @@ -70,7 +70,7 @@ public function getName(): string * @param string|null $name * @return void */ - public function inherit(Access $parent, string $name = null) + public function inherit(Access $parent, ?string $name = null) { // Remove cached null actions from acl. $acl = $this->getAllActions(); @@ -88,7 +88,7 @@ public function inherit(Access $parent, string $name = null) * @param string|null $scope * @return bool|null */ - public function authorize(string $action, string $scope = null): ?bool + public function authorize(string $action, ?string $scope = null): ?bool { if (null !== $scope) { $action = $scope !== 'test' ? "{$scope}.{$action}" : $action; diff --git a/system/src/Grav/Framework/Acl/Permissions.php b/system/src/Grav/Framework/Acl/Permissions.php index a07f7ebbc5..63c0141c79 100644 --- a/system/src/Grav/Framework/Acl/Permissions.php +++ b/system/src/Grav/Framework/Acl/Permissions.php @@ -156,7 +156,7 @@ public function addTypes(array $types): void * @param array|null $access * @return Access */ - public function getAccess(array $access = null): Access + public function getAccess(?array $access = null): Access { return new Access($access ?? []); } diff --git a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php index 1c2da8cdde..be5d5c5c62 100644 --- a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php @@ -551,14 +551,14 @@ abstract protected function loadElement($key, $value); * @return array * @phpstan-return array */ - abstract protected function loadElements(array $entries = null): array; + abstract protected function loadElements(?array $entries = null): array; /** * @param array|null $entries * @return CollectionInterface * @phpstan-return C */ - abstract protected function loadCollection(array $entries = null): CollectionInterface; + abstract protected function loadCollection(?array $entries = null): CollectionInterface; /** * @param mixed $value diff --git a/system/src/Grav/Framework/Collection/FileCollection.php b/system/src/Grav/Framework/Collection/FileCollection.php index 8fe254d7c1..5ec8fa6c9b 100644 --- a/system/src/Grav/Framework/Collection/FileCollection.php +++ b/system/src/Grav/Framework/Collection/FileCollection.php @@ -66,7 +66,7 @@ public function setNestingLimit($limit = 99) * @param callable|null $filterFunction * @return $this */ - public function setFilter(callable $filterFunction = null) + public function setFilter(?callable $filterFunction = null) { $this->filterFunction = $filterFunction; @@ -88,7 +88,7 @@ public function addFilter(callable $filterFunction) * @param callable|null $objectFunction * @return $this */ - public function setObjectBuilder(callable $objectFunction = null) + public function setObjectBuilder(?callable $objectFunction = null) { $this->createObjectFunction = $objectFunction ?: [$this, 'createObject']; diff --git a/system/src/Grav/Framework/Contracts/Relationships/RelationshipInterface.php b/system/src/Grav/Framework/Contracts/Relationships/RelationshipInterface.php index c0a7edfe40..3e2445f47b 100644 --- a/system/src/Grav/Framework/Contracts/Relationships/RelationshipInterface.php +++ b/system/src/Grav/Framework/Contracts/Relationships/RelationshipInterface.php @@ -53,7 +53,7 @@ public function getParent(): IdentifierInterface; * @return bool * @phpstan-pure */ - public function has(string $id, string $type = null): bool; + public function has(string $id, ?string $type = null): bool; /** * @param T $identifier @@ -72,7 +72,7 @@ public function addIdentifier(IdentifierInterface $identifier): bool; * @param T|null $identifier * @return bool */ - public function removeIdentifier(IdentifierInterface $identifier = null): bool; + public function removeIdentifier(?IdentifierInterface $identifier = null): bool; /** * @return iterable diff --git a/system/src/Grav/Framework/Contracts/Relationships/ToManyRelationshipInterface.php b/system/src/Grav/Framework/Contracts/Relationships/ToManyRelationshipInterface.php index 723bef6905..785928c44a 100644 --- a/system/src/Grav/Framework/Contracts/Relationships/ToManyRelationshipInterface.php +++ b/system/src/Grav/Framework/Contracts/Relationships/ToManyRelationshipInterface.php @@ -25,7 +25,7 @@ public function getNthIdentifier(int $pos): ?IdentifierInterface; * @return T|null * @phpstan-pure */ - public function getIdentifier(string $id, string $type = null): ?IdentifierInterface; + public function getIdentifier(string $id, ?string $type = null): ?IdentifierInterface; /** * @param string $id @@ -33,7 +33,7 @@ public function getIdentifier(string $id, string $type = null): ?IdentifierInter * @return T|null * @phpstan-pure */ - public function getObject(string $id, string $type = null): ?object; + public function getObject(string $id, ?string $type = null): ?object; /** * @param iterable $identifiers diff --git a/system/src/Grav/Framework/Contracts/Relationships/ToOneRelationshipInterface.php b/system/src/Grav/Framework/Contracts/Relationships/ToOneRelationshipInterface.php index 0e6aeb9738..94e969c1cd 100644 --- a/system/src/Grav/Framework/Contracts/Relationships/ToOneRelationshipInterface.php +++ b/system/src/Grav/Framework/Contracts/Relationships/ToOneRelationshipInterface.php @@ -19,7 +19,7 @@ interface ToOneRelationshipInterface extends RelationshipInterface * @return T|null * @phpstan-pure */ - public function getIdentifier(string $id = null, string $type = null): ?IdentifierInterface; + public function getIdentifier(?string $id = null, ?string $type = null): ?IdentifierInterface; /** * @param string|null $id @@ -27,11 +27,11 @@ public function getIdentifier(string $id = null, string $type = null): ?Identifi * @return T|null * @phpstan-pure */ - public function getObject(string $id = null, string $type = null): ?object; + public function getObject(?string $id = null, ?string $type = null): ?object; /** * @param T|null $identifier * @return bool */ - public function replaceIdentifier(IdentifierInterface $identifier = null): bool; + public function replaceIdentifier(?IdentifierInterface $identifier = null): bool; } diff --git a/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php b/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php index 0840283772..a50c6d18bd 100644 --- a/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php +++ b/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php @@ -49,7 +49,7 @@ protected function createDisplayResponse(): ResponseInterface * @param array|null $headers * @return Response */ - protected function createHtmlResponse(string $content, int $code = null, array $headers = null): ResponseInterface + protected function createHtmlResponse(string $content, ?int $code = null, ?array $headers = null): ResponseInterface { $code = $code ?? 200; if ($code < 100 || $code > 599) { @@ -66,7 +66,7 @@ protected function createHtmlResponse(string $content, int $code = null, array $ * @param array|null $headers * @return Response */ - protected function createJsonResponse(array $content, int $code = null, array $headers = null): ResponseInterface + protected function createJsonResponse(array $content, ?int $code = null, ?array $headers = null): ResponseInterface { $code = $code ?? $content['code'] ?? 200; if (null === $code || $code < 100 || $code > 599) { @@ -87,7 +87,7 @@ protected function createJsonResponse(array $content, int $code = null, array $h * @param array|null $options * @return ResponseInterface */ - protected function createDownloadResponse(string $filename, $resource, array $headers = null, array $options = null): ResponseInterface + protected function createDownloadResponse(string $filename, $resource, ?array $headers = null, ?array $options = null): ResponseInterface { // Required for IE, otherwise Content-Disposition may be ignored if (ini_get('zlib.output_compression')) { @@ -134,7 +134,7 @@ protected function createDownloadResponse(string $filename, $resource, array $he * @param int|null $code * @return Response */ - protected function createRedirectResponse(string $url, int $code = null): ResponseInterface + protected function createRedirectResponse(string $url, ?int $code = null): ResponseInterface { if (null === $code || $code < 301 || $code > 307) { $code = (int)$this->getConfig()->get('system.pages.redirect_default_code', 302); diff --git a/system/src/Grav/Framework/File/AbstractFile.php b/system/src/Grav/Framework/File/AbstractFile.php index e81c419ba3..f49112b03f 100644 --- a/system/src/Grav/Framework/File/AbstractFile.php +++ b/system/src/Grav/Framework/File/AbstractFile.php @@ -46,7 +46,7 @@ class AbstractFile implements FileInterface * @param string $filepath * @param Filesystem|null $filesystem */ - public function __construct(string $filepath, Filesystem $filesystem = null) + public function __construct(string $filepath, ?Filesystem $filesystem = null) { $this->filesystem = $filesystem ?? Filesystem::getInstance(); $this->setFilepath($filepath); diff --git a/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php b/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php index 4ab0e62acc..83a444dce0 100644 --- a/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php @@ -106,7 +106,7 @@ public function __unserialize(array $data): void * @param string|null $name Configuration option (optional) * @return mixed */ - protected function getConfig(string $name = null) + protected function getConfig(?string $name = null) { if (null !== $name) { return $this->config[$name] ?? null; diff --git a/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php b/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php index cf16cf7b3e..46976d7319 100644 --- a/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php @@ -23,7 +23,7 @@ class MarkdownFormatter extends AbstractFormatter /** @var FileFormatterInterface */ private $headerFormatter; - public function __construct(array $config = [], FileFormatterInterface $headerFormatter = null) + public function __construct(array $config = [], ?FileFormatterInterface $headerFormatter = null) { $config += [ 'file_extension' => '.md', diff --git a/system/src/Grav/Framework/Filesystem/Filesystem.php b/system/src/Grav/Framework/Filesystem/Filesystem.php index a46ce2a0fe..20b42c8d07 100644 --- a/system/src/Grav/Framework/Filesystem/Filesystem.php +++ b/system/src/Grav/Framework/Filesystem/Filesystem.php @@ -40,7 +40,7 @@ class Filesystem implements FilesystemInterface * @param bool|null $normalize See $this->setNormalization() * @return Filesystem */ - public static function getInstance(bool $normalize = null): Filesystem + public static function getInstance(?bool $normalize = null): Filesystem { if ($normalize === true) { $instance = &static::$safe; @@ -63,7 +63,7 @@ public static function getInstance(bool $normalize = null): Filesystem * @param bool|null $normalize * @internal */ - protected function __construct(bool $normalize = null) + protected function __construct(?bool $normalize = null) { $this->normalize = $normalize; } @@ -78,7 +78,7 @@ protected function __construct(bool $normalize = null) * @param bool|null $normalize * @return Filesystem */ - public function setNormalization(bool $normalize = null): self + public function setNormalization(?bool $normalize = null): self { return static::getInstance($normalize); } diff --git a/system/src/Grav/Framework/Flex/Flex.php b/system/src/Grav/Framework/Flex/Flex.php index c78a42c461..f51a4c84cd 100644 --- a/system/src/Grav/Framework/Flex/Flex.php +++ b/system/src/Grav/Framework/Flex/Flex.php @@ -94,7 +94,7 @@ public function hasDirectory(string $type): bool * @param bool $keepMissing * @return array */ - public function getDirectories(array $types = null, bool $keepMissing = false): array + public function getDirectories(?array $types = null, bool $keepMissing = false): array { if ($types === null) { return $this->types; @@ -125,7 +125,7 @@ public function getDirectory(string $type): ?FlexDirectory * @return FlexCollectionInterface|null * @phpstan-return FlexCollectionInterface|null */ - public function getCollection(string $type, array $keys = null, string $keyField = null): ?FlexCollectionInterface + public function getCollection(string $type, ?array $keys = null, ?string $keyField = null): ?FlexCollectionInterface { $directory = $type ? $this->getDirectory($type) : null; @@ -271,7 +271,7 @@ public function getObjects(array $keys, array $options = []): array * @param string|null $keyField * @return FlexObjectInterface|null */ - public function getObject(string $key, string $type = null, string $keyField = null): ?FlexObjectInterface + public function getObject(string $key, ?string $type = null, ?string $keyField = null): ?FlexObjectInterface { if (null === $type && null === $keyField) { // Special handling for quick Flex key lookups. @@ -303,7 +303,7 @@ public function count(): int * @param string|null $type * @return array */ - protected function resolveKeyAndType(string $flexKey, string $type = null): array + protected function resolveKeyAndType(string $flexKey, ?string $type = null): array { $guess = false; if (strpos($flexKey, ':') !== false) { @@ -323,7 +323,7 @@ protected function resolveKeyAndType(string $flexKey, string $type = null): arra * @param string|null $type * @return string */ - protected function resolveType(string $type = null): string + protected function resolveType(?string $type = null): string { if (null !== $type && strpos($type, '.') !== false) { return preg_replace('|\.obj$|', '', $type) ?? $type; diff --git a/system/src/Grav/Framework/Flex/FlexCollection.php b/system/src/Grav/Framework/Flex/FlexCollection.php index 3e9302cb87..7984719fc4 100644 --- a/system/src/Grav/Framework/Flex/FlexCollection.php +++ b/system/src/Grav/Framework/Flex/FlexCollection.php @@ -84,7 +84,7 @@ public static function getCachedMethods(): array * {@inheritdoc} * @see FlexCollectionInterface::createFromArray() */ - public static function createFromArray(array $entries, FlexDirectory $directory, string $keyField = null) + public static function createFromArray(array $entries, FlexDirectory $directory, ?string $keyField = null) { $instance = new static($entries, $directory); $instance->setKeyField($keyField); @@ -96,7 +96,7 @@ public static function createFromArray(array $entries, FlexDirectory $directory, * {@inheritdoc} * @see FlexCollectionInterface::__construct() */ - public function __construct(array $entries = [], FlexDirectory $directory = null) + public function __construct(array $entries = [], ?FlexDirectory $directory = null) { // @phpstan-ignore-next-line if (get_class($this) === __CLASS__) { @@ -145,7 +145,7 @@ public function getFlexFeatures(): array * {@inheritdoc} * @see FlexCollectionInterface::search() */ - public function search(string $search, $properties = null, array $options = null) + public function search(string $search, $properties = null, ?array $options = null) { $directory = $this->getFlexDirectory(); $properties = $directory->getSearchProperties($properties); @@ -298,7 +298,7 @@ public function getFlexKeys(): array * @param string|null $separator Separator, defaults to '.' * @return array */ - public function getDistinctValues(string $property, string $separator = null): array + public function getDistinctValues(string $property, ?string $separator = null): array { $list = []; @@ -320,7 +320,7 @@ public function getDistinctValues(string $property, string $separator = null): a * {@inheritdoc} * @see FlexCollectionInterface::withKeyField() */ - public function withKeyField(string $keyField = null) + public function withKeyField(?string $keyField = null) { $keyField = $keyField ?: 'key'; if ($keyField === $this->getKeyField()) { @@ -366,7 +366,7 @@ public function getCollection() * {@inheritdoc} * @see FlexCollectionInterface::render() */ - public function render(string $layout = null, array $context = []) + public function render(?string $layout = null, array $context = []) { if (!$layout) { $config = $this->getTemplateConfig(); @@ -485,7 +485,7 @@ public function getMetaData($key): array * @param string|null $namespace * @return CacheInterface */ - public function getCache(string $namespace = null) + public function getCache(?string $namespace = null) { return $this->_flexDirectory->getCache($namespace); } @@ -505,7 +505,7 @@ public function getKeyField(): string * @return static * @phpstan-return static */ - public function isAuthorized(string $action, string $scope = null, UserInterface $user = null) + public function isAuthorized(string $action, ?string $scope = null, ?UserInterface $user = null) { $list = $this->call('isAuthorized', [$action, $scope, $user]); $list = array_filter($list); diff --git a/system/src/Grav/Framework/Flex/FlexDirectory.php b/system/src/Grav/Framework/Flex/FlexDirectory.php index 0d920c48b2..3fb2f30bb5 100644 --- a/system/src/Grav/Framework/Flex/FlexDirectory.php +++ b/system/src/Grav/Framework/Flex/FlexDirectory.php @@ -156,7 +156,7 @@ public function getDescription(): string * @param mixed $default * @return mixed */ - public function getConfig(string $name = null, $default = null) + public function getConfig(?string $name = null, $default = null) { if (null === $this->config) { $config = $this->getBlueprintInternal()->get('config', []); @@ -198,7 +198,7 @@ public function getSearchProperties($properties = null): array * @param array|null $options * @return array */ - public function getSearchOptions(array $options = null): array + public function getSearchOptions(?array $options = null): array { if (empty($options['merge'])) { return $options ?? (array)$this->getConfig('data.search.options'); @@ -215,7 +215,7 @@ public function getSearchOptions(array $options = null): array * @return FlexFormInterface * @internal */ - public function getDirectoryForm(string $name = null, array $options = []) + public function getDirectoryForm(?string $name = null, array $options = []) { $name = $name ?: $this->getConfig('admin.views.configure.form', '') ?: $this->getConfig('admin.configure.form', ''); @@ -312,7 +312,7 @@ public function loadDirectoryConfig(string $name): array * @param string|null $name * @return string */ - public function getDirectoryConfigUri(string $name = null): string + public function getDirectoryConfigUri(?string $name = null): string { $name = $name ?: $this->getFlexType(); $blueprint = $this->getBlueprint(); @@ -324,7 +324,7 @@ public function getDirectoryConfigUri(string $name = null): string * @param string|null $name * @return array */ - protected function getDirectoryConfig(string $name = null): array + protected function getDirectoryConfig(?string $name = null): array { $grav = Grav::instance(); @@ -373,7 +373,7 @@ public function getBlueprintFile(string $view = ''): string * @return FlexCollectionInterface * @phpstan-return FlexCollectionInterface */ - public function getCollection(array $keys = null, string $keyField = null): FlexCollectionInterface + public function getCollection(?array $keys = null, ?string $keyField = null): FlexCollectionInterface { // Get all selected entries. $index = $this->getIndex($keys, $keyField); @@ -400,7 +400,7 @@ public function getCollection(array $keys = null, string $keyField = null): Flex * @return FlexIndexInterface * @phpstan-return FlexIndexInterface */ - public function getIndex(array $keys = null, string $keyField = null): FlexIndexInterface + public function getIndex(?array $keys = null, ?string $keyField = null): FlexIndexInterface { $keyField = $keyField ?? ''; $index = $this->indexes[$keyField] ?? $this->loadIndex($keyField); @@ -423,7 +423,7 @@ public function getIndex(array $keys = null, string $keyField = null): FlexIndex * @param string|null $keyField Field to be used as the key. * @return FlexObjectInterface|null */ - public function getObject($key = null, string $keyField = null): ?FlexObjectInterface + public function getObject($key = null, ?string $keyField = null): ?FlexObjectInterface { if (null === $key) { return $this->createObject([], ''); @@ -439,7 +439,7 @@ public function getObject($key = null, string $keyField = null): ?FlexObjectInte * @param string|null $namespace * @return CacheInterface */ - public function getCache(string $namespace = null) + public function getCache(?string $namespace = null) { $namespace = $namespace ?: 'index'; $cache = $this->cache[$namespace] ?? null; @@ -508,7 +508,7 @@ public function clearCache() * @param string|null $key * @return string|null */ - public function getStorageFolder(string $key = null): ?string + public function getStorageFolder(?string $key = null): ?string { return $this->getStorage()->getStoragePath($key); } @@ -517,7 +517,7 @@ public function getStorageFolder(string $key = null): ?string * @param string|null $key * @return string|null */ - public function getMediaFolder(string $key = null): ?string + public function getMediaFolder(?string $key = null): ?string { return $this->getStorage()->getMediaPath($key); } @@ -557,7 +557,7 @@ public function createObject(array $data, string $key = '', bool $validate = fal * @return FlexCollectionInterface * @phpstan-return FlexCollectionInterface */ - public function createCollection(array $entries, string $keyField = null): FlexCollectionInterface + public function createCollection(array $entries, ?string $keyField = null): FlexCollectionInterface { /** phpstan-var class-string $className */ $className = $this->collectionClassName ?: $this->getCollectionClass(); @@ -574,7 +574,7 @@ public function createCollection(array $entries, string $keyField = null): FlexC * @return FlexIndexInterface * @phpstan-return FlexIndexInterface */ - public function createIndex(array $entries, string $keyField = null): FlexIndexInterface + public function createIndex(array $entries, ?string $keyField = null): FlexIndexInterface { /** @phpstan-var class-string $className */ $className = $this->indexClassName ?: $this->getIndexClass(); @@ -628,7 +628,7 @@ public function getIndexClass(): string * @return FlexCollectionInterface * @phpstan-return FlexCollectionInterface */ - public function loadCollection(array $entries, string $keyField = null): FlexCollectionInterface + public function loadCollection(array $entries, ?string $keyField = null): FlexCollectionInterface { return $this->createCollection($this->loadObjects($entries), $keyField); } @@ -1122,7 +1122,7 @@ public function getType(): string * @return FlexObjectInterface * @deprecated 1.7 Use $object->update()->save() instead. */ - public function update(array $data, string $key = null): FlexObjectInterface + public function update(array $data, ?string $key = null): FlexObjectInterface { user_error(__CLASS__ . '::' . __FUNCTION__ . '() should not be used anymore: use $object->update()->save() instead.', E_USER_DEPRECATED); diff --git a/system/src/Grav/Framework/Flex/FlexDirectoryForm.php b/system/src/Grav/Framework/Flex/FlexDirectoryForm.php index 459fb499fd..01041f7115 100644 --- a/system/src/Grav/Framework/Flex/FlexDirectoryForm.php +++ b/system/src/Grav/Framework/Flex/FlexDirectoryForm.php @@ -83,7 +83,7 @@ public static function instance(array $options = []): FlexFormInterface * @param FlexDirectory $directory * @param array|null $options */ - public function __construct(string $name, FlexDirectory $directory, array $options = null) + public function __construct(string $name, FlexDirectory $directory, ?array $options = null) { $this->name = $name; $this->setDirectory($directory); @@ -350,7 +350,7 @@ public function getFileDeleteAjaxRoute($field = null, $filename = null): ?Route * @param string|null $extension * @return string */ - public function getMediaTaskRoute(array $params = [], string $extension = null): string + public function getMediaTaskRoute(array $params = [], ?string $extension = null): string { return ''; } diff --git a/system/src/Grav/Framework/Flex/FlexForm.php b/system/src/Grav/Framework/Flex/FlexForm.php index f3a0d1fc0f..2d00b9d678 100644 --- a/system/src/Grav/Framework/Flex/FlexForm.php +++ b/system/src/Grav/Framework/Flex/FlexForm.php @@ -100,7 +100,7 @@ public static function instance(array $options = []) * @param FlexObjectInterface $object * @param array|null $options */ - public function __construct(string $name, FlexObjectInterface $object, array $options = null) + public function __construct(string $name, FlexObjectInterface $object, ?array $options = null) { $this->name = $name; $this->setObject($object); @@ -428,7 +428,7 @@ public function getFileDeleteAjaxRoute($field = null, $filename = null): ?Route * @param string|null $extension * @return string */ - public function getMediaTaskRoute(array $params = [], string $extension = null): string + public function getMediaTaskRoute(array $params = [], ?string $extension = null): string { $grav = Grav::instance(); /** @var Flex $flex */ diff --git a/system/src/Grav/Framework/Flex/FlexIndex.php b/system/src/Grav/Framework/Flex/FlexIndex.php index 2c87d590d2..a7b05e7f03 100644 --- a/system/src/Grav/Framework/Flex/FlexIndex.php +++ b/system/src/Grav/Framework/Flex/FlexIndex.php @@ -66,7 +66,7 @@ public static function createFromStorage(FlexDirectory $directory) * {@inheritdoc} * @see FlexCollectionInterface::createFromArray() */ - public static function createFromArray(array $entries, FlexDirectory $directory, string $keyField = null) + public static function createFromArray(array $entries, FlexDirectory $directory, ?string $keyField = null) { $instance = new static($entries, $directory); $instance->setKeyField($keyField); @@ -106,7 +106,7 @@ public static function updateObjectMeta(array &$meta, array $data, FlexStorageIn * @param array $entries * @param FlexDirectory|null $directory */ - public function __construct(array $entries = [], FlexDirectory $directory = null) + public function __construct(array $entries = [], ?FlexDirectory $directory = null) { // @phpstan-ignore-next-line if (get_class($this) === __CLASS__) { @@ -161,7 +161,7 @@ public function getFlexFeatures(): array * {@inheritdoc} * @see FlexCollectionInterface::search() */ - public function search(string $search, $properties = null, array $options = null) + public function search(string $search, $properties = null, ?array $options = null) { $directory = $this->getFlexDirectory(); $properties = $directory->getSearchProperties($properties); @@ -283,7 +283,7 @@ public function getFlexKeys(): array * {@inheritdoc} * @see FlexIndexInterface::withKeyField() */ - public function withKeyField(string $keyField = null) + public function withKeyField(?string $keyField = null) { $keyField = $keyField ?: 'key'; if ($keyField === $this->getKeyField()) { @@ -329,7 +329,7 @@ public function getCollection() * {@inheritdoc} * @see FlexCollectionInterface::render() */ - public function render(string $layout = null, array $context = []) + public function render(?string $layout = null, array $context = []) { return $this->__call('render', [$layout, $context]); } @@ -338,7 +338,7 @@ public function render(string $layout = null, array $context = []) * {@inheritdoc} * @see FlexIndexInterface::getFlexKeys() */ - public function getIndexMap(string $indexKey = null) + public function getIndexMap(?string $indexKey = null) { if (null === $indexKey) { return $this->getEntries(); @@ -374,7 +374,7 @@ public function getKeyField(): string * @param string|null $namespace * @return CacheInterface */ - public function getCache(string $namespace = null) + public function getCache(?string $namespace = null) { return $this->getFlexDirectory()->getCache($namespace); } @@ -558,7 +558,7 @@ public function __debugInfo() * @return static * @phpstan-return static */ - protected function createFrom(array $entries, string $keyField = null) + protected function createFrom(array $entries, ?string $keyField = null) { /** @phpstan-var static $index */ $index = new static($entries, $this->getFlexDirectory()); @@ -571,7 +571,7 @@ protected function createFrom(array $entries, string $keyField = null) * @param string|null $keyField * @return void */ - protected function setKeyField(string $keyField = null) + protected function setKeyField(?string $keyField = null) { $this->_keyField = $keyField ?? 'storage_key'; } @@ -642,7 +642,7 @@ protected function loadElement($key, $value): ?ObjectInterface * @return ObjectInterface[] * @phpstan-return T[] */ - protected function loadElements(array $entries = null): array + protected function loadElements(?array $entries = null): array { /** @phpstan-var T[] $objects */ $objects = $this->getFlexDirectory()->loadObjects($entries ?? $this->getEntries()); @@ -655,7 +655,7 @@ protected function loadElements(array $entries = null): array * @return CollectionInterface * @phpstan-return C */ - protected function loadCollection(array $entries = null): CollectionInterface + protected function loadCollection(?array $entries = null): CollectionInterface { /** @var C $collection */ $collection = $this->getFlexDirectory()->loadCollection($entries ?? $this->getEntries(), $this->_keyField); diff --git a/system/src/Grav/Framework/Flex/FlexObject.php b/system/src/Grav/Framework/Flex/FlexObject.php index 14f28f9b6a..8be3081891 100644 --- a/system/src/Grav/Framework/Flex/FlexObject.php +++ b/system/src/Grav/Framework/Flex/FlexObject.php @@ -285,7 +285,7 @@ public function getCacheChecksum(): string * {@inheritdoc} * @see FlexObjectInterface::search() */ - public function search(string $search, $properties = null, array $options = null): float + public function search(string $search, $properties = null, ?array $options = null): float { $directory = $this->getFlexDirectory(); $properties = $directory->getSearchProperties($properties); @@ -362,7 +362,7 @@ public function exists(): bool * @param array|null $options * @return float */ - public function searchProperty(string $property, string $search, array $options = null): float + public function searchProperty(string $property, string $search, ?array $options = null): float { $options = $options ?? (array)$this->getFlexDirectory()->getConfig('data.search.options'); $value = $this->getProperty($property); @@ -376,7 +376,7 @@ public function searchProperty(string $property, string $search, array $options * @param array|null $options * @return float */ - public function searchNestedProperty(string $property, string $search, array $options = null): float + public function searchNestedProperty(string $property, string $search, ?array $options = null): float { $options = $options ?? (array)$this->getFlexDirectory()->getConfig('data.search.options'); if ($property === 'key') { @@ -395,7 +395,7 @@ public function searchNestedProperty(string $property, string $search, array $op * @param array|null $options * @return float */ - protected function searchValue(string $name, $value, string $search, array $options = null): float + protected function searchValue(string $name, $value, string $search, ?array $options = null): float { $options = $options ?? []; @@ -515,7 +515,7 @@ public function blueprints() * @param string|null $namespace * @return CacheInterface */ - public function getCache(string $namespace = null) + public function getCache(?string $namespace = null) { return $this->_flexDirectory->getCache($namespace); } @@ -546,7 +546,7 @@ public function setTimestamp($timestamp = null) * {@inheritdoc} * @see FlexObjectInterface::render() */ - public function render(string $layout = null, array $context = []) + public function render(?string $layout = null, array $context = []) { if (!$layout) { $config = $this->getTemplateConfig(); @@ -714,7 +714,7 @@ public function update(array $data, array $files = []) * {@inheritdoc} * @see FlexObjectInterface::create() */ - public function create(string $key = null) + public function create(?string $key = null) { if ($key) { $this->setStorageKey($key); @@ -731,7 +731,7 @@ public function create(string $key = null) * @param string|null $key * @return FlexObject|FlexObjectInterface */ - public function createCopy(string $key = null) + public function createCopy(?string $key = null) { $this->markAsCopy(); @@ -741,7 +741,7 @@ public function createCopy(string $key = null) /** * @param UserInterface|null $user */ - public function check(UserInterface $user = null): void + public function check(?UserInterface $user = null): void { // If user has been provided, check if the user has permissions to save this object. if ($user && !$this->isAuthorized('save', null, $user)) { @@ -865,7 +865,7 @@ public function getBlueprint(string $name = '') * {@inheritdoc} * @see FlexObjectInterface::getForm() */ - public function getForm(string $name = '', array $options = null) + public function getForm(string $name = '', ?array $options = null) { $hash = $name . '-' . md5(json_encode($options, JSON_THROW_ON_ERROR)); if (!isset($this->_forms[$hash])) { @@ -879,7 +879,7 @@ public function getForm(string $name = '', array $options = null) * {@inheritdoc} * @see FlexObjectInterface::getDefaultValue() */ - public function getDefaultValue(string $name, string $separator = null) + public function getDefaultValue(string $name, ?string $separator = null) { $separator = $separator ?: '.'; $path = explode($separator, $name); @@ -920,7 +920,7 @@ public function getDefaultValues(): array * {@inheritdoc} * @see FlexObjectInterface::getFormValue() */ - public function getFormValue(string $name, $default = null, string $separator = null) + public function getFormValue(string $name, $default = null, ?string $separator = null) { if ($name === 'storage_key') { return $this->getStorageKey(); @@ -1018,7 +1018,7 @@ protected function doSerialize(): array * @param FlexDirectory|null $directory * @return void */ - protected function doUnserialize(array $serialized, FlexDirectory $directory = null): void + protected function doUnserialize(array $serialized, ?FlexDirectory $directory = null): void { $type = $serialized['type'] ?? 'unknown'; @@ -1106,7 +1106,7 @@ protected function filterElements(array &$elements): void * @param array|null $options Form optiosn * @return FlexFormInterface */ - protected function createFormObject(string $name, array $options = null) + protected function createFormObject(string $name, ?array $options = null) { return new FlexForm($name, $this, $options); } diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php index 9561f59d99..a4603b74b7 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php @@ -29,5 +29,5 @@ interface FlexAuthorizeInterface * @param UserInterface|null $user * @return bool|null */ - public function isAuthorized(string $action, string $scope = null, UserInterface $user = null): ?bool; + public function isAuthorized(string $action, ?string $scope = null, ?UserInterface $user = null): ?bool; } diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php index acfede55ba..3fd0507343 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php @@ -37,7 +37,7 @@ interface FlexCollectionInterface extends FlexCommonInterface, ObjectCollectionI * @param string|null $keyField Key field used to index the collection. * @return static Returns a new Flex Collection. */ - public static function createFromArray(array $entries, FlexDirectory $directory, string $keyField = null); + public static function createFromArray(array $entries, FlexDirectory $directory, ?string $keyField = null); /** * Creates a new Flex Collection. @@ -48,7 +48,7 @@ public static function createFromArray(array $entries, FlexDirectory $directory, * @param FlexDirectory|null $directory Flex Directory where all the objects belong into. * @throws InvalidArgumentException */ - public function __construct(array $entries = [], FlexDirectory $directory = null); + public function __construct(array $entries = [], ?FlexDirectory $directory = null); /** * Search a string from the collection. @@ -60,7 +60,7 @@ public function __construct(array $entries = [], FlexDirectory $directory = null * @phpstan-return static * @api */ - public function search(string $search, $properties = null, array $options = null); + public function search(string $search, $properties = null, ?array $options = null); /** * Sort the collection. @@ -116,7 +116,7 @@ public function getFlexKeys(): array; * @phpstan-return static * @api */ - public function withKeyField(string $keyField = null); + public function withKeyField(?string $keyField = null); /** * Get Flex Index from the Flex Collection. diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php index 918feead3e..bea37ee8da 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php @@ -49,7 +49,7 @@ public function getDescription(): string; * @param mixed $default * @return mixed */ - public function getConfig(string $name = null, $default = null); + public function getConfig(?string $name = null, $default = null); /** * @param string|null $name @@ -57,7 +57,7 @@ public function getConfig(string $name = null, $default = null); * @return FlexFormInterface * @internal */ - public function getDirectoryForm(string $name = null, array $options = []); + public function getDirectoryForm(?string $name = null, array $options = []); /** * @return Blueprint @@ -78,7 +78,7 @@ public function saveDirectoryConfig(string $name, array $data); * @param string|null $name * @return string */ - public function getDirectoryConfigUri(string $name = null): string; + public function getDirectoryConfigUri(?string $name = null): string; /** * Returns a new uninitialized instance of blueprint. @@ -107,7 +107,7 @@ public function getBlueprintFile(string $view = ''): string; * @return FlexCollectionInterface * @phpstan-return FlexCollectionInterface */ - public function getCollection(array $keys = null, string $keyField = null): FlexCollectionInterface; + public function getCollection(?array $keys = null, ?string $keyField = null): FlexCollectionInterface; /** * Get the full collection of all stored objects. @@ -119,7 +119,7 @@ public function getCollection(array $keys = null, string $keyField = null): Flex * @return FlexIndexInterface * @phpstan-return FlexIndexInterface */ - public function getIndex(array $keys = null, string $keyField = null): FlexIndexInterface; + public function getIndex(?array $keys = null, ?string $keyField = null): FlexIndexInterface; /** * Returns an object if it exists. If no arguments are passed (or both of them are null), method creates a new empty object. @@ -130,13 +130,13 @@ public function getIndex(array $keys = null, string $keyField = null): FlexIndex * @param string|null $keyField Field to be used as the key. * @return FlexObjectInterface|null */ - public function getObject($key = null, string $keyField = null): ?FlexObjectInterface; + public function getObject($key = null, ?string $keyField = null): ?FlexObjectInterface; /** * @param string|null $namespace * @return CacheInterface */ - public function getCache(string $namespace = null); + public function getCache(?string $namespace = null); /** * @return $this @@ -147,13 +147,13 @@ public function clearCache(); * @param string|null $key * @return string|null */ - public function getStorageFolder(string $key = null): ?string; + public function getStorageFolder(?string $key = null): ?string; /** * @param string|null $key * @return string|null */ - public function getMediaFolder(string $key = null): ?string; + public function getMediaFolder(?string $key = null): ?string; /** * @return FlexStorageInterface @@ -174,7 +174,7 @@ public function createObject(array $data, string $key = '', bool $validate = fal * @return FlexCollectionInterface * @phpstan-return FlexCollectionInterface */ - public function createCollection(array $entries, string $keyField = null): FlexCollectionInterface; + public function createCollection(array $entries, ?string $keyField = null): FlexCollectionInterface; /** * @param array $entries @@ -182,7 +182,7 @@ public function createCollection(array $entries, string $keyField = null): FlexC * @return FlexIndexInterface * @phpstan-return FlexIndexInterface */ - public function createIndex(array $entries, string $keyField = null): FlexIndexInterface; + public function createIndex(array $entries, ?string $keyField = null): FlexIndexInterface; /** * @return string @@ -205,7 +205,7 @@ public function getIndexClass(): string; * @return FlexCollectionInterface * @phpstan-return FlexCollectionInterface */ - public function loadCollection(array $entries, string $keyField = null): FlexCollectionInterface; + public function loadCollection(array $entries, ?string $keyField = null): FlexCollectionInterface; /** * @param array $entries diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php index fe78465755..7d62822ebf 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php @@ -54,11 +54,11 @@ public static function loadEntriesFromStorage(FlexStorageInterface $storage): ar * @phpstan-return static * @api */ - public function withKeyField(string $keyField = null); + public function withKeyField(?string $keyField = null); /** * @param string|null $indexKey * @return array */ - public function getIndexMap(string $indexKey = null); + public function getIndexMap(?string $indexKey = null); } diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php index 3c9de49724..6952ad5593 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php @@ -46,7 +46,7 @@ public function hasDirectory(string $type): bool; * @param bool $keepMissing * @return array */ - public function getDirectories(array $types = null, bool $keepMissing = false): array; + public function getDirectories(?array $types = null, bool $keepMissing = false): array; /** * @param string $type @@ -61,7 +61,7 @@ public function getDirectory(string $type): ?FlexDirectory; * @return FlexCollectionInterface|null * @phpstan-return FlexCollectionInterface|null */ - public function getCollection(string $type, array $keys = null, string $keyField = null): ?FlexCollectionInterface; + public function getCollection(string $type, ?array $keys = null, ?string $keyField = null): ?FlexCollectionInterface; /** * @param array $keys @@ -91,7 +91,7 @@ public function getObjects(array $keys, array $options = []): array; * @param string|null $keyField * @return FlexObjectInterface|null */ - public function getObject(string $key, string $type = null, string $keyField = null): ?FlexObjectInterface; + public function getObject(string $key, ?string $type = null, ?string $keyField = null): ?FlexObjectInterface; /** * @return int diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php index 826db3f66b..5893c23de9 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php @@ -55,7 +55,7 @@ public function __construct(array $elements, $key, FlexDirectory $directory, boo * @return float Returns a weight between 0 and 1. * @api */ - public function search(string $search, $properties = null, array $options = null): float; + public function search(string $search, $properties = null, ?array $options = null): float; /** * Returns true if object has a key. @@ -136,7 +136,7 @@ public function update(array $data, array $files = []); * @throws RuntimeException if object already exists. * @api */ - public function create(string $key = null); + public function create(?string $key = null); /** * Save object into the storage. @@ -175,7 +175,7 @@ public function getBlueprint(string $name = ''); * @return FlexFormInterface Returns a Form. * @api */ - public function getForm(string $name = '', array $options = null); + public function getForm(string $name = '', ?array $options = null); /** * Returns default value suitable to be used in a form for the given property. @@ -186,7 +186,7 @@ public function getForm(string $name = '', array $options = null); * @param string|null $separator Optional nested property separator. * @return mixed|null Returns default value of the field, null if there is no default value. */ - public function getDefaultValue(string $name, string $separator = null); + public function getDefaultValue(string $name, ?string $separator = null); /** * Returns default values suitable to be used in a form for the given property. @@ -207,5 +207,5 @@ public function getDefaultValues(): array; * @param string|null $separator Optional nested property separator. * @return mixed Returns value of the field. */ - public function getFormValue(string $name, $default = null, string $separator = null); + public function getFormValue(string $name, $default = null, ?string $separator = null); } diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php index 4980696edc..d78a8af69c 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php @@ -78,7 +78,7 @@ public function createRows(array $rows): array; * @param array|null $fetched Optional reference to store only fetched items. * @return array Returns rows. Note that non-existing rows will have `null` as their value. */ - public function readRows(array $rows, array &$fetched = null): array; + public function readRows(array $rows, ?array &$fetched = null): array; /** * Update existing rows in the storage. @@ -126,7 +126,7 @@ public function renameRow(string $src, string $dst): bool; * @param string|null $key Optional storage key. * @return string|null Path in the filesystem. Can be URI or null if storage is not filesystem based. */ - public function getStoragePath(string $key = null): ?string; + public function getStoragePath(?string $key = null): ?string; /** * Get filesystem path for the collection or object media. @@ -134,5 +134,5 @@ public function getStoragePath(string $key = null): ?string; * @param string|null $key Optional storage key. * @return string|null Path in the filesystem. Can be URI or null if media isn't supported. */ - public function getMediaPath(string $key = null): ?string; + public function getMediaPath(?string $key = null): ?string; } diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php index 1ae8b7e38b..c3a488dc4e 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php @@ -23,7 +23,7 @@ interface FlexTranslateInterface * @param bool|null $fallback * @return bool */ - public function hasTranslation(string $languageCode = null, bool $fallback = null): bool; + public function hasTranslation(?string $languageCode = null, ?bool $fallback = null): bool; /** * Get translation. @@ -32,7 +32,7 @@ public function hasTranslation(string $languageCode = null, bool $fallback = nul * @param bool|null $fallback * @return static|null */ - public function getTranslation(string $languageCode = null, bool $fallback = null); + public function getTranslation(?string $languageCode = null, ?bool $fallback = null); /** * Returns all translated languages. diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php index 2fd793a3c4..1e49734f84 100644 --- a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php +++ b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php @@ -186,7 +186,7 @@ public function getUpdated_Timestamp(): int /** * @inheritdoc */ - public function getFormValue(string $name, $default = null, string $separator = null) + public function getFormValue(string $name, $default = null, ?string $separator = null) { $test = new stdClass(); @@ -241,7 +241,7 @@ public function getCacheKey(): string * @param string|null $key * @return FlexObjectInterface */ - public function createCopy(string $key = null) + public function createCopy(?string $key = null) { $this->copy(); diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php index 1061cbb251..878c5cba60 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php @@ -116,7 +116,7 @@ protected function loadAuthors(iterable $authors): array * @param bool $isAuthor * @return bool|null */ - public function isParentAuthorized(string $action, string $scope = null, UserInterface $user = null, bool $isAuthor = false): ?bool + public function isParentAuthorized(string $action, ?string $scope = null, ?UserInterface $user = null, bool $isAuthor = false): ?bool { $scope = $scope ?? $this->getAuthorizeScope(); diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php index 461fb5146f..37bca5e5af 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php @@ -294,7 +294,7 @@ public function move(PageInterface $parent) * @param PageInterface|null $parent New parent page. * @return $this */ - public function copy(PageInterface $parent = null) + public function copy(?PageInterface $parent = null) { $this->storeOriginal(); diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php index 918ad67ba7..b5b3f899e1 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php @@ -409,7 +409,7 @@ function ($value) { * @param PageInterface|null $var the parent page object * @return PageInterface|null the parent page object if it exists. */ - public function parent(PageInterface $var = null) + public function parent(?PageInterface $var = null) { if (null !== $var) { // TODO: diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php index 2bdfa8756e..6fc09fb0e9 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php @@ -39,7 +39,7 @@ public function translated(): bool * @param bool|null $fallback * @return bool */ - public function hasTranslation(string $languageCode = null, bool $fallback = null): bool + public function hasTranslation(?string $languageCode = null, ?bool $fallback = null): bool { $code = $this->findTranslation($languageCode, $fallback); @@ -51,7 +51,7 @@ public function hasTranslation(string $languageCode = null, bool $fallback = nul * @param bool|null $fallback * @return FlexObjectInterface|PageInterface|null */ - public function getTranslation(string $languageCode = null, bool $fallback = null) + public function getTranslation(?string $languageCode = null, ?bool $fallback = null) { if ($this->root()) { return $this; @@ -147,7 +147,7 @@ public function getLanguage(): string * @param bool|null $fallback * @return string|null */ - public function findTranslation(string $languageCode = null, bool $fallback = null): ?string + public function findTranslation(?string $languageCode = null, ?bool $fallback = null): ?string { $translated = $this->getLanguageTemplates(); @@ -270,7 +270,7 @@ protected function getLanguageTemplates(): array * @param bool|null $fallback * @return array */ - protected function getFallbackLanguages(string $languageCode = null, bool $fallback = null): array + protected function getFallbackLanguages(?string $languageCode = null, ?bool $fallback = null): array { $fallback = $fallback ?? true; if (!$fallback && null !== $languageCode) { diff --git a/system/src/Grav/Framework/Flex/Storage/FileStorage.php b/system/src/Grav/Framework/Flex/Storage/FileStorage.php index 27701282e3..4ed0660fd0 100644 --- a/system/src/Grav/Framework/Flex/Storage/FileStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FileStorage.php @@ -42,7 +42,7 @@ public function __construct(array $options) * {@inheritdoc} * @see FlexStorageInterface::getMediaPath() */ - public function getMediaPath(string $key = null): ?string + public function getMediaPath(?string $key = null): ?string { $path = $this->getStoragePath(); if (!$path) { diff --git a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php index 157449d366..790eafdc4d 100644 --- a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php @@ -135,7 +135,7 @@ public function createRows(array $rows): array * {@inheritdoc} * @see FlexStorageInterface::readRows() */ - public function readRows(array $rows, array &$fetched = null): array + public function readRows(array $rows, ?array &$fetched = null): array { $list = []; foreach ($rows as $key => $row) { @@ -277,7 +277,7 @@ public function renameRow(string $src, string $dst): bool * {@inheritdoc} * @see FlexStorageInterface::getStoragePath() */ - public function getStoragePath(string $key = null): ?string + public function getStoragePath(?string $key = null): ?string { if (null === $key || $key === '') { $path = $this->dataFolder; @@ -301,7 +301,7 @@ public function getStoragePath(string $key = null): ?string * {@inheritdoc} * @see FlexStorageInterface::getMediaPath() */ - public function getMediaPath(string $key = null): ?string + public function getMediaPath(?string $key = null): ?string { return $this->getStoragePath($key); } diff --git a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php index 5a92023eb6..4ffddd3b24 100644 --- a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php @@ -148,7 +148,7 @@ public function createRows(array $rows): array * {@inheritdoc} * @see FlexStorageInterface::readRows() */ - public function readRows(array $rows, array &$fetched = null): array + public function readRows(array $rows, ?array &$fetched = null): array { if (null === $this->data) { $this->buildIndex(); @@ -305,7 +305,7 @@ public function renameRow(string $src, string $dst): bool * {@inheritdoc} * @see FlexStorageInterface::getStoragePath() */ - public function getStoragePath(string $key = null): ?string + public function getStoragePath(?string $key = null): ?string { return $this->dataFolder . '/' . $this->dataPattern; } @@ -314,7 +314,7 @@ public function getStoragePath(string $key = null): ?string * {@inheritdoc} * @see FlexStorageInterface::getMediaPath() */ - public function getMediaPath(string $key = null): ?string + public function getMediaPath(?string $key = null): ?string { return null; } diff --git a/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php index a821300418..17b3212b5a 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php @@ -34,7 +34,7 @@ trait FlexAuthorizeTrait * @return bool|null * @final */ - public function isAuthorized(string $action, string $scope = null, UserInterface $user = null): ?bool + public function isAuthorized(string $action, ?string $scope = null, ?UserInterface $user = null): ?bool { $action = $this->getAuthorizeAction($action); $scope = $scope ?? $this->getAuthorizeScope(); diff --git a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php index a4d9a7e41a..e87b878865 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php @@ -241,7 +241,7 @@ protected function parseFileProperty($value, array $settings = []) * @return void * @internal */ - public function checkUploadedMediaFile(UploadedFileInterface $uploadedFile, string $filename = null, string $field = null) + public function checkUploadedMediaFile(UploadedFileInterface $uploadedFile, ?string $filename = null, ?string $field = null) { $media = $this->getMedia(); if (!$media instanceof MediaUploadInterface) { @@ -258,7 +258,7 @@ public function checkUploadedMediaFile(UploadedFileInterface $uploadedFile, stri * @return void * @internal */ - public function uploadMediaFile(UploadedFileInterface $uploadedFile, string $filename = null, string $field = null): void + public function uploadMediaFile(UploadedFileInterface $uploadedFile, ?string $filename = null, ?string $field = null): void { $settings = $this->getMediaFieldSettings($field ?? ''); @@ -305,7 +305,7 @@ public function __debugInfo() * @param MediaObjectInterface|null $image * @return MediaObject|UploadedMediaObject */ - protected function buildMediaObject(?string $field, string $filename, MediaObjectInterface $image = null) + protected function buildMediaObject(?string $field, string $filename, ?MediaObjectInterface $image = null) { if (!$image) { $media = $field ? $this->getMediaField($field) : null; diff --git a/system/src/Grav/Framework/Form/FormFlash.php b/system/src/Grav/Framework/Form/FormFlash.php index db1d8d4c9f..8de7588900 100644 --- a/system/src/Grav/Framework/Form/FormFlash.php +++ b/system/src/Grav/Framework/Form/FormFlash.php @@ -320,7 +320,7 @@ public function getFilesByFields($includeOriginal = false): array /** * @inheritDoc */ - public function addUploadedFile(UploadedFileInterface $upload, string $field = null, array $crop = null): string + public function addUploadedFile(UploadedFileInterface $upload, ?string $field = null, ?array $crop = null): string { $tmp_dir = $this->getTmpDir(); $tmp_name = Utils::generateRandomString(12); @@ -348,7 +348,7 @@ public function addUploadedFile(UploadedFileInterface $upload, string $field = n /** * @inheritDoc */ - public function addFile(string $filename, string $field, array $crop = null): bool + public function addFile(string $filename, string $field, ?array $crop = null): bool { if (!file_exists($filename)) { throw new RuntimeException("File not found: {$filename}"); @@ -369,7 +369,7 @@ public function addFile(string $filename, string $field, array $crop = null): bo /** * @inheritDoc */ - public function removeFile(string $name, string $field = null): bool + public function removeFile(string $name, ?string $field = null): bool { if (!$name) { return false; @@ -447,7 +447,7 @@ public function setUrl(string $url): self * @param UserInterface|null $user * @return $this */ - public function setUser(UserInterface $user = null) + public function setUser(?UserInterface $user = null) { if ($user && $user->username) { $this->user = [ @@ -465,7 +465,7 @@ public function setUser(UserInterface $user = null) * @param string|null $username * @return $this */ - public function setUserName(string $username = null): self + public function setUserName(?string $username = null): self { $this->user['username'] = $username; @@ -476,7 +476,7 @@ public function setUserName(string $username = null): self * @param string|null $email * @return $this */ - public function setUserEmail(string $email = null): self + public function setUserEmail(?string $email = null): self { $this->user['email'] = $email; @@ -538,7 +538,7 @@ protected function removeTmpDir(): void * @param array|null $crop * @return void */ - protected function addFileInternal(?string $field, string $name, array $data, array $crop = null): void + protected function addFileInternal(?string $field, string $name, array $data, ?array $crop = null): void { if (!($this->folder && $this->uniqueId)) { throw new RuntimeException('Cannot upload files: form flash folder not defined'); diff --git a/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php b/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php index a834994e1c..d01956b3c2 100644 --- a/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php +++ b/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php @@ -146,7 +146,7 @@ public function getFilesByFields($includeOriginal = false): array; * @param array|null $crop * @return string Return name of the file */ - public function addUploadedFile(UploadedFileInterface $upload, string $field = null, array $crop = null): string; + public function addUploadedFile(UploadedFileInterface $upload, ?string $field = null, ?array $crop = null): string; /** * Add existing file to the form flash. @@ -156,7 +156,7 @@ public function addUploadedFile(UploadedFileInterface $upload, string $field = n * @param array|null $crop * @return bool */ - public function addFile(string $filename, string $field, array $crop = null): bool; + public function addFile(string $filename, string $field, ?array $crop = null): bool; /** * Remove any file from form flash. @@ -165,7 +165,7 @@ public function addFile(string $filename, string $field, array $crop = null): bo * @param string|null $field * @return bool */ - public function removeFile(string $name, string $field = null): bool; + public function removeFile(string $name, ?string $field = null): bool; /** * Clear form flash from all uploaded files. diff --git a/system/src/Grav/Framework/Form/Interfaces/FormInterface.php b/system/src/Grav/Framework/Form/Interfaces/FormInterface.php index 5d60965f63..79beae1539 100644 --- a/system/src/Grav/Framework/Form/Interfaces/FormInterface.php +++ b/system/src/Grav/Framework/Form/Interfaces/FormInterface.php @@ -140,7 +140,7 @@ public function handleRequest(ServerRequestInterface $request): FormInterface; * @param UploadedFileInterface[]|null $files * @return $this */ - public function submit(array $data, array $files = null): FormInterface; + public function submit(array $data, ?array $files = null): FormInterface; /** * @return bool diff --git a/system/src/Grav/Framework/Form/Traits/FormTrait.php b/system/src/Grav/Framework/Form/Traits/FormTrait.php index 4bcae673ee..b64dd9a9ba 100644 --- a/system/src/Grav/Framework/Form/Traits/FormTrait.php +++ b/system/src/Grav/Framework/Form/Traits/FormTrait.php @@ -194,7 +194,7 @@ public function getTask(): string * @param string|null $name * @return mixed */ - public function getData(string $name = null) + public function getData(?string $name = null) { return null !== $name ? $this->data[$name] : $this->data; } @@ -366,7 +366,7 @@ public function validate(): bool * @param UploadedFileInterface[]|null $files * @return FormInterface|$this */ - public function submit(array $data, array $files = null): FormInterface + public function submit(array $data, ?array $files = null): FormInterface { try { if ($this->isSubmitted()) { @@ -502,7 +502,7 @@ public function getAllFlashes(): array * {@inheritdoc} * @see FormInterface::render() */ - public function render(string $layout = null, array $context = []) + public function render(?string $layout = null, array $context = []) { if (null === $layout) { $layout = 'default'; diff --git a/system/src/Grav/Framework/Interfaces/RenderInterface.php b/system/src/Grav/Framework/Interfaces/RenderInterface.php index 0cefae3ad7..5a2397a88c 100644 --- a/system/src/Grav/Framework/Interfaces/RenderInterface.php +++ b/system/src/Grav/Framework/Interfaces/RenderInterface.php @@ -34,5 +34,5 @@ interface RenderInterface * @return ContentBlockInterface|HtmlBlock Returns `HtmlBlock` containing the rendered output. * @api */ - public function render(string $layout = null, array $context = []); + public function render(?string $layout = null, array $context = []); } diff --git a/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php b/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php index 5b28ab0bb3..d622538251 100644 --- a/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php +++ b/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php @@ -135,7 +135,7 @@ public static function filterTrim($str) * * @return Closure */ - public static function sortByField($name, $orientation = 1, Closure $next = null) + public static function sortByField($name, $orientation = 1, ?Closure $next = null) { if (!$next) { $next = function ($a, $b) { diff --git a/system/src/Grav/Framework/Pagination/AbstractPagination.php b/system/src/Grav/Framework/Pagination/AbstractPagination.php index 084fb1d490..401b1662b8 100644 --- a/system/src/Grav/Framework/Pagination/AbstractPagination.php +++ b/system/src/Grav/Framework/Pagination/AbstractPagination.php @@ -121,7 +121,7 @@ public function getNextNumber(int $count = 1): ?int * @param string|null $label * @return PaginationPage|null */ - public function getPage(int $page, string $label = null): ?PaginationPage + public function getPage(int $page, ?string $label = null): ?PaginationPage { if ($page < 1 || $page > $this->pages) { return null; @@ -163,7 +163,7 @@ public function getPage(int $page, string $label = null): ?PaginationPage * @param int $count * @return PaginationPage|null */ - public function getFirstPage(string $label = null, int $count = 0): ?PaginationPage + public function getFirstPage(?string $label = null, int $count = 0): ?PaginationPage { return $this->getPage(1 + $count, $label ?? $this->getOptions()['label_first'] ?? null); } @@ -173,7 +173,7 @@ public function getFirstPage(string $label = null, int $count = 0): ?PaginationP * @param int $count * @return PaginationPage|null */ - public function getPrevPage(string $label = null, int $count = 1): ?PaginationPage + public function getPrevPage(?string $label = null, int $count = 1): ?PaginationPage { return $this->getPage($this->page - $count, $label ?? $this->getOptions()['label_prev'] ?? null); } @@ -183,7 +183,7 @@ public function getPrevPage(string $label = null, int $count = 1): ?PaginationPa * @param int $count * @return PaginationPage|null */ - public function getNextPage(string $label = null, int $count = 1): ?PaginationPage + public function getNextPage(?string $label = null, int $count = 1): ?PaginationPage { return $this->getPage($this->page + $count, $label ?? $this->getOptions()['label_next'] ?? null); } @@ -193,7 +193,7 @@ public function getNextPage(string $label = null, int $count = 1): ?PaginationPa * @param int $count * @return PaginationPage|null */ - public function getLastPage(string $label = null, int $count = 0): ?PaginationPage + public function getLastPage(?string $label = null, int $count = 0): ?PaginationPage { return $this->getPage($this->pages - $count, $label ?? $this->getOptions()['label_last'] ?? null); } @@ -289,7 +289,7 @@ protected function setRoute(Route $route) * @param array|null $options * @return $this */ - protected function setOptions(array $options = null) + protected function setOptions(?array $options = null) { $this->options = $options ? array_merge($this->defaultOptions, $options) : $this->defaultOptions; @@ -300,7 +300,7 @@ protected function setOptions(array $options = null) * @param int|null $page * @return $this */ - protected function setPage(int $page = null) + protected function setPage(?int $page = null) { $this->page = (int)max($page, 1); $this->start = null; @@ -312,7 +312,7 @@ protected function setPage(int $page = null) * @param int|null $start * @return $this */ - protected function setStart(int $start = null) + protected function setStart(?int $start = null) { $this->start = (int)max($start, 0); $this->page = null; @@ -324,7 +324,7 @@ protected function setStart(int $start = null) * @param int|null $limit * @return $this */ - protected function setLimit(int $limit = null) + protected function setLimit(?int $limit = null) { $this->limit = (int)max($limit ?? $this->getOptions()['limit'], 0); @@ -353,7 +353,7 @@ protected function setTotal(int $total) * @param array|null $options * @return void */ - protected function initialize(Route $route, int $total, int $pos = null, int $limit = null, array $options = null) + protected function initialize(Route $route, int $total, ?int $pos = null, ?int $limit = null, ?array $options = null) { $this->setRoute($route); $this->setOptions($options); diff --git a/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php b/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php index b329c53d47..5dbf218053 100644 --- a/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php +++ b/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php @@ -72,33 +72,33 @@ public function getOptions(): array; * @param string|null $label * @return PaginationPage|null */ - public function getPage(int $page, string $label = null): ?PaginationPage; + public function getPage(int $page, ?string $label = null): ?PaginationPage; /** * @param string|null $label * @param int $count * @return PaginationPage|null */ - public function getFirstPage(string $label = null, int $count = 0): ?PaginationPage; + public function getFirstPage(?string $label = null, int $count = 0): ?PaginationPage; /** * @param string|null $label * @param int $count * @return PaginationPage|null */ - public function getPrevPage(string $label = null, int $count = 1): ?PaginationPage; + public function getPrevPage(?string $label = null, int $count = 1): ?PaginationPage; /** * @param string|null $label * @param int $count * @return PaginationPage|null */ - public function getNextPage(string $label = null, int $count = 1): ?PaginationPage; + public function getNextPage(?string $label = null, int $count = 1): ?PaginationPage; /** * @param string|null $label * @param int $count * @return PaginationPage|null */ - public function getLastPage(string $label = null, int $count = 0): ?PaginationPage; + public function getLastPage(?string $label = null, int $count = 0): ?PaginationPage; } diff --git a/system/src/Grav/Framework/Pagination/Pagination.php b/system/src/Grav/Framework/Pagination/Pagination.php index 99c6661a09..76f55a6aa9 100644 --- a/system/src/Grav/Framework/Pagination/Pagination.php +++ b/system/src/Grav/Framework/Pagination/Pagination.php @@ -25,7 +25,7 @@ class Pagination extends AbstractPagination * @param int|null $limit * @param array|null $options */ - public function __construct(Route $route, int $total, int $pos = null, int $limit = null, array $options = null) + public function __construct(Route $route, int $total, ?int $pos = null, ?int $limit = null, ?array $options = null) { $this->initialize($route, $total, $pos, $limit, $options); } diff --git a/system/src/Grav/Framework/Psr7/Response.php b/system/src/Grav/Framework/Psr7/Response.php index 4126ff8e66..b7ed93e380 100644 --- a/system/src/Grav/Framework/Psr7/Response.php +++ b/system/src/Grav/Framework/Psr7/Response.php @@ -35,7 +35,7 @@ class Response implements ResponseInterface * @param string $version Protocol version * @param string|null $reason Reason phrase (optional) */ - public function __construct(int $status = 200, array $headers = [], $body = null, string $version = '1.1', string $reason = null) + public function __construct(int $status = 200, array $headers = [], $body = null, string $version = '1.1', ?string $reason = null) { $this->message = new \Nyholm\Psr7\Response($status, $headers, $body, $version, $reason); } @@ -55,7 +55,7 @@ public function __construct(int $status = 200, array $headers = [], $body = null * @return static * @phpstan-param positive-int $depth */ - public function withJson($data, int $status = null, int $options = 0, int $depth = 512): ResponseInterface + public function withJson($data, ?int $status = null, int $options = 0, int $depth = 512): ResponseInterface { $json = (string) json_encode($data, $options, $depth); diff --git a/system/src/Grav/Framework/Psr7/Uri.php b/system/src/Grav/Framework/Psr7/Uri.php index 2638876227..01af4021c9 100644 --- a/system/src/Grav/Framework/Psr7/Uri.php +++ b/system/src/Grav/Framework/Psr7/Uri.php @@ -128,7 +128,7 @@ public function isRelativePathReference(): bool * @return bool * @link https://tools.ietf.org/html/rfc3986#section-4.4 */ - public function isSameDocumentReference(UriInterface $base = null): bool + public function isSameDocumentReference(?UriInterface $base = null): bool { return GuzzleUri::isSameDocumentReference($this, $base); } diff --git a/system/src/Grav/Framework/Relationships/ToManyRelationship.php b/system/src/Grav/Framework/Relationships/ToManyRelationship.php index 3ea501b29c..64e2e3a5c3 100644 --- a/system/src/Grav/Framework/Relationships/ToManyRelationship.php +++ b/system/src/Grav/Framework/Relationships/ToManyRelationship.php @@ -83,7 +83,7 @@ public function fetch(): array * @return bool * @phpstan-pure */ - public function has(string $id, string $type = null): bool + public function has(string $id, ?string $type = null): bool { return $this->getIdentifier($id, $type) !== null; } @@ -109,7 +109,7 @@ public function getNthIdentifier(int $pos): ?IdentifierInterface * @return IdentifierInterface|null * @phpstan-pure */ - public function getIdentifier(string $id, string $type = null): ?IdentifierInterface + public function getIdentifier(string $id, ?string $type = null): ?IdentifierInterface { if (null === $type) { $type = $this->getType(); @@ -130,7 +130,7 @@ public function getIdentifier(string $id, string $type = null): ?IdentifierInter * @param string|null $type * @return T|null */ - public function getObject(string $id, string $type = null): ?object + public function getObject(string $id, ?string $type = null): ?object { $identifier = $this->getIdentifier($id, $type); if ($identifier && is_callable([$identifier, 'getObject'])) { @@ -153,7 +153,7 @@ public function addIdentifier(IdentifierInterface $identifier): bool * @param IdentifierInterface|null $identifier * @return bool */ - public function removeIdentifier(IdentifierInterface $identifier = null): bool + public function removeIdentifier(?IdentifierInterface $identifier = null): bool { return !$identifier || $this->removeIdentifiers([$identifier]); } diff --git a/system/src/Grav/Framework/Relationships/ToOneRelationship.php b/system/src/Grav/Framework/Relationships/ToOneRelationship.php index 9b09651430..4f7e23f119 100644 --- a/system/src/Grav/Framework/Relationships/ToOneRelationship.php +++ b/system/src/Grav/Framework/Relationships/ToOneRelationship.php @@ -25,7 +25,7 @@ class ToOneRelationship implements ToOneRelationshipInterface /** @var IdentifierInterface|null */ protected $identifier = null; - public function __construct(IdentifierInterface $parent, string $name, array $options, IdentifierInterface $identifier = null) + public function __construct(IdentifierInterface $parent, string $name, array $options, ?IdentifierInterface $identifier = null) { $this->parent = $parent; $this->name = $name; @@ -74,7 +74,7 @@ public function fetch(): ?object * @return bool * @phpstan-pure */ - public function has(string $id = null, string $type = null): bool + public function has(?string $id = null, ?string $type = null): bool { return $this->getIdentifier($id, $type) !== null; } @@ -85,7 +85,7 @@ public function has(string $id = null, string $type = null): bool * @return IdentifierInterface|null * @phpstan-pure */ - public function getIdentifier(string $id = null, string $type = null): ?IdentifierInterface + public function getIdentifier(?string $id = null, ?string $type = null): ?IdentifierInterface { if ($id && $this->getType() === 'media' && !str_contains($id, '/')) { $name = $this->name; @@ -105,7 +105,7 @@ public function getIdentifier(string $id = null, string $type = null): ?Identifi * @param string|null $type * @return T|null */ - public function getObject(string $id = null, string $type = null): ?object + public function getObject(?string $id = null, ?string $type = null): ?object { $identifier = $this->getIdentifier($id, $type); if ($identifier && is_callable([$identifier, 'getObject'])) { @@ -131,7 +131,7 @@ public function addIdentifier(IdentifierInterface $identifier): bool * @param IdentifierInterface|null $identifier * @return bool */ - public function replaceIdentifier(IdentifierInterface $identifier = null): bool + public function replaceIdentifier(?IdentifierInterface $identifier = null): bool { if ($identifier === null) { $this->identifier = null; @@ -147,7 +147,7 @@ public function replaceIdentifier(IdentifierInterface $identifier = null): bool * @param IdentifierInterface|null $identifier * @return bool */ - public function removeIdentifier(IdentifierInterface $identifier = null): bool + public function removeIdentifier(?IdentifierInterface $identifier = null): bool { if (null === $identifier || $this->has($identifier->getId(), $identifier->getType())) { $this->identifier = null; diff --git a/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php b/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php index e6d084b276..4ca59541a5 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php @@ -30,7 +30,7 @@ class InvalidArgumentException extends \InvalidArgumentException * @param int $code * @param Throwable|null $previous */ - public function __construct($message = '', $invalidMiddleware = null, $code = 0, Throwable $previous = null) + public function __construct($message = '', $invalidMiddleware = null, $code = 0, ?Throwable $previous = null) { parent::__construct($message, $code, $previous); diff --git a/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php b/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php index 9d6a55aff2..ebfcbbe81a 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php @@ -26,7 +26,7 @@ class NotFoundException extends RequestException * @param ServerRequestInterface $request * @param Throwable|null $previous */ - public function __construct(ServerRequestInterface $request, Throwable $previous = null) + public function __construct(ServerRequestInterface $request, ?Throwable $previous = null) { if (in_array(strtoupper($request->getMethod()), ['PUT', 'PATCH', 'DELETE'])) { parent::__construct($request, 'Method Not Allowed', 405, $previous); diff --git a/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php b/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php index 75317d979a..30495da002 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php @@ -25,7 +25,7 @@ class PageExpiredException extends RequestException * @param ServerRequestInterface $request * @param Throwable|null $previous */ - public function __construct(ServerRequestInterface $request, Throwable $previous = null) + public function __construct(ServerRequestInterface $request, ?Throwable $previous = null) { parent::__construct($request, 'Page Expired', 400, $previous); // 419 } diff --git a/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php b/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php index 945a591c05..bd894fe580 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php @@ -73,7 +73,7 @@ class RequestException extends \RuntimeException * @param int $code * @param Throwable|null $previous */ - public function __construct(ServerRequestInterface $request, string $message, int $code = 500, Throwable $previous = null) + public function __construct(ServerRequestInterface $request, string $message, int $code = 500, ?Throwable $previous = null) { $this->request = $request; diff --git a/system/src/Grav/Framework/RequestHandler/RequestHandler.php b/system/src/Grav/Framework/RequestHandler/RequestHandler.php index 44fb7f939d..7af26b6916 100644 --- a/system/src/Grav/Framework/RequestHandler/RequestHandler.php +++ b/system/src/Grav/Framework/RequestHandler/RequestHandler.php @@ -33,7 +33,7 @@ class RequestHandler implements RequestHandlerInterface * @param callable $default * @param ContainerInterface|null $container */ - public function __construct(array $middleware, callable $default, ContainerInterface $container = null) + public function __construct(array $middleware, callable $default, ?ContainerInterface $container = null) { $this->middleware = $middleware; $this->handler = $default; diff --git a/system/src/Grav/Framework/Route/Route.php b/system/src/Grav/Framework/Route/Route.php index c65a827693..8d009890fa 100644 --- a/system/src/Grav/Framework/Route/Route.php +++ b/system/src/Grav/Framework/Route/Route.php @@ -92,7 +92,7 @@ public function getLanguagePrefix() * @param string|null $language * @return string */ - public function getBase(string $language = null): string + public function getBase(?string $language = null): string { $parts = [$this->root]; diff --git a/system/src/Grav/Framework/Session/Messages.php b/system/src/Grav/Framework/Session/Messages.php index 66a72c4bba..a0d19979f0 100644 --- a/system/src/Grav/Framework/Session/Messages.php +++ b/system/src/Grav/Framework/Session/Messages.php @@ -50,7 +50,7 @@ public function add(string $message, string $scope = 'default'): Messages * @param string|null $scope * @return $this */ - public function clear(string $scope = null): Messages + public function clear(?string $scope = null): Messages { if ($scope === null) { if ($this->messages !== []) { @@ -83,7 +83,7 @@ public function isCleared(): bool * @param string|null $scope * @return array */ - public function all(string $scope = null): array + public function all(?string $scope = null): array { if ($scope === null) { return array_values($this->messages); @@ -105,7 +105,7 @@ public function all(string $scope = null): array * @param string|null $scope * @return array */ - public function fetch(string $scope = null): array + public function fetch(?string $scope = null): array { $messages = $this->all($scope); $this->clear($scope); diff --git a/system/src/Grav/Framework/Session/Session.php b/system/src/Grav/Framework/Session/Session.php index e30b03b2e5..5867c15133 100644 --- a/system/src/Grav/Framework/Session/Session.php +++ b/system/src/Grav/Framework/Session/Session.php @@ -477,7 +477,7 @@ protected function onSessionStart(): void * @param int|null $lifetime * @return array */ - public function getCookieOptions(int $lifetime = null): array + public function getCookieOptions(?int $lifetime = null): array { $params = session_get_cookie_params(); diff --git a/system/src/Grav/Framework/Uri/Uri.php b/system/src/Grav/Framework/Uri/Uri.php index d31937cae3..a4b3060bcd 100644 --- a/system/src/Grav/Framework/Uri/Uri.php +++ b/system/src/Grav/Framework/Uri/Uri.php @@ -209,7 +209,7 @@ public function isRelativePathReference() * @return bool * @link https://tools.ietf.org/html/rfc3986#section-4.4 */ - public function isSameDocumentReference(UriInterface $base = null) + public function isSameDocumentReference(?UriInterface $base = null) { return GuzzleUri::isSameDocumentReference($this, $base); } diff --git a/system/src/Grav/Installer/VersionUpdater.php b/system/src/Grav/Installer/VersionUpdater.php index 75a3b042fa..be28ebf4aa 100644 --- a/system/src/Grav/Installer/VersionUpdater.php +++ b/system/src/Grav/Installer/VersionUpdater.php @@ -85,7 +85,7 @@ public function getVersions(): Versions * @param string|null $name * @return string|null */ - public function getExtensionVersion(string $name = null): ?string + public function getExtensionVersion(?string $name = null): ?string { return $this->versions->getVersion($name ?? $this->name); } @@ -94,7 +94,7 @@ public function getExtensionVersion(string $name = null): ?string * @param string|null $name * @return string|null */ - public function getExtensionSchema(string $name = null): ?string + public function getExtensionSchema(?string $name = null): ?string { return $this->versions->getSchema($name ?? $this->name); } @@ -103,7 +103,7 @@ public function getExtensionSchema(string $name = null): ?string * @param string|null $name * @return array */ - public function getExtensionHistory(string $name = null): array + public function getExtensionHistory(?string $name = null): array { return $this->versions->getHistory($name ?? $this->name); } diff --git a/system/src/Grav/Installer/Versions.php b/system/src/Grav/Installer/Versions.php index 201b9e85c6..f3f4ef9873 100644 --- a/system/src/Grav/Installer/Versions.php +++ b/system/src/Grav/Installer/Versions.php @@ -34,7 +34,7 @@ final class Versions * @param string|null $filename * @return self */ - public static function instance(string $filename = null): self + public static function instance(?string $filename = null): self { $filename = $filename ?? USER_DIR . 'config/versions.yaml'; From 37e5526a4ff48a779d439495e3d0f8c62dddbe64 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 25 Oct 2024 18:21:23 +0100 Subject: [PATCH 51/54] updated changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02e80f6ea2..4e932ea91a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ 1. [](#improved) * Updated composer libraries * Updated composer.php binary to `v2.8.1` - + * Fixes for PHP 8.4 - Implicitly nullable parameter declarations deprecated # v1.8.0-beta.1 ## 10/23/2024 From f06bbfc5630961ccfd45b050a7d8ad1e340f5b89 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 25 Oct 2024 20:17:41 +0100 Subject: [PATCH 52/54] Missing RocketTheme\Toolbox\Event\EventSubscriberInterface --- .../Toolbox/Event/EventSubscriberInterface.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 system/src/RocketTheme/Toolbox/Event/EventSubscriberInterface.php diff --git a/system/src/RocketTheme/Toolbox/Event/EventSubscriberInterface.php b/system/src/RocketTheme/Toolbox/Event/EventSubscriberInterface.php new file mode 100644 index 0000000000..9ccbdfcf5d --- /dev/null +++ b/system/src/RocketTheme/Toolbox/Event/EventSubscriberInterface.php @@ -0,0 +1,17 @@ + Date: Fri, 25 Oct 2024 20:18:33 +0100 Subject: [PATCH 53/54] Updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e932ea91a..5d618d24a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * Updated composer libraries * Updated composer.php binary to `v2.8.1` * Fixes for PHP 8.4 - Implicitly nullable parameter declarations deprecated + * Added back Missing `RocketTheme\Toolbox\Event\EventSubscriberInterface` for Gantry5 # v1.8.0-beta.1 ## 10/23/2024 From 55c9b9ee231c5d0244830bdc9506f6e25bcf46fb Mon Sep 17 00:00:00 2001 From: Jeremy Gonyea Date: Fri, 25 Oct 2024 20:05:25 -0400 Subject: [PATCH 54/54] Fix for #3164. Adds aliases as possible commands during lookup --- .../Application/CommandLoader/PluginCommandLoader.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php b/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php index f550c518e4..210250c64f 100644 --- a/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php +++ b/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php @@ -57,6 +57,14 @@ public function __construct(string $name) $command = new $command_class(); if ($command instanceof Command) { $this->commands[$command->getName()] = $command; + + // If the command has an alias, add that as a possible command name. + $aliases = $this->commands[$command->getName()]->getAliases(); + if (isset($aliases)) { + foreach ($aliases as $alias) { + $this->commands[$alias] = $command; + } + } } } }