From bfb7479779afe82434df593e36b29cd2725ac500 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2020 20:21:30 +0000 Subject: [PATCH 001/305] Build(deps-dev): Bump ergebnis/composer-normalize from 2.3.0 to 2.3.2 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.3.0 to 2.3.2. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/master/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.3.0...2.3.2) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index e52a1000..4e3ce46f 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.3.0", + "ergebnis/composer-normalize": "^2.3.2", "ergebnis/license": "~0.1.0", "ergebnis/php-cs-fixer-config": "^2.1.0", "ergebnis/test-util": "~1.0.0", diff --git a/composer.lock b/composer.lock index 2be7699a..b57ef85f 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": "e705b682110f5a2779b95dd8c614959e", + "content-hash": "7e38d07f39c32ed492c08c97a2d6090b", "packages": [ { "name": "composer/xdebug-handler", @@ -1776,16 +1776,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.3.0", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "8b6458857665b40ce8611b42304388f37dbbf009" + "reference": "d171b088ff9dcfda53277200a9ecc9a1d0deaef5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/8b6458857665b40ce8611b42304388f37dbbf009", - "reference": "8b6458857665b40ce8611b42304388f37dbbf009", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d171b088ff9dcfda53277200a9ecc9a1d0deaef5", + "reference": "d171b088ff9dcfda53277200a9ecc9a1d0deaef5", "shasum": "" }, "require": { @@ -1796,11 +1796,11 @@ "php": "^7.1" }, "require-dev": { - "composer/composer": "^1.10.0", + "composer/composer": "^1.10.1", "ergebnis/license": "~0.1.0", "ergebnis/php-cs-fixer-config": "^2.1.0", "ergebnis/phpstan-rules": "~0.14.3", - "ergebnis/test-util": "~0.9.1", + "ergebnis/test-util": "~1.0.0", "jangregor/phpstan-prophecy": "~0.6.2", "phpstan/extension-installer": "^1.0.3", "phpstan/phpstan": "~0.12.14", @@ -1839,7 +1839,7 @@ "normalizer", "plugin" ], - "time": "2020-03-11T21:50:59+00:00" + "time": "2020-03-13T20:09:01+00:00" }, { "name": "ergebnis/json-normalizer", @@ -3734,12 +3734,12 @@ "version": "0.9.0", "source": { "type": "git", - "url": "https://github.com/psalm/phpunit-psalm-plugin.git", + "url": "https://github.com/psalm/psalm-plugin-phpunit.git", "reference": "496c08f088d9e34e1947bca1de52b32b6571bad3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/phpunit-psalm-plugin/zipball/496c08f088d9e34e1947bca1de52b32b6571bad3", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/496c08f088d9e34e1947bca1de52b32b6571bad3", "reference": "496c08f088d9e34e1947bca1de52b32b6571bad3", "shasum": "" }, From cf9d769456b197fcf9d55253075c882d8f8a44f2 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2020 17:08:24 +0000 Subject: [PATCH 002/305] Build(deps-dev): Bump vimeo/psalm from 3.9.5 to 3.10.1 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.9.5 to 3.10.1. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.9.5...3.10.1) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 4e3ce46f..4adcf2db 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.9.0", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.9.5", + "vimeo/psalm": "^3.10.1", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index b57ef85f..1ca8b762 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": "7e38d07f39c32ed492c08c97a2d6090b", + "content-hash": "a3f337b66ec0f3737f88c4329f7c3ade", "packages": [ { "name": "composer/xdebug-handler", @@ -2133,20 +2133,20 @@ }, { "name": "felixfbecker/advanced-json-rpc", - "version": "v3.1.0", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "a407a6cb0325cd489c6dff57afcba6baeccc0483" + "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/a407a6cb0325cd489c6dff57afcba6baeccc0483", - "reference": "a407a6cb0325cd489c6dff57afcba6baeccc0483", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/0ed363f8de17d284d479ec813c9ad3f6834b5c40", + "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40", "shasum": "" }, "require": { - "netresearch/jsonmapper": "^1.0", + "netresearch/jsonmapper": "^1.0 || ^2.0", "php": ">=7.0", "phpdocumentor/reflection-docblock": "^4.0.0 || ^5.0.0" }, @@ -2170,7 +2170,7 @@ } ], "description": "A more advanced JSONRPC implementation", - "time": "2020-02-11T20:48:40+00:00" + "time": "2020-03-11T15:21:41+00:00" }, { "name": "felixfbecker/language-server-protocol", @@ -4956,16 +4956,16 @@ }, { "name": "vimeo/psalm", - "version": "3.9.5", + "version": "3.10.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "0cfe565d0afbcd31eadcc281b9017b5692911661" + "reference": "eeed5ecccc10131397f0eb7ee6da810c0be3a7fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/0cfe565d0afbcd31eadcc281b9017b5692911661", - "reference": "0cfe565d0afbcd31eadcc281b9017b5692911661", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/eeed5ecccc10131397f0eb7ee6da810c0be3a7fc", + "reference": "eeed5ecccc10131397f0eb7ee6da810c0be3a7fc", "shasum": "" }, "require": { @@ -5048,7 +5048,7 @@ "inspection", "php" ], - "time": "2020-03-09T22:59:56+00:00" + "time": "2020-03-23T11:40:30+00:00" }, { "name": "webmozart/assert", From 40887b48f0afd0ab1bd05d3614b3872a78cf12b5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2020 15:49:27 +0000 Subject: [PATCH 003/305] Build(deps-dev): Bump psalm/plugin-phpunit from 0.9.0 to 0.9.1 Bumps [psalm/plugin-phpunit](https://github.com/psalm/psalm-plugin-phpunit) from 0.9.0 to 0.9.1. - [Release notes](https://github.com/psalm/psalm-plugin-phpunit/releases) - [Commits](https://github.com/psalm/psalm-plugin-phpunit/compare/0.9.0...0.9.1) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 4adcf2db..fdbf4fb0 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.9.0", + "psalm/plugin-phpunit": "~0.9.1", "psr/container": "^1.0.0", "vimeo/psalm": "^3.10.1", "zendframework/zend-servicemanager": "^2.0.0" diff --git a/composer.lock b/composer.lock index 1ca8b762..4b6016f7 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": "a3f337b66ec0f3737f88c4329f7c3ade", + "content-hash": "27be8b8c35e95e72499c3f07cbcad8d1", "packages": [ { "name": "composer/xdebug-handler", @@ -3731,16 +3731,16 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.9.0", + "version": "0.9.1", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "496c08f088d9e34e1947bca1de52b32b6571bad3" + "reference": "30b224272086e14ec52902f2ed0fc93136d2cb78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/496c08f088d9e34e1947bca1de52b32b6571bad3", - "reference": "496c08f088d9e34e1947bca1de52b32b6571bad3", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/30b224272086e14ec52902f2ed0fc93136d2cb78", + "reference": "30b224272086e14ec52902f2ed0fc93136d2cb78", "shasum": "" }, "require": { @@ -3752,7 +3752,7 @@ "require-dev": { "codeception/base": "^2.5", "squizlabs/php_codesniffer": "^3.3.1", - "weirdan/codeception-psalm-module": "^0.2.2" + "weirdan/codeception-psalm-module": "^0.4.0" }, "type": "psalm-plugin", "extra": { @@ -3784,7 +3784,7 @@ } ], "description": "Psalm plugin for PHPUnit", - "time": "2020-02-15T02:43:43+00:00" + "time": "2020-03-30T10:43:56+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", From c6a6f44002112c36f161ea8b88fbe8c722644ecd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2020 21:42:10 +0000 Subject: [PATCH 004/305] Build(deps-dev): Bump psalm/plugin-phpunit from 0.9.1 to 0.9.2 Bumps [psalm/plugin-phpunit](https://github.com/psalm/psalm-plugin-phpunit) from 0.9.1 to 0.9.2. - [Release notes](https://github.com/psalm/psalm-plugin-phpunit/releases) - [Commits](https://github.com/psalm/psalm-plugin-phpunit/compare/0.9.1...0.9.2) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index fdbf4fb0..822d7185 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.9.1", + "psalm/plugin-phpunit": "~0.9.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.10.1", "zendframework/zend-servicemanager": "^2.0.0" diff --git a/composer.lock b/composer.lock index 4b6016f7..d90e3b42 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": "27be8b8c35e95e72499c3f07cbcad8d1", + "content-hash": "115116e7cf77363f3333f4250ee995a2", "packages": [ { "name": "composer/xdebug-handler", @@ -3731,16 +3731,16 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.9.1", + "version": "0.9.2", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "30b224272086e14ec52902f2ed0fc93136d2cb78" + "reference": "ebfae6c31922536b312bbc3388a1a2153d630020" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/30b224272086e14ec52902f2ed0fc93136d2cb78", - "reference": "30b224272086e14ec52902f2ed0fc93136d2cb78", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/ebfae6c31922536b312bbc3388a1a2153d630020", + "reference": "ebfae6c31922536b312bbc3388a1a2153d630020", "shasum": "" }, "require": { @@ -3784,7 +3784,7 @@ } ], "description": "Psalm plugin for PHPUnit", - "time": "2020-03-30T10:43:56+00:00" + "time": "2020-04-01T21:20:23+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", From f73cde4eb6f7cf379ed91ca4642b3019b0d215e5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 5 Apr 2020 23:25:24 +0000 Subject: [PATCH 005/305] Build(deps-dev): Bump psalm/plugin-phpunit from 0.9.2 to 0.10.0 Bumps [psalm/plugin-phpunit](https://github.com/psalm/psalm-plugin-phpunit) from 0.9.2 to 0.10.0. - [Release notes](https://github.com/psalm/psalm-plugin-phpunit/releases) - [Commits](https://github.com/psalm/psalm-plugin-phpunit/compare/0.9.2...0.10.0) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 28 +++++++++++----------------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/composer.json b/composer.json index 822d7185..39b4d0df 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.9.2", + "psalm/plugin-phpunit": "~0.10.0", "psr/container": "^1.0.0", "vimeo/psalm": "^3.10.1", "zendframework/zend-servicemanager": "^2.0.0" diff --git a/composer.lock b/composer.lock index d90e3b42..de1bed4b 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": "115116e7cf77363f3333f4250ee995a2", + "content-hash": "777e1ed98ef2fd94a848eeb1caffd867", "packages": [ { "name": "composer/xdebug-handler", @@ -3731,26 +3731,28 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.9.2", + "version": "0.10.0", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "ebfae6c31922536b312bbc3388a1a2153d630020" + "reference": "12b3978cea0e9ad3aa3a127a93d3b8a1ce0eb2af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/ebfae6c31922536b312bbc3388a1a2153d630020", - "reference": "ebfae6c31922536b312bbc3388a1a2153d630020", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/12b3978cea0e9ad3aa3a127a93d3b8a1ce0eb2af", + "reference": "12b3978cea0e9ad3aa3a127a93d3b8a1ce0eb2af", "shasum": "" }, "require": { "composer/semver": "^1.4", + "ext-simplexml": "*", "ocramius/package-versions": "^1.3", - "phpunit/phpunit": "^6.0 || ^7.0 || ^8.0 || ^9.0", + "php": "^7.1.3", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", "vimeo/psalm": "^3.6.2 || dev-master" }, "require-dev": { - "codeception/base": "^2.5", + "codeception/codeception": "^4.0.3", "squizlabs/php_codesniffer": "^3.3.1", "weirdan/codeception-psalm-module": "^0.4.0" }, @@ -3762,15 +3764,7 @@ }, "autoload": { "psr-4": { - "Psalm\\PhpUnitPlugin\\": [ - "." - ], - "Psalm\\PhpUnitPlugin\\Hooks\\": [ - "hooks" - ], - "Psalm\\PhpUnitPlugin\\Exception\\": [ - "Exception" - ] + "Psalm\\PhpUnitPlugin\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3784,7 +3778,7 @@ } ], "description": "Psalm plugin for PHPUnit", - "time": "2020-04-01T21:20:23+00:00" + "time": "2020-04-05T22:49:26+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", From 2251cb98c17ce15891a05c44f09d9fa7ff683f2e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2020 10:07:37 +0000 Subject: [PATCH 006/305] Build(deps-dev): Bump ergebnis/php-cs-fixer-config from 2.1.0 to 2.1.1 Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.1.0 to 2.1.1. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/master/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.1.0...2.1.1) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 193 +++++++++++++++++++++++++------------------------- 2 files changed, 99 insertions(+), 96 deletions(-) diff --git a/composer.json b/composer.json index 39b4d0df..46cde758 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.3.2", "ergebnis/license": "~0.1.0", - "ergebnis/php-cs-fixer-config": "^2.1.0", + "ergebnis/php-cs-fixer-config": "^2.1.1", "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index de1bed4b..348561aa 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": "777e1ed98ef2fd94a848eeb1caffd867", + "content-hash": "3d132c2085abbd736193585ade40e815", "packages": [ { "name": "composer/xdebug-handler", @@ -903,16 +903,16 @@ }, { "name": "psr/log", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -946,20 +946,20 @@ "psr", "psr-3" ], - "time": "2019-11-01T11:05:21+00:00" + "time": "2020-03-23T09:12:05+00:00" }, { "name": "symfony/console", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "4fa15ae7be74e53f6ec8c83ed403b97e23b665e9" + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/4fa15ae7be74e53f6ec8c83ed403b97e23b665e9", - "reference": "4fa15ae7be74e53f6ec8c83ed403b97e23b665e9", + "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", "shasum": "" }, "require": { @@ -1022,20 +1022,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-02-24T13:10:00+00:00" + "time": "2020-03-30T11:41:10+00:00" }, { "name": "symfony/finder", - "version": "v4.4.4", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "3a50be43515590faf812fbd7708200aabc327ec3" + "reference": "5729f943f9854c5781984ed4907bbb817735776b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", - "reference": "3a50be43515590faf812fbd7708200aabc327ec3", + "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", + "reference": "5729f943f9854c5781984ed4907bbb817735776b", "shasum": "" }, "require": { @@ -1071,20 +1071,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2020-01-04T13:00:46+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", "shasum": "" }, "require": { @@ -1096,7 +1096,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -1130,20 +1130,20 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", - "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", "shasum": "" }, "require": { @@ -1152,7 +1152,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -1188,7 +1188,7 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/service-contracts", @@ -1537,20 +1537,21 @@ }, { "name": "doctrine/annotations", - "version": "v1.8.0", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" + "reference": "5eb79f3dbdffed6544e1fc287572c0f462bd29bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", - "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5eb79f3dbdffed6544e1fc287572c0f462bd29bb", + "reference": "5eb79f3dbdffed6544e1fc287572c0f462bd29bb", "shasum": "" }, "require": { "doctrine/lexer": "1.*", + "ext-tokenizer": "*", "php": "^7.1" }, "require-dev": { @@ -1560,7 +1561,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.9.x-dev" } }, "autoload": { @@ -1601,7 +1602,7 @@ "docblock", "parser" ], - "time": "2019-10-01T18:55:10+00:00" + "time": "2020-04-02T12:33:25+00:00" }, { "name": "doctrine/instantiator", @@ -2017,39 +2018,39 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.1.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "a9758108670f0479bf15b4ebad9c845f3a462fa1" + "reference": "f831e9038ec748be2e44d17eb6f3fac1cc0a1603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/a9758108670f0479bf15b4ebad9c845f3a462fa1", - "reference": "a9758108670f0479bf15b4ebad9c845f3a462fa1", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/f831e9038ec748be2e44d17eb6f3fac1cc0a1603", + "reference": "f831e9038ec748be2e44d17eb6f3fac1cc0a1603", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.16.0", + "friendsofphp/php-cs-fixer": "~2.16.2", "php": "^7.1" }, "require-dev": { - "ergebnis/composer-normalize": "^2.2.4", + "ergebnis/composer-normalize": "^2.3.2", "ergebnis/license": "~0.1.0", - "ergebnis/phpstan-rules": "~0.14.3", - "ergebnis/test-util": "~0.9.1", + "ergebnis/phpstan-rules": "~0.14.4", + "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", "jangregor/phpstan-prophecy": "~0.6.2", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.11", + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.18", "phpstan/phpstan-deprecation-rules": "~0.12.2", "phpstan/phpstan-phpunit": "~0.12.6", "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.9.0", + "psalm/plugin-phpunit": "~0.10.0", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.9.3" + "vimeo/psalm": "^3.10.1" }, "type": "library", "autoload": { @@ -2069,7 +2070,7 @@ ], "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", "homepage": "https://github.com/ergebnis/php-cs-fixer-config", - "time": "2020-02-28T15:52:06+00:00" + "time": "2020-04-11T09:41:42+00:00" }, { "name": "ergebnis/test-util", @@ -2221,16 +2222,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.16.1", + "version": "v2.16.2", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "c8afb599858876e95e8ebfcd97812d383fa23f02" + "reference": "c460a3cbaa58f983fe026cd52c45950bf61e9239" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/c8afb599858876e95e8ebfcd97812d383fa23f02", - "reference": "c8afb599858876e95e8ebfcd97812d383fa23f02", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/c460a3cbaa58f983fe026cd52c45950bf61e9239", + "reference": "c460a3cbaa58f983fe026cd52c45950bf61e9239", "shasum": "" }, "require": { @@ -2266,6 +2267,7 @@ "symfony/yaml": "^3.0 || ^4.0 || ^5.0" }, "suggest": { + "ext-dom": "For handling output formats in XML", "ext-mbstring": "For handling non-UTF8 characters in cache signature.", "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", @@ -2288,6 +2290,7 @@ "tests/Test/IntegrationCaseFactory.php", "tests/Test/IntegrationCaseFactoryInterface.php", "tests/Test/InternalIntegrationCaseFactory.php", + "tests/Test/IsIdenticalConstraint.php", "tests/TestCase.php" ] }, @@ -2306,7 +2309,7 @@ } ], "description": "A tool to automatically fix PHP code style", - "time": "2019-11-25T22:10:32+00:00" + "time": "2020-04-10T21:08:06+00:00" }, { "name": "fzaninotto/faker", @@ -4348,16 +4351,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.4", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b" + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b", - "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abc8e3618bfdb55e44c8c6a00abd333f831bbfed", + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed", "shasum": "" }, "require": { @@ -4414,7 +4417,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2020-01-10T21:54:01+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4476,16 +4479,16 @@ }, { "name": "symfony/filesystem", - "version": "v4.4.4", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd" + "reference": "fe297193bf2e6866ed900ed2d5869362768df6a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/266c9540b475f26122b61ef8b23dd9198f5d1cfd", - "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fe297193bf2e6866ed900ed2d5869362768df6a7", + "reference": "fe297193bf2e6866ed900ed2d5869362768df6a7", "shasum": "" }, "require": { @@ -4522,20 +4525,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2020-01-21T08:20:44+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/options-resolver", - "version": "v4.4.4", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0" + "reference": "9072131b5e6e21203db3249c7db26b52897bc73e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0", - "reference": "9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9072131b5e6e21203db3249c7db26b52897bc73e", + "reference": "9072131b5e6e21203db3249c7db26b52897bc73e", "shasum": "" }, "require": { @@ -4576,20 +4579,20 @@ "configuration", "options" ], - "time": "2020-01-04T13:00:46+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", "shasum": "" }, "require": { @@ -4601,7 +4604,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -4634,20 +4637,20 @@ "polyfill", "portable" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/polyfill-php70", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "419c4940024c30ccc033650373a1fe13890d3255" + "reference": "2a18e37a489803559284416df58c71ccebe50bf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/419c4940024c30ccc033650373a1fe13890d3255", - "reference": "419c4940024c30ccc033650373a1fe13890d3255", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/2a18e37a489803559284416df58c71ccebe50bf0", + "reference": "2a18e37a489803559284416df58c71ccebe50bf0", "shasum": "" }, "require": { @@ -4657,7 +4660,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -4693,20 +4696,20 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf" + "reference": "37b0976c78b94856543260ce09b460a7bc852747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", - "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", + "reference": "37b0976c78b94856543260ce09b460a7bc852747", "shasum": "" }, "require": { @@ -4715,7 +4718,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -4748,20 +4751,20 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/process", - "version": "v4.4.4", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36" + "reference": "3e40e87a20eaf83a1db825e1fa5097ae89042db3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36", - "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36", + "url": "https://api.github.com/repos/symfony/process/zipball/3e40e87a20eaf83a1db825e1fa5097ae89042db3", + "reference": "3e40e87a20eaf83a1db825e1fa5097ae89042db3", "shasum": "" }, "require": { @@ -4797,20 +4800,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2020-01-09T09:50:08+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/stopwatch", - "version": "v4.4.4", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "abc08d7c48987829bac301347faa10f7e8bbf4fb" + "reference": "e0324d3560e4128270e3f08617480d9233d81cfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/abc08d7c48987829bac301347faa10f7e8bbf4fb", - "reference": "abc08d7c48987829bac301347faa10f7e8bbf4fb", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e0324d3560e4128270e3f08617480d9233d81cfc", + "reference": "e0324d3560e4128270e3f08617480d9233d81cfc", "shasum": "" }, "require": { @@ -4847,7 +4850,7 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2020-01-04T13:00:46+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/yaml", From fc49d1318d7842557ada8e0ec640a709e7201859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 11 Apr 2020 15:41:38 +0200 Subject: [PATCH 007/305] Enhancement: Synchronize with ergebnis/php-library-template --- .dependabot/config.yaml | 5 +- .github/CONTRIBUTING.md | 14 +++- .github/settings.yml | 9 ++- .github/workflows/integrate.yaml | 126 ++++++++++++++++++++++++++----- .github/workflows/renew.yaml | 2 +- .gitignore | 1 + .php_cs | 1 + .yamllint.yaml | 3 +- Makefile | 4 +- phpstan.neon | 2 +- psalm-baseline.xml | 2 +- 11 files changed, 136 insertions(+), 33 deletions(-) diff --git a/.dependabot/config.yaml b/.dependabot/config.yaml index bfda34e2..429ce1af 100644 --- a/.dependabot/config.yaml +++ b/.dependabot/config.yaml @@ -3,10 +3,7 @@ version: 1 update_configs: - - automerged_updates: - - match: - dependency_type: "development" - commit_message: + - commit_message: include_scope: true prefix: "Build" default_labels: diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 4c9d7e8d..3197d614 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -11,7 +11,17 @@ For details, take a look at the following workflow configuration files: ## Coding Standards -We are using [`friendsofphp/php-cs-fixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer) to enforce coding standards. +We are using [`yamllint`](https://github.com/adrienverge/yamllint) to enforce coding standards in YAML files. + +If you do not have `yamllint` installed yet, run + +``` +$ brew install yamllint +``` + +to install `yamllint`. + +We are using [`friendsofphp/php-cs-fixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer) to enforce coding standards in PHP files. Run @@ -89,7 +99,7 @@ Run $ make ``` -to enforce coding standards, run a dependency analysis, run a static code analysis, and run tests! +to enforce coding standards, run a static code analysis, and run tests! ## Help diff --git a/.github/settings.yml b/.github/settings.yml index 26c6eb62..a40b1caa 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -31,8 +31,6 @@ branches: - "Tests (7.4, highest)" - "Code Coverage (7.4, locked)" - "Mutation Tests (7.4, locked)" - - "codecov/patch" - - "codecov/project" strict: false restrictions: @@ -41,8 +39,7 @@ branches: # Note: User, app, and team restrictions are only available for organization-owned repositories. # Set to null to disable when using this configuration for a repository on a personal account. - apps: - - "dependabot-preview" + apps: [] teams: [] users: - "ergebnis-bot" @@ -63,6 +60,10 @@ labels: color: "0e8a16" description: "" + - name: "merge" + color: "6f42c1" + description: "" + - name: "question" color: "cc317c" description: "" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 421582e4..397d4312 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -56,7 +56,7 @@ jobs: uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install lowest dependencies from composer.json" @@ -81,7 +81,7 @@ jobs: uses: "actions/cache@v1" with: path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('**/composer.lock') }}" + key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - name: "Run friendsofphp/php-cs-fixer" @@ -119,7 +119,7 @@ jobs: uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install lowest dependencies from composer.json" @@ -169,7 +169,7 @@ jobs: uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" - key: "${{ matrix.php-version }}-composer-locked-${{ hashFiles('**/composer.lock') }}" + key: "${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" restore-keys: "${{ matrix.php-version }}-composer-locked-" - name: "Install lowest dependencies from composer.json" @@ -187,14 +187,28 @@ jobs: - name: "Create cache directory for phpstan/phpstan" run: "mkdir -p .build/phpstan" + - name: "Cache cache directory for phpstan/phpstan" + uses: "actions/cache@v1" + with: + path: ".build/phpstan" + key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" + restore-keys: "php-${{ matrix.php-version }}-phpstan-" + - name: "Run phpstan/phpstan" run: "vendor/bin/phpstan analyse --configuration=phpstan.neon" - name: "Create cache directory for vimeo/psalm" run: "mkdir -p .build/psalm" + - name: "Cache cache directory for vimeo/psalm" + uses: "actions/cache@v1" + with: + path: ".build/psalm" + key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" + restore-keys: "php-${{ matrix.php-version }}-psalm-" + - name: "Run vimeo/psalm" - run: "vendor/bin/psalm --config=psalm.xml --shepherd --show-info=false --stats" + run: "vendor/bin/psalm --config=psalm.xml --diff --diff-methods --shepherd --show-info=false --stats --threads=4" tests: name: "Tests" @@ -233,7 +247,7 @@ jobs: uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install lowest dependencies from composer.json" @@ -289,7 +303,7 @@ jobs: uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install lowest dependencies from composer.json" @@ -347,7 +361,7 @@ jobs: uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install lowest dependencies from composer.json" @@ -365,8 +379,8 @@ jobs: - name: "Run mutation tests with Xdebug and infection/infection" run: "vendor/bin/infection --ignore-msi-with-no-mutations --min-covered-msi=${{ env.MIN_COVERED_MSI }} --min-msi=${{ env.MIN_MSI }}" - review: - name: "Review" + merge: + name: "Merge" runs-on: "ubuntu-latest" @@ -378,15 +392,93 @@ jobs: - "static-code-analysis" - "tests" + if: > + github.event_name == 'pull_request' && + github.event.pull_request.draft == false && ( + github.event.action == 'opened' || + github.event.action == 'reopened' || + github.event.action == 'synchronize' + ) && ( + (github.actor == 'dependabot-preview[bot]' && startsWith(github.event.pull_request.title, 'Build(deps-dev)')) || + (github.actor == 'ergebnis-bot' && github.event.pull_request.title == 'Enhancement: Update license year') || + (github.actor == 'localheinz' && contains(github.event.pull_request.labels.*.name, 'merge')) + ) + steps: - - name: "Approve pull requests created by dependabot that update development dependencies" - uses: "hmarr/auto-approve-action@v2.0.0" - if: "(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]') && github.event_name == 'pull_request' && startsWith(github.event.pull_request.title, 'Build(deps-dev)')" + - name: "Request review from @ergebnis-bot" + uses: "actions/github-script@0.8.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - - - name: "Approve pull requests created by @ergebnis-bot that update the license year" - uses: "hmarr/auto-approve-action@v2.0.0" - if: "github.actor == 'ergebnis-bot' && github.event_name == 'pull_request' && github.event.pull_request.title == 'Enhancement: Update license year'" + script: | + const pullRequest = context.payload.pull_request + const repository = context.repo + + const reviewers = [ + "ergebnis-bot", + ] + + await github.pulls.createReviewRequest({ + owner: repository.owner, + pull_number: pullRequest.number, + repo: repository.repo, + reviewers: reviewers, + }) + + - name: "Wait" + run: "sleep 3" + + - name: "Assign @ergebnis-bot" + uses: "actions/github-script@0.8.0" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + script: | + const pullRequest = context.payload.pull_request + const repository = context.repo + + const reviewers = [ + "ergebnis-bot", + ] + + await github.issues.addAssignees({ + assignees: reviewers, + issue_number: pullRequest.number, + owner: repository.owner, + repo: repository.repo, + }) + + - name: "Wait" + run: "sleep 3" + + - name: "Approve pull request" + uses: "actions/github-script@0.8.0" + if: "github.actor != 'ergebnis-bot'" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + script: | + const pullRequest = context.payload.pull_request + const repository = context.repo + + await github.pulls.createReview({ + event: "APPROVE", + owner: repository.owner, + pull_number: pullRequest.number, + repo: repository.repo, + }) + + - name: "Wait" + run: "sleep 3" + + - name: "Merge pull request" + uses: "actions/github-script@0.8.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + script: | + const pullRequest = context.payload.pull_request + const repository = context.repo + + await github.pulls.merge({ + merge_method: "merge", + owner: repository.owner, + pull_number: pullRequest.number, + repo: repository.repo, + }) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 03a730b2..f82995d6 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -74,7 +74,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" - name: "Open pull request updating license year" - uses: "gr2m/create-or-update-pull-request-action@v1.2.9" + uses: "gr2m/create-or-update-pull-request-action@v1.2.10" with: author: "ergebnis-bot " branch: "feature/license-year" diff --git a/.gitignore b/.gitignore index 2dc50e82..0d234cb8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /.build/ +/.notes/ /vendor/ diff --git a/.php_cs b/.php_cs index b996ac22..518b5a86 100644 --- a/.php_cs +++ b/.php_cs @@ -35,6 +35,7 @@ $config->getFinder() '.build/', '.dependabot/', '.github/', + '.notes/', 'test/Fixture/', ]) ->name([ diff --git a/.yamllint.yaml b/.yamllint.yaml index 17b1b556..7c36ddbe 100644 --- a/.yamllint.yaml +++ b/.yamllint.yaml @@ -2,6 +2,7 @@ extends: "default" ignore: | .build/ + .notes/ vendor/ rules: @@ -32,7 +33,7 @@ rules: document-start: present: false indentation: - check-multi-line-strings: true + check-multi-line-strings: false indent-sequences: true spaces: 2 empty-lines: diff --git a/Makefile b/Makefile index 2d418260..16ca5bb9 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ MIN_COVERED_MSI:=92 MIN_MSI:=83 .PHONY: it -it: coding-standards dependency-analysis static-code-analysis tests ## Runs the coding-standards, dependency-analysis, static-code-analysis, and tests targets +it: coding-standards static-code-analysis tests ## Runs the coding-standards, static-code-analysis, and tests targets .PHONY: code-coverage code-coverage: vendor ## Collects coverage from running unit tests with phpunit/phpunit @@ -34,7 +34,7 @@ static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan mkdir -p .build/phpstan vendor/bin/phpstan analyse --configuration=phpstan.neon mkdir -p .build/psalm - vendor/bin/psalm --config=psalm.xml --show-info=false --stats + vendor/bin/psalm --config=psalm.xml --diff --diff-methods --show-info=false --stats --threads=4 .PHONY: static-code-analysis-baseline static-code-analysis-baseline: vendor ## Generates a baseline for static code analysis with phpstan/phpstan and vimeo/psalm diff --git a/phpstan.neon b/phpstan.neon index 57a10422..8b48fa46 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -15,4 +15,4 @@ parameters: paths: - src/ - test/ - tmpDir: %currentWorkingDirectory%/.build/phpstan/ + tmpDir: .build/phpstan/ diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 06e5f373..223e9ba0 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + $node->namespacedName From 7ea81188a2053dad491f9d8dc5fb0e35499f40a6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2020 19:24:00 +0000 Subject: [PATCH 008/305] Build(deps-dev): Bump vimeo/psalm from 3.10.1 to 3.11.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.10.1 to 3.11.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.10.1...3.11.0) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 71 +++++++++++++++++++++++++++++---------------------- 2 files changed, 41 insertions(+), 32 deletions(-) diff --git a/composer.json b/composer.json index 46cde758..57f2cf00 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.0", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.10.1", + "vimeo/psalm": "^3.11.0", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 348561aa..7eb0079f 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": "3d132c2085abbd736193585ade40e815", + "content-hash": "a77f20d388954628e47b721ced817c94", "packages": [ { "name": "composer/xdebug-handler", @@ -1252,16 +1252,16 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.4.1", + "version": "v2.4.2", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "2ac3b550c4997f2ec304faa63c8b2885079a2dc4" + "reference": "feca077369a47263b22156b3c6389e55f3809f24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/2ac3b550c4997f2ec304faa63c8b2885079a2dc4", - "reference": "2ac3b550c4997f2ec304faa63c8b2885079a2dc4", + "url": "https://api.github.com/repos/amphp/amp/zipball/feca077369a47263b22156b3c6389e55f3809f24", + "reference": "feca077369a47263b22156b3c6389e55f3809f24", "shasum": "" }, "require": { @@ -1271,14 +1271,15 @@ "amphp/php-cs-fixer-config": "dev-master", "amphp/phpunit-util": "^1", "ext-json": "*", - "phpstan/phpstan": "^0.8.5", + "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^6.0.9 | ^7", - "react/promise": "^2" + "react/promise": "^2", + "vimeo/psalm": "^3.9@dev" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -1325,20 +1326,20 @@ "non-blocking", "promise" ], - "time": "2020-02-10T18:10:57+00:00" + "time": "2020-04-04T15:05:26+00:00" }, { "name": "amphp/byte-stream", - "version": "v1.7.2", + "version": "v1.7.3", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "1e52f1752b2e20e2a7e464476ef887a2388e3832" + "reference": "b867505edb79dda8f253ca3c3a2bbadae4b16592" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/1e52f1752b2e20e2a7e464476ef887a2388e3832", - "reference": "1e52f1752b2e20e2a7e464476ef887a2388e3832", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/b867505edb79dda8f253ca3c3a2bbadae4b16592", + "reference": "b867505edb79dda8f253ca3c3a2bbadae4b16592", "shasum": "" }, "require": { @@ -1348,10 +1349,16 @@ "amphp/php-cs-fixer-config": "dev-master", "amphp/phpunit-util": "^1", "friendsofphp/php-cs-fixer": "^2.3", - "infection/infection": "^0.9.3", - "phpunit/phpunit": "^6" + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "vimeo/psalm": "^3.9@dev" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { "psr-4": { "Amp\\ByteStream\\": "lib" @@ -1384,7 +1391,7 @@ "non-blocking", "stream" ], - "time": "2020-01-29T18:22:23+00:00" + "time": "2020-04-04T16:56:54+00:00" }, { "name": "composer/ca-bundle", @@ -2618,16 +2625,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v1.6.0", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "0d4d1b48d682a93b6bfedf60b88c7750e9cb0b06" + "reference": "e245890383c3ed38b6d202ee373c23ccfebc0f54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/0d4d1b48d682a93b6bfedf60b88c7750e9cb0b06", - "reference": "0d4d1b48d682a93b6bfedf60b88c7750e9cb0b06", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e245890383c3ed38b6d202ee373c23ccfebc0f54", + "reference": "e245890383c3ed38b6d202ee373c23ccfebc0f54", "shasum": "" }, "require": { @@ -2638,8 +2645,8 @@ "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4", - "squizlabs/php_codesniffer": "~1.5" + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "squizlabs/php_codesniffer": "~3.5" }, "type": "library", "autoload": { @@ -2660,7 +2667,7 @@ } ], "description": "Map nested JSON structures onto PHP classes", - "time": "2019-08-15T19:41:25+00:00" + "time": "2020-03-04T17:23:33+00:00" }, { "name": "openlss/lib-array2xml", @@ -4953,16 +4960,16 @@ }, { "name": "vimeo/psalm", - "version": "3.10.1", + "version": "3.11.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "eeed5ecccc10131397f0eb7ee6da810c0be3a7fc" + "reference": "5bc9b095d1a6f1a2e0890353fc2c6cd7de62371d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/eeed5ecccc10131397f0eb7ee6da810c0be3a7fc", - "reference": "eeed5ecccc10131397f0eb7ee6da810c0be3a7fc", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/5bc9b095d1a6f1a2e0890353fc2c6cd7de62371d", + "reference": "5bc9b095d1a6f1a2e0890353fc2c6cd7de62371d", "shasum": "" }, "require": { @@ -4977,7 +4984,7 @@ "ext-tokenizer": "*", "felixfbecker/advanced-json-rpc": "^3.0.3", "felixfbecker/language-server-protocol": "^1.4", - "netresearch/jsonmapper": "^1.0", + "netresearch/jsonmapper": "^1.0 || ^2.0", "nikic/php-parser": "^4.3", "ocramius/package-versions": "^1.2", "openlss/lib-array2xml": "^1.0", @@ -4991,13 +4998,15 @@ "psalm/psalm": "self.version" }, "require-dev": { + "amphp/amp": "^2.4.2", "bamarni/composer-bin-plugin": "^1.2", "brianium/paratest": "^4.0.0", "ext-curl": "*", + "php-coveralls/php-coveralls": "^2.2", "phpmyadmin/sql-parser": "5.1.0", "phpspec/prophecy": ">=1.9.0", - "phpunit/phpunit": "^7.5.16 || ^8.5", - "psalm/plugin-phpunit": "^0.9", + "phpunit/phpunit": "^7.5.16 || ^8.5 || ^9.0", + "psalm/plugin-phpunit": "^0.10", "slevomat/coding-standard": "^5.0", "squizlabs/php_codesniffer": "^3.5", "symfony/process": "^4.3" @@ -5045,7 +5054,7 @@ "inspection", "php" ], - "time": "2020-03-23T11:40:30+00:00" + "time": "2020-04-12T18:43:12+00:00" }, { "name": "webmozart/assert", From aa59bd51169287bbeb895e9da1e0847debf9a08f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2020 07:50:08 +0000 Subject: [PATCH 009/305] Build(deps-dev): Bump vimeo/psalm from 3.11.0 to 3.11.1 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.11.0 to 3.11.1. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.11.0...3.11.1) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 57f2cf00..591fd235 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.0", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.11.0", + "vimeo/psalm": "^3.11.1", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 7eb0079f..ff8a57ab 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": "a77f20d388954628e47b721ced817c94", + "content-hash": "c8c78fb0a996b0aa2d4d2c3f1dc7ddfa", "packages": [ { "name": "composer/xdebug-handler", @@ -4960,16 +4960,16 @@ }, { "name": "vimeo/psalm", - "version": "3.11.0", + "version": "3.11.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "5bc9b095d1a6f1a2e0890353fc2c6cd7de62371d" + "reference": "8533b866ab1a46e5a69a4692ff57f10529dbfbeb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/5bc9b095d1a6f1a2e0890353fc2c6cd7de62371d", - "reference": "5bc9b095d1a6f1a2e0890353fc2c6cd7de62371d", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/8533b866ab1a46e5a69a4692ff57f10529dbfbeb", + "reference": "8533b866ab1a46e5a69a4692ff57f10529dbfbeb", "shasum": "" }, "require": { @@ -5054,7 +5054,7 @@ "inspection", "php" ], - "time": "2020-04-12T18:43:12+00:00" + "time": "2020-04-13T02:19:49+00:00" }, { "name": "webmozart/assert", From ba385f3c0124860c3934ca429135b8e81cfa85cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Thu, 16 Apr 2020 08:39:04 +0200 Subject: [PATCH 010/305] Fix: Synchronize with ergebnis/php-library-template --- .yamllint.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.yamllint.yaml b/.yamllint.yaml index 7c36ddbe..b2129ac2 100644 --- a/.yamllint.yaml +++ b/.yamllint.yaml @@ -62,5 +62,5 @@ rules: - "true" yaml-files: - - '*.yaml' - - '*.yml' + - "*.yaml" + - "*.yml" From c5fba687d12bf2a2b106027df8381f063df9614b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2020 07:00:31 +0000 Subject: [PATCH 011/305] Build(deps-dev): Bump vimeo/psalm from 3.11.1 to 3.11.2 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.11.1 to 3.11.2. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.11.1...3.11.2) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 591fd235..570716bf 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.0", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.11.1", + "vimeo/psalm": "^3.11.2", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index ff8a57ab..c392599b 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": "c8c78fb0a996b0aa2d4d2c3f1dc7ddfa", + "content-hash": "d5d9a467c3fc1f2d79000307d6ede2e7", "packages": [ { "name": "composer/xdebug-handler", @@ -4960,16 +4960,16 @@ }, { "name": "vimeo/psalm", - "version": "3.11.1", + "version": "3.11.2", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "8533b866ab1a46e5a69a4692ff57f10529dbfbeb" + "reference": "d470903722cfcbc1cd04744c5491d3e6d13ec3d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/8533b866ab1a46e5a69a4692ff57f10529dbfbeb", - "reference": "8533b866ab1a46e5a69a4692ff57f10529dbfbeb", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d470903722cfcbc1cd04744c5491d3e6d13ec3d9", + "reference": "d470903722cfcbc1cd04744c5491d3e6d13ec3d9", "shasum": "" }, "require": { @@ -5054,7 +5054,7 @@ "inspection", "php" ], - "time": "2020-04-13T02:19:49+00:00" + "time": "2020-04-13T12:47:11+00:00" }, { "name": "webmozart/assert", From 251d3d8cedfd6fa52c8c0e2bf146ddbbd550c22a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 26 Apr 2020 19:08:29 +0000 Subject: [PATCH 012/305] Build(deps-dev): Bump ergebnis/composer-normalize from 2.3.2 to 2.4.0 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.3.2 to 2.4.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/master/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.3.2...2.4.0) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 69 ++++++++++++++++++++++++++------------------------- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/composer.json b/composer.json index 570716bf..4fef682e 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.3.2", + "ergebnis/composer-normalize": "^2.4.0", "ergebnis/license": "~0.1.0", "ergebnis/php-cs-fixer-config": "^2.1.1", "ergebnis/test-util": "~1.0.0", diff --git a/composer.lock b/composer.lock index c392599b..a427f0c1 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": "d5d9a467c3fc1f2d79000307d6ede2e7", + "content-hash": "1efcb5142c69498f3398232d81133c9f", "packages": [ { "name": "composer/xdebug-handler", @@ -1784,41 +1784,42 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.3.2", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "d171b088ff9dcfda53277200a9ecc9a1d0deaef5" + "reference": "6129311c1738bd45a06ed7c3773b631d75336f93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d171b088ff9dcfda53277200a9ecc9a1d0deaef5", - "reference": "d171b088ff9dcfda53277200a9ecc9a1d0deaef5", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/6129311c1738bd45a06ed7c3773b631d75336f93", + "reference": "6129311c1738bd45a06ed7c3773b631d75336f93", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1.0", - "ergebnis/json-normalizer": "~0.11.0", + "composer-plugin-api": "^1.1.0 || ^2.0.0", + "ergebnis/json-normalizer": "~0.12.0", "ergebnis/json-printer": "^3.0.2", "localheinz/diff": "^1.0.1", "php": "^7.1" }, "require-dev": { - "composer/composer": "^1.10.1", + "composer/composer": "^1.10.5", + "composer/package-versions-deprecated": "^1.8.0", "ergebnis/license": "~0.1.0", - "ergebnis/php-cs-fixer-config": "^2.1.0", - "ergebnis/phpstan-rules": "~0.14.3", + "ergebnis/php-cs-fixer-config": "^2.1.2", + "ergebnis/phpstan-rules": "~0.14.4", "ergebnis/test-util": "~1.0.0", "jangregor/phpstan-prophecy": "~0.6.2", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.14", + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.19", "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.8", "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.9.0", - "symfony/filesystem": "^4.4.5", - "vimeo/psalm": "^3.9.5" + "psalm/plugin-phpunit": "~0.10.0", + "symfony/filesystem": "^4.4.7", + "vimeo/psalm": "^3.11.2" }, "type": "composer-plugin", "extra": { @@ -1847,20 +1848,20 @@ "normalizer", "plugin" ], - "time": "2020-03-13T20:09:01+00:00" + "time": "2020-04-26T18:11:30+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "0.11.0", + "version": "0.12.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "6a41d9a53f640bff8ef5516efd3aadc6f1ad1f37" + "reference": "0197447cd5d8f7e82116e904196a3e9f470655db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/6a41d9a53f640bff8ef5516efd3aadc6f1ad1f37", - "reference": "6a41d9a53f640bff8ef5516efd3aadc6f1ad1f37", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/0197447cd5d8f7e82116e904196a3e9f470655db", + "reference": "0197447cd5d8f7e82116e904196a3e9f470655db", "shasum": "" }, "require": { @@ -1870,20 +1871,20 @@ "php": "^7.1" }, "require-dev": { - "ergebnis/php-cs-fixer-config": "^1.1.3", - "ergebnis/phpstan-rules": "~0.14.2", - "ergebnis/test-util": "~0.9.1", + "ergebnis/license": "~0.1.0", + "ergebnis/php-cs-fixer-config": "^2.1.2", + "ergebnis/phpstan-rules": "~0.14.4", + "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", - "jangregor/phpstan-prophecy": "~0.6.0", - "phpbench/phpbench": "~0.16.10", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.4", - "phpstan/phpstan-deprecation-rules": "~0.12.1", - "phpstan/phpstan-phpunit": "~0.12.5", - "phpstan/phpstan-strict-rules": "~0.12.1", + "jangregor/phpstan-prophecy": "~0.6.2", + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.18", + "phpstan/phpstan-deprecation-rules": "~0.12.2", + "phpstan/phpstan-phpunit": "~0.12.8", + "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.8.0", - "vimeo/psalm": "^3.8.2" + "psalm/plugin-phpunit": "~0.10.0", + "vimeo/psalm": "^3.11.2" }, "type": "library", "autoload": { @@ -1907,7 +1908,7 @@ "json", "normalizer" ], - "time": "2020-01-09T13:43:00+00:00" + "time": "2020-04-19T12:30:41+00:00" }, { "name": "ergebnis/json-printer", From c582f64092ed8660f69adc9916452524c37ac7ff Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 26 Apr 2020 19:14:09 +0000 Subject: [PATCH 013/305] Build(deps-dev): Bump ergebnis/php-cs-fixer-config from 2.1.1 to 2.1.2 Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.1.1 to 2.1.2. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/master/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.1.1...2.1.2) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/composer.json b/composer.json index 4fef682e..b0b7f425 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.4.0", "ergebnis/license": "~0.1.0", - "ergebnis/php-cs-fixer-config": "^2.1.1", + "ergebnis/php-cs-fixer-config": "^2.1.2", "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index a427f0c1..66b70cbe 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": "1efcb5142c69498f3398232d81133c9f", + "content-hash": "5df8b7fec777d25c3319e4d7de8cb154", "packages": [ { "name": "composer/xdebug-handler", @@ -1544,16 +1544,16 @@ }, { "name": "doctrine/annotations", - "version": "1.10.1", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "5eb79f3dbdffed6544e1fc287572c0f462bd29bb" + "reference": "b9d758e831c70751155c698c2f7df4665314a1cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/5eb79f3dbdffed6544e1fc287572c0f462bd29bb", - "reference": "5eb79f3dbdffed6544e1fc287572c0f462bd29bb", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/b9d758e831c70751155c698c2f7df4665314a1cb", + "reference": "b9d758e831c70751155c698c2f7df4665314a1cb", "shasum": "" }, "require": { @@ -1609,7 +1609,7 @@ "docblock", "parser" ], - "time": "2020-04-02T12:33:25+00:00" + "time": "2020-04-20T09:18:32+00:00" }, { "name": "doctrine/instantiator", @@ -2026,21 +2026,21 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.1.1", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "f831e9038ec748be2e44d17eb6f3fac1cc0a1603" + "reference": "c811e48e106a6decc20b3e305629e11c515a772c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/f831e9038ec748be2e44d17eb6f3fac1cc0a1603", - "reference": "f831e9038ec748be2e44d17eb6f3fac1cc0a1603", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/c811e48e106a6decc20b3e305629e11c515a772c", + "reference": "c811e48e106a6decc20b3e305629e11c515a772c", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.16.2", + "friendsofphp/php-cs-fixer": "~2.16.3", "php": "^7.1" }, "require-dev": { @@ -2053,12 +2053,12 @@ "phpstan/extension-installer": "^1.0.4", "phpstan/phpstan": "~0.12.18", "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.7", "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.0", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.10.1" + "vimeo/psalm": "^3.11.2" }, "type": "library", "autoload": { @@ -2078,7 +2078,7 @@ ], "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", "homepage": "https://github.com/ergebnis/php-cs-fixer-config", - "time": "2020-04-11T09:41:42+00:00" + "time": "2020-04-16T08:02:53+00:00" }, { "name": "ergebnis/test-util", @@ -2230,16 +2230,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.16.2", + "version": "v2.16.3", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "c460a3cbaa58f983fe026cd52c45950bf61e9239" + "reference": "83baf823a33a1cbd5416c8626935cf3f843c10b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/c460a3cbaa58f983fe026cd52c45950bf61e9239", - "reference": "c460a3cbaa58f983fe026cd52c45950bf61e9239", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/83baf823a33a1cbd5416c8626935cf3f843c10b0", + "reference": "83baf823a33a1cbd5416c8626935cf3f843c10b0", "shasum": "" }, "require": { @@ -2317,7 +2317,7 @@ } ], "description": "A tool to automatically fix PHP code style", - "time": "2020-04-10T21:08:06+00:00" + "time": "2020-04-15T18:51:10+00:00" }, { "name": "fzaninotto/faker", From 2af2182a039dd19f889a11d5c2e4b264af958107 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2020 21:43:08 +0000 Subject: [PATCH 014/305] Build(deps-dev): Bump ergebnis/composer-normalize from 2.4.0 to 2.5.0 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.4.0 to 2.5.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/master/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.4.0...2.5.0) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 20 ++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index b0b7f425..1780d014 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.4.0", + "ergebnis/composer-normalize": "^2.5.0", "ergebnis/license": "~0.1.0", "ergebnis/php-cs-fixer-config": "^2.1.2", "ergebnis/test-util": "~1.0.0", diff --git a/composer.lock b/composer.lock index 66b70cbe..27339409 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": "5df8b7fec777d25c3319e4d7de8cb154", + "content-hash": "f74656ca30db582517d3532dbd00ce82", "packages": [ { "name": "composer/xdebug-handler", @@ -1784,16 +1784,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.4.0", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "6129311c1738bd45a06ed7c3773b631d75336f93" + "reference": "ae076999ae6a4a4641906db0e947dd70391ac296" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/6129311c1738bd45a06ed7c3773b631d75336f93", - "reference": "6129311c1738bd45a06ed7c3773b631d75336f93", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/ae076999ae6a4a4641906db0e947dd70391ac296", + "reference": "ae076999ae6a4a4641906db0e947dd70391ac296", "shasum": "" }, "require": { @@ -1804,10 +1804,8 @@ "php": "^7.1" }, "require-dev": { - "composer/composer": "^1.10.5", + "composer/composer": "^1.10.5 || ^2.0.0", "composer/package-versions-deprecated": "^1.8.0", - "ergebnis/license": "~0.1.0", - "ergebnis/php-cs-fixer-config": "^2.1.2", "ergebnis/phpstan-rules": "~0.14.4", "ergebnis/test-util": "~1.0.0", "jangregor/phpstan-prophecy": "~0.6.2", @@ -1817,9 +1815,7 @@ "phpstan/phpstan-phpunit": "~0.12.8", "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.0", - "symfony/filesystem": "^4.4.7", - "vimeo/psalm": "^3.11.2" + "symfony/filesystem": "^4.4.8" }, "type": "composer-plugin", "extra": { @@ -1848,7 +1844,7 @@ "normalizer", "plugin" ], - "time": "2020-04-26T18:11:30+00:00" + "time": "2020-04-30T21:23:32+00:00" }, { "name": "ergebnis/json-normalizer", From dc2acb3b9bc239e7f748d89f40142a7d384b2ec1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 1 May 2020 16:13:39 +0000 Subject: [PATCH 015/305] Build(deps-dev): Bump ergebnis/composer-normalize from 2.5.0 to 2.5.1 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/master/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.5.0...2.5.1) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 1780d014..665c27bd 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.5.0", + "ergebnis/composer-normalize": "^2.5.1", "ergebnis/license": "~0.1.0", "ergebnis/php-cs-fixer-config": "^2.1.2", "ergebnis/test-util": "~1.0.0", diff --git a/composer.lock b/composer.lock index 27339409..7b4b4728 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": "f74656ca30db582517d3532dbd00ce82", + "content-hash": "44f33bd3fcf1464cfa8207802ff2ae3a", "packages": [ { "name": "composer/xdebug-handler", @@ -1784,16 +1784,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.5.0", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "ae076999ae6a4a4641906db0e947dd70391ac296" + "reference": "d0faf549e565757a7ffbf1f306a4293080e43bdd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/ae076999ae6a4a4641906db0e947dd70391ac296", - "reference": "ae076999ae6a4a4641906db0e947dd70391ac296", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d0faf549e565757a7ffbf1f306a4293080e43bdd", + "reference": "d0faf549e565757a7ffbf1f306a4293080e43bdd", "shasum": "" }, "require": { @@ -1844,7 +1844,7 @@ "normalizer", "plugin" ], - "time": "2020-04-30T21:23:32+00:00" + "time": "2020-05-01T12:02:09+00:00" }, { "name": "ergebnis/json-normalizer", From 453fe195504a7f75049d1984cd40b25dd89a1267 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 4 May 2020 17:50:30 +0000 Subject: [PATCH 016/305] Build(deps-dev): Bump ergebnis/license from 0.1.0 to 1.0.0 Bumps [ergebnis/license](https://github.com/ergebnis/license) from 0.1.0 to 1.0.0. - [Release notes](https://github.com/ergebnis/license/releases) - [Changelog](https://github.com/ergebnis/license/blob/master/CHANGELOG.md) - [Commits](https://github.com/ergebnis/license/compare/0.1.0...1.0.0) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/composer.json b/composer.json index 665c27bd..e9768738 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ }, "require-dev": { "ergebnis/composer-normalize": "^2.5.1", - "ergebnis/license": "~0.1.0", + "ergebnis/license": "~1.0.0", "ergebnis/php-cs-fixer-config": "^2.1.2", "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", diff --git a/composer.lock b/composer.lock index 7b4b4728..1e353704 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": "44f33bd3fcf1464cfa8207802ff2ae3a", + "content-hash": "8f405cb7e4a1a8eb6f1e85845b7adaac", "packages": [ { "name": "composer/xdebug-handler", @@ -1964,16 +1964,16 @@ }, { "name": "ergebnis/license", - "version": "0.1.0", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/ergebnis/license.git", - "reference": "ca94bcaabcbd56e663899fc4510e9cfdd8c6329c" + "reference": "d36cbe3a4ca62c9df902e4133f0a84307a75034a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/license/zipball/ca94bcaabcbd56e663899fc4510e9cfdd8c6329c", - "reference": "ca94bcaabcbd56e663899fc4510e9cfdd8c6329c", + "url": "https://api.github.com/repos/ergebnis/license/zipball/d36cbe3a4ca62c9df902e4133f0a84307a75034a", + "reference": "d36cbe3a4ca62c9df902e4133f0a84307a75034a", "shasum": "" }, "require": { @@ -1981,21 +1981,21 @@ "php": "^7.1" }, "require-dev": { - "ergebnis/composer-normalize": "^2.2.2", - "ergebnis/php-cs-fixer-config": "~1.1.3", - "ergebnis/phpstan-rules": "~0.14.2", - "ergebnis/test-util": "~0.9.1", + "ergebnis/composer-normalize": "^2.5.1", + "ergebnis/php-cs-fixer-config": "~2.1.2", + "ergebnis/phpstan-rules": "~0.14.4", + "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", - "jangregor/phpstan-prophecy": "~0.6.0", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.5", + "jangregor/phpstan-prophecy": "~0.6.2", + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.22", "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.6", - "phpstan/phpstan-strict-rules": "~0.12.1", + "phpstan/phpstan-phpunit": "~0.12.8", + "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.8.1", - "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.8.3" + "psalm/plugin-phpunit": "~0.10.0", + "symfony/filesystem": "^4.4.8", + "vimeo/psalm": "^3.11.2" }, "type": "library", "autoload": { @@ -2013,12 +2013,12 @@ "email": "am@localheinz.com" } ], - "description": "Provides an abstraction for a license.", + "description": "Provides an abstraction of an open-source license.", "homepage": "https://github.com/ergebnis/license", "keywords": [ "license" ], - "time": "2020-01-19T13:40:34+00:00" + "time": "2020-05-04T17:36:52+00:00" }, { "name": "ergebnis/php-cs-fixer-config", From 949e84a09f997361be7204757820a3ad0b09d0f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 10 May 2020 19:17:18 +0200 Subject: [PATCH 017/305] Enhancement: Synchronize with ergebnis/php-library-template --- .gitattributes | 2 ++ .github/CONTRIBUTING.md | 3 +++ .github/settings.yml | 20 +++++++-------- .github/workflows/integrate.yaml | 15 +++-------- .github/workflows/prune.yaml | 2 +- .github/workflows/triage.yaml | 42 +++++++++++++++++++++++++++++++ Makefile | 7 +++--- README.md | 4 +++ phive.xml | 4 +++ tools/composer-require-checker | Bin 0 -> 493018 bytes 10 files changed, 73 insertions(+), 26 deletions(-) create mode 100644 .github/workflows/triage.yaml create mode 100644 phive.xml create mode 100755 tools/composer-require-checker diff --git a/.gitattributes b/.gitattributes index 36d16720..48dbf2f4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,12 +1,14 @@ /.dependabot/ export-ignore /.github/ export-ignore /test/ export-ignore +/tools/ export-ignore /.editorconfig export-ignore /.gitattributes export-ignore /.gitignore export-ignore /.php_cs export-ignore /infection.json export-ignore /Makefile export-ignore +/phive.xml export-ignore /phpstan-baseline.neon export-ignore /phpstan.neon export-ignore /psalm-baseline.xml export-ignore diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 3197d614..4a07dd7e 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -8,9 +8,12 @@ For details, take a look at the following workflow configuration files: - [`workflows/prune.yaml`](workflows/prune.yaml) - [`workflows/release.yaml`](workflows/release.yaml) - [`workflows/renew.yaml`](workflows/renew.yaml) +- [`workflows/triage.yaml`](workflows/triage.yaml) ## Coding Standards +We are using [`ergebnis/composer-normalize`](https://github.com/ergebnis/composer-normalize) to normalize `composer.json`. + We are using [`yamllint`](https://github.com/adrienverge/yamllint) to enforce coding standards in YAML files. If you do not have `yamllint` installed yet, run diff --git a/.github/settings.yml b/.github/settings.yml index a40b1caa..2f4990f1 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -14,23 +14,23 @@ branches: required_approving_review_count: 1 required_status_checks: contexts: + - "Code Coverage (7.4, locked)" - "Coding Standards (7.1, locked)" - "Dependency Analysis (7.4, locked)" + - "Mutation Tests (7.4, locked)" - "Static Code Analysis (7.4, locked)" - - "Tests (7.1, lowest)" - - "Tests (7.1, locked)" - "Tests (7.1, highest)" - - "Tests (7.2, lowest)" - - "Tests (7.2, locked)" + - "Tests (7.1, locked)" + - "Tests (7.1, lowest)" - "Tests (7.2, highest)" - - "Tests (7.3, lowest)" - - "Tests (7.3, locked)" + - "Tests (7.2, locked)" + - "Tests (7.2, lowest)" - "Tests (7.3, highest)" - - "Tests (7.4, lowest)" - - "Tests (7.4, locked)" + - "Tests (7.3, locked)" + - "Tests (7.3, lowest)" - "Tests (7.4, highest)" - - "Code Coverage (7.4, locked)" - - "Mutation Tests (7.4, locked)" + - "Tests (7.4, locked)" + - "Tests (7.4, lowest)" strict: false restrictions: diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 397d4312..c14ee572 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -135,7 +135,7 @@ jobs: run: "composer update --no-interaction --no-progress --no-suggest" - name: "Run maglnet/composer-require-checker" - uses: "docker://webfactory/composer-require-checker:2.1.0" + run: "tools/composer-require-checker check" static-code-analysis: name: "Static Code Analysis" @@ -169,8 +169,8 @@ jobs: uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" - key: "${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" - restore-keys: "${{ matrix.php-version }}-composer-locked-" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" + restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install lowest dependencies from composer.json" if: "matrix.dependencies == 'lowest'" @@ -424,9 +424,6 @@ jobs: reviewers: reviewers, }) - - name: "Wait" - run: "sleep 3" - - name: "Assign @ergebnis-bot" uses: "actions/github-script@0.8.0" with: @@ -446,9 +443,6 @@ jobs: repo: repository.repo, }) - - name: "Wait" - run: "sleep 3" - - name: "Approve pull request" uses: "actions/github-script@0.8.0" if: "github.actor != 'ergebnis-bot'" @@ -465,9 +459,6 @@ jobs: repo: repository.repo, }) - - name: "Wait" - run: "sleep 3" - - name: "Merge pull request" uses: "actions/github-script@0.8.0" with: diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 449e4652..cea3de47 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -14,7 +14,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v1" + uses: "actions/stale@v2" with: days-before-close: 5 days-before-stale: 60 diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml new file mode 100644 index 00000000..09671d06 --- /dev/null +++ b/.github/workflows/triage.yaml @@ -0,0 +1,42 @@ +name: "Triage" + +on: # yamllint disable-line rule:truthy + pull_request: null + +jobs: + label: + name: "Label" + + runs-on: "ubuntu-latest" + + steps: + - name: "Add labels based on branch name" + if: "github.event.action == 'opened'" + uses: "actions/github-script@0.8.0" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + script: | + const branchPrefixLabels = { + feature: "enhancement", + fix: "bug", + } + + const pullRequest = context.payload.pull_request + const repository = context.repo + + const branchName = pullRequest.head.ref + + const matches = branchName.match(new RegExp('^([^/]+)\/')); + + if (matches instanceof Array && branchPrefixLabels.hasOwnProperty(matches[1])) { + const label = branchPrefixLabels[matches[1]] + + github.issues.addLabels({ + issue_number: pullRequest.number, + labels: [ + label + ], + owner: repository.owner, + repo: repository.repo, + }); + } diff --git a/Makefile b/Makefile index 16ca5bb9..53931a72 100644 --- a/Makefile +++ b/Makefile @@ -11,14 +11,16 @@ code-coverage: vendor ## Collects coverage from running unit tests with phpunit/ vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-text --prepend=.build/phpunit/xdebug-filter.php .PHONY: coding-standards -coding-standards: vendor ## Fixes code style issues with friendsofphp/php-cs-fixer +coding-standards: vendor ## Normalizes composer.json with ergebnis/composer-normalize, lints YAML files with yamllint and fixes code style issues with friendsofphp/php-cs-fixer + composer normalize yamllint -c .yamllint.yaml --strict . mkdir -p .build/php-cs-fixer vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose + vendor/bin/php-cs-fixer fix --config=.php_cs.fixture --diff --diff-format=udiff --verbose .PHONY: dependency-analysis dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer-require-checker - docker run --interactive --rm --tty --volume ${PWD}:/app webfactory/composer-require-checker:2.1.0 + tools/composer-require-checker check .PHONY: help help: ## Displays this list of targets with descriptions @@ -54,4 +56,3 @@ tests: vendor ## Runs auto-review, unit, and integration tests with phpunit/phpu vendor: composer.json composer.lock composer validate --strict composer install --no-interaction --no-progress --no-suggest - composer normalize diff --git a/README.md b/README.md index c04bbb5f..ddac00bc 100644 --- a/README.md +++ b/README.md @@ -275,3 +275,7 @@ Please have a look at [`LICENSE.md`](LICENSE.md). ## Credits The method [`FinalRule::isWhitelistedClass()`](src/Classes/FinalRule.php) is inspired by the work on [`FinalClassFixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.15/src/Fixer/ClassNotation/FinalClassFixer.php) and [`FinalInternalClassFixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.15/src/Fixer/ClassNotation/FinalInternalClassFixer.php), contributed by [Dariusz Rumiński](https://github.com/keradus), [Filippo Tessarotto](https://github.com/Slamdunk), and [Spacepossum](https://github.com/SpacePossum) for [`friendsofphp/php-cs-fixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer) (originally licensed under MIT). + +## Curious what I am building? + +:mailbox_with_mail: [Subscribe to my list](https://localheinz.com/projects/), and I will occasionally send you an email to let you know what I am working on. diff --git a/phive.xml b/phive.xml new file mode 100644 index 00000000..a88a0a03 --- /dev/null +++ b/phive.xml @@ -0,0 +1,4 @@ + + + + diff --git a/tools/composer-require-checker b/tools/composer-require-checker new file mode 100755 index 0000000000000000000000000000000000000000..5b51398660138addd82dc90fce9f7e0e0c7a1b69 GIT binary patch literal 493018 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 YSk#HD*9l3a0LIVk?xUy zOIf)+4xjkk4Oc4n{T*yV7T$9{H;WywsC;;R?)j)b_nbffzZvcROiMX=-gHB-Z!@G8 z=h2pm^?b2VE67`N5x@Ms$v~C#Q@WWwaQZ&t<9v=X&cPGq8^f5~D>q*1%DR1TfA-ca zD*AG?R>qt^{TsOuU#3?TGfSS5*}f>z*9|J#D=K|XfnxIzb(J=G(s`GN1IlOfIAUTY z@ooNca(7y33lQ%Ku~n6g{3M=@Hm6Bm-SQEXo?oWqA%oH1ARLHrZ!BE#pmos8_Ek9A zmp8mB2JK)w!}7;z;?P>*L3D1)YD;8Xl0_bOF1IR+{@9OB)-vT*p&E-S$(76f)4O76 zjtu=)2V#TOPU-Z8@sLdRiO<=_*PWJw)pDtAPo|LCmW3g4pifNdVc%i=FJSr(M5gIr z&(wXmA?SA$8dhso??zUYez0yh4imeeQ3H*>sowqtkS>69TtKSF-hnU)jv%}R`oz*F zaF;Ba%0h~Ts&m65A(PsEUUAyD4zYs_pZTT>UE+BzfxhoyZ=c!v04nf8qK2bAD*aJmi>>g|3wo5#< zKsEGiM133Crez}C(rw2hlzF=ES%#$}YU?Hj&N+BU4F&6vwW<<>^~Qk#N~U*iLa2>( z)t95$A~K12Yi-UFnWrZ-J|h6+^W}5^cwLOFj~_o2UA7GZO3%F;@o*ex{Gn(*7BBZX z;oc7ci8&$A{*bVH)V9VbTUV$zf0dExW1QSS2f!VuS@Y<)E*2} zI4?X4aL{sUxopq@a`IX!eEYQ|6V;{KO=O^c>R5>Cp2tjrnGGOe;? zlUH!%|9Ji3`y%VIPP-9XSIXiS7o2Y5^ndUiVm_IZV&8vXo!|V_WJi=z;da_Gw>Q#{4A0`vD9Nt)IAo2(oL6nM zaU>hPE|ijq)~OFX-Suq99AxMYuxyjLmP1|JbxevVU_R8%Q&v)0*Q>J7%CZmE35WKm zW39>=M|WBNTn@gEA79JS_e|@$ykSW+75mq3$aKLw z;(jBr;IwGjd(6sKh#_Aa{R_%%dVJ*FuyDs9l*lE1{u6hrg}e z(6CsNSqglZREMtr?RS6s-Tw!bl1)#;Fbsz8`xRC0OU7-7v^#)6+$JHoo6KvgWlm+M zQ~CEa4f_!50dk4;__bfliQNoGU!0Jo4OFTJy;7TMVY&Ax7^_7w9t&I-1V=2@CkS>B z8&#aZ_ao5C+=+0ANU5J(WL?wE2s>c#9{okOUd^Z+xCXC=V=E`i3}?i_2bPq$W_~KE zyW#uRV_-?gXMer z6yH6}K@Ng25QX7=Pcb`mLoER(ccIEBo>0{F?LMGJ4;~9sk#^gF+|eNME){{3HzxPmD4SZ z?Eam@Y=|q@g^kYiRbfs_QH~C6WP2J5D$K?Hz!mF1(oBjbwZGSPzyC zIRs_~gYTOGK>zpx!RNpFulighbSo|v@Eu>re4ec{Bcn1G^5XNo%#DzFoF+=_hRp1l z*>m&XNh-H=6aOkgC8x!X1@p9&T=li@U0*NmGOfWXE)K-?tx|5(opn)U`C>i?iFL_l zJl)PKb(eoz8cVJ2tmkPdA|XYh`@9Hf5crte#N!SpLFk5&aCqcfE@QrLG2bGlZ-)G0 z*T!!Lx`%OI3~T;toQ-Hsvv_u(y%brRcWjtLJB)5N^U1oN!~kPJoWI~!Bl()<CaFd{jF>K?T4K0Vp z2<%;_GVeUvV`T%Qe}_3;P_#_5bkOsMU4$a%GR}$`UcW*B2dF||bSvYc5DAJCb@kAu zYjJm*%CM{1MF+gAt1$8Q-M=_+aSs!uT+(e^=CyZ)Q6qdlKnZw8X4W_(Xt6Ug!uO5Z z%S!Ek)>@A;10ghWBb!>n5+;c(8WERqW}6lb1J^V;qXcs=d_ZOxvSr5*lXX6c;iqB< zFc7R0(#SUDDozZrT_ZDYr3zZOCJTUT{9bI)bT)5()LpqVyWLfo@lzd_KgF|;r0`X>(toxv0R))f~yHV-~G}JnKQ53P#;lwGiQdqY21XJOYAPN*UL>! z6t?_6fou4N<_cXdS^;=<^{S$ZF2=koJpmTXet8lE)izPJoJ-!Ge2+?2-@Up#8Ap9b zB~Q^Zz7a)1Tf?XY#g@jKLn`=krLHJ|dJj(frj9;TMIS2Gv_P3mZ(!UP|xYT5uaNMYt# ziyD)X&IO(RJQzu?G2;y`7(d}WS}*NtpA%P5cbIW(Lkvx-oJhIvJXVp z=~iR_T#eqK_U-NMtezfP@%IDMZJMB+PtmIc20fx&piflk0Lq}{>mMLB`1H^jZDq!Q zXIimQb=00|eT^L7Fycn(5s|cmKoD%xE1CRm8>PveGAmCvVgUSaRE9U9fYD-SME{ny zqu3t_SJ*uC{eV-KV9yFY>Jbald1gAkLohLkh{!-9c^2$%nXp6t$*P{j-V-A~yxACAma8ISr5^bo?$$G%2cUV+u8R_XNE-5{8vrsxO$8*cQDKTv#(ITATu(ghq!?h&48fEXu;PN&DouoN6nkk0dRZCqHrt3TXh(~EHuoO&V%^@@@G1AkTIvnx{8p8RL!v`|9(}OS z*`p6N9v>AvaQmq24V6Y%ZnL%yz3$D+)k^fC%7JUYh1|Z(RhD0@1*&lZ!Oc~dFYa^4 zm=`7(Kc&EiRL)b2zm~bMtj9>@z}ZhBk$YXaPbG6u%q1`$I1=onQ6!V@f2^zs$9>> zflLp0(>_{*8!Ysd+ymr#$7+wKe12py;$kLj+joTHhHfZqD1#kphLJ_M$t}+j_9LWx z$Cm6fzo{CZ#O$-w`~%(`WIMGs%p0#NzGEPUfI=e`W6Gon#Dfh>6OZFA2zi_}1pFkn z4|mM7tOE>)M_E6Gc0gQo!Mbusnii0+(`N%xFxk8mvOu9gOS&pXsOD?X`L9WM zDd^zh?gvRW4G!s5WIYX0R3Uu@LtUY7-B8}aUo z8{Go*gCoC2^HKiu7@?E}9?m-u(kHR} z$xz_oddTl%L9)R90^?^EJYvD`YX3eH;XxbwV>mp8G84U&;+p375@Ggb!PkKA*B>PV zs#TUIQV>iEaJ>?LP$KLhCVhRB3p-dAZ+{0rR_m=F964&W#}6?vQ&{lfjzcYn5r<&g zg!0I-O>BpbOT5sA8;{D2+LHYdrl}gA#O#Np#Xb&m7nZZY&NGJ{aoAEt#2E>!osr+W z^7w<3`RroilV_B`qt-cy_x+PiUci6DRNY#Xp`Owsc-e2c|AW< zJ`5vv_Y?<6(P|xi9NiE05 zdR=+8mye(6??a-$mjdQl%n?~aI> z7XsCwtpM#q6en3(%+s=fFLVo&A0^-jB&19w$mBV&O+K4QENw{ESNU4-ww)J^8t;Sr zt4+!VaG$hmouL=tJ1>=-3HOz*qo{9l7P)pv0?+1A5PH7J0z0%q>I=a=L1-Xco3Vji znKPrlvS5e#lQlhwxo5%rw|#)WHy7&vwNVz;1bk!71`hJR2T;2mdjx~ZBc{pxAcFP# zmYrk!4I$~JwmT?SwzYZ#nZNqInn?)c2KZy`t<|6HSIr~SZDqZCp`*}qI?+GLF9>$TZ9J`GZt_& z6vE-mbV6VFPCx?Fd!*ccXT}cdC#!oBo6ocbGzjx`s1lyEOd;u>iau zXGQEuY)>5^_YxxY9}uX|=zSvemMJUq0&$t2nGVw#LcobENl3 z^oa$UglLnk~_f)AW1(A@9V~XH_q?exR|9-G=7ncu9CKr)J1Ml+!1hJCf|NK3^kN5UG zZ-TOvh7<+gk`$%H|B)Y`{O<-wn4uI0lhw=QoNi;9V79jxp)F2gA*k5AVJ=p#Nj#m9%IzW?s<-~gec;PmM9;AHi2?>~DJ{x8l}A@L{5 z#^i@J32`#{d4d>2FO%0Yi1_#F{oy-5z=wzHlanAgS|11R*TKo*LGT`*o~}Ngu3t@l z{@di+w~OiRw{MdlC$GF8e|#lBlb7w9MlW7W!xyd|?)&LWjJ*}5X_7J&i=@ALTY=u; zli-ucJAADpZaK0$EMcEtfC+6=IQ4_Z_`~~7&>Mb^Ix;$Dcuk&XINGH5$vk04U77y7G*JF-|6PT_t1bN# zv2?kdqxAl3O2Xw*#yj}_fMZgbLz&EvATmW1yREBYnd5-aK zBFl2=!}o7T!+*(7XA$LOJj%H!YNLpA8u4@Hr^#};!0eIucoZQow+Kh6jGfT1D@r|& z=72onr9hcMgx3Q_rXRID@NAnSmQ(@WwF4mk0d4Sam?eaJD}wbHI|mpmDwkXQ?~E{f zevkc!l3&l)H-I94L0Erz?=8!N2H*8vrcZ^Q7jwD&jO%#`^IvsmMfc@lOWtrP7_@P* z*NB(@S;DJ1 zDZ2ldtBRz1EmDu4!Af4&R(0k%zgv0NMo+ULJGfs^+|^+8nLbAmm>;=f zbbBTGw;kO&fMKr^^>#JeUCTaa=ON+t;+Ut9Cyz#kUbu``Q_-T!Up&MXMO{5yD84SE z#lMMDSq{z7xdN1W!TTK%4lbWl9LY=I7V~Q8aqv%u?t1n5|Du@+UPrHJn6!#_^N*rb z^1^v5h9hVW`K;XCKQtsb-hp5C=#9rF*IAo_eKc@ zuBXu>3P~`H;w%;InLD?=%H}Trk8hHB}Jw)^=Dz80v z278sEE=7@Och$mBcBwwUl(L3CYvNw7wuRFoXx_uV;KBX0et9lv#(Zqk>D*0%4%A)R z{tGE_<2ygSVg_f9QeKa{D?Gc>P@li3nSILClvW75ysE8ZuDWat}>1jGbJcVzFG1- zr2^qyU_V5xZ%RrFT9bm1ud>J&VQ1u_YapkEu50PAtuwk5f>6uhr8Txvf^fg!^q%%F zY6F={1;V>7Zd|ZVXQc$;@&jmViX3=q!no{!U;{aaGQ{R%}afv|^@0?sd$L#VEg_%65 zX!o3UR*?em3rU)g*>M7Io-IEh+wdChl)T zzIh^Q8Y8HSY#W%!lyHiFNmoNbu71PtV& zP`0FCU@><_Bi^@jmtwD}2=yV#pj#hJMYs=^q~F8Ljx5xXs5S@gw9>Xx*BkM$T%IxG zF@zBCc>Ga@95EVC8%T_j7$u2esTD^EfG8s87<#!N+bf*<_tsFaA*W+unwk&BT6iI) zgSI=T6&H45C6qoDv&&A{l^oPUl8}uHw$#yr-o&o3H#-l1jewWS&m?^!2|nw*OV-eY zSBaYXxv{_8ckJANYk;NHSwS8QW zM~5c3nzn;4B+86eO*=eDJ$)DEt6p6m23Nm&9Au$O2U)1?U>-U>5kgMi1ATI7fj((F zSlp9!I>T$17iXzy=H`}c?w#9_qFR1#asM;inkKju5dE1%h`qRINikZqHVssqMyHAE-2=*$1k7anlE? zInn3?RX&{bfl3qbK2YUAE=f4_Aoa9e{K7Cw?PgnAK5|7#x#YseN6)#rNnn? zsnpbVGou?3&uvXtiJJOxTGN%9rf%G}OO>d$A4lVy(u&SFr{==NIH&Re9_Q2?xESYD z4#4A_%E2{FUDqpxq=}dBQK{5rwLQ5R2bNwm#(^~tF2;eC1@Jhqa^P?rSo+W%2e#Ze z8V5G*=!^qvezwDpD;SvBc0aHHbmG3R&=l79C2mGe?uo;Zt5<4*-N<1SuMJ$7D72t( zHAry-FSUU1bCfv13Kb2Yy9FSjrnd^D_#&TN;iZ-q{eotz(817B;+2>de;QdXs8)0# zrNzEk{U7$7;d3=D2Mf7_l`99inwEpFQG%Uiff9rA#oeNEIo#30b4w6xgGT0$0@Ue3 z2M$d#=HjwbLV8$>M@)9e!;hIX;4V+K?peOv#;J=+Ug>w9e95b9a z7!Wk%pcWpHi}p;)K#|WD&kog)&%+N7)sf=>VZKVtc=rWJ(zzQay<2rf5}KK=?I&a*$l10tC)!l3rlrr`IZG zE~J6w#orB<3qi3AyGg9nfkWLSRqBAD#7W0q>42f?SzAY)jD{T0!r~r>;pMZ7lUzzc z(Q;=^Hx);vr3H6<0y;#2cJ9PuVdnctR2Fg}Aoi;W>uAxS($ayunFlVVfau>4Bgn}# zLZJi%|BK)-5c|~FlS?Tbw1XN>>5M{M?5822z|AxiRV_%YiRG+uB{NDC_xxM2gaC*l z@-z%z{+XdrShHJW6M|k-4`|{R+dalv;R~g4F!w1gvOBSNxfQl1G)kS@?B5}A^O4Ov z6ldY15ZRSiB>^NYmlxOBc4c{qC@n9S0;4Y@AH|7f;mz5FmNs0?JMu7g)AubKl`7cK z%-xBYX`YBLXu~^9Vp_@ty;3tUV7tv!w~_H(r~3U|5GUuPW`-*oIT4#ZI<_Jt&Aixd zQ`Kh(uxnMns~L%0=a7&z@?y8ORgas|ov!-**l&H+;|a7AR=+R1&69dOjqat?^y6YF zD>ngM$6BOY%i5L;fGEr5XNJ*(W$L()r*weOb7ZkgRmGGtU?d-9J7EePD70L;a{w;2 zbl}#*s)`L7Sk=%jD!CF4t=uZSi*pU^87QdzGt>$Sdyu+>rXU{WaV(!X~Blrm6cnBb}9l9+-jAq}h}C>Z%Hmw|1cSXbOq3kbg= z5eh@gC47l4l%QbBTtK-B9Eg#VHn>oNg58WqBpE&gk!Z2`zU^HD5}XS`u{3p2T}T-y zlF=--y#Ys2b0r}7R}`jVGk9Wq3$TRO)qn<^RFd!tavFtv*!k<-mze`aB6qIwxZJU8?+V9c4z2{3D_ID3+rjc8m zX3Rx1kqZH_YB~5f+qr!KE~T{44pN*8L9tK7&1gIq0%GMhx(=vH2MV>^{Je%8-~PM{ zY`+8gt_9E@=)-1~%d?OmyG8vTPo7k^a5iVy$Kw4|4$oT6UL~*N(M7=pPJQOk7dhGG z0;`mOUeCdbK1StjHz{qZjN&X`TGS93g~^ApQxcmmW9A=)41mZF9b3|b z1dQ~-p7a4glG{ofx2pMv5*eZ~oQm!>5o0*(V%a4Ih08u{6d-22($J9e3bh@6!qjv- z;v?qz*Ye#S;~OQ%3G@6SUj7!lUKOwbD=rv!P17ryMS)dv`$gLLg?htY{_@F4z70mK zjL;B|y^vnPi&ymdD$>yF=LcE&E92GsB3nPlv!Lyw5#8$+v$L0HcjLIRy)H2udwFBv z!d#b>iM8^Ju8-o=3@YBOX9}*xHG_-Cc1+>5xQ1}*KgfG4#aKiiUyrS6Kz_M=Ok1C0j{( z-AcyBs_!Ods;>?V=-2w4PR#22x+V3_9-Dk=Di|C2g4jbqpDfMnsu&x(!_TRmnWloV zkw3PfosWiqmJL~DiP{>={+oQ_x%dfo(h%_)8v16+-+4_X59(R*IutC7$OKu~sN&n0 zu;5#w?=ahv2&Fb2ni_g$ieW(6J=hr_z&#Z)ygn&YYZ@b-ep8kso|>I$^oT+doUu(N zUT|rXQ+-mF)^1|hdo)LlwS-J<$&C_i>@)>TZItW3E(&?Sn5n(nEK121+n8!gXj!?U zY>QGkqjQs`ah8?`z)s2-UQ5A|5&a6F*O6H@&~I&#z6{Kqf^A6|mzEr6SyRuY$wi9% z2S)~_mZ`bl8H!^uymeUcMm4p}in#|YheNAuQ);QBU~?+C*QH@-rsyG?8fnHiGco+G z!9H~7`vpNj%iMR7@n&Rep#J61AlsFE^|`?C?s5apBN}0+5x;oPo)E)kncj|XWMa;! zkCVjAK_jv$ek1O#{ycE2R6o3kYK5Lgftc0O7|gc}lmbRJ{+Z!K^sLOzKr^e)8n z+MQWhNy=AlKFY6PtPJgy@ywv&{fS*T(ffz6=SK;r`7;>@f1%q->gxLWX{^Un|6Q{v;|H`qWC z!E44hH9?~_5fdW(mxYxM6+=VjCXB$cuUr%fy)L&5?bTwMfDI>$729HFxWKD0CJC=c z)k5bBr|_|45kZrZ$f@Pp{W$87237?3b_9%UhWeS)Qzxkd_xw(s#-Z9@xXE-;IdYE?<2j4$F@13rkVzQIY`Jcd_91@Ocp9PjfFI4Ksv<>Mdk+l=4wYD@n_ zES0at#?@!9`co0ZLo%SeEnmeM5Er{osQ&@N8y-x`itwYNQ+~A|d9R%KeMLgCG?^dM zffaGQT^UUe)^r2zE%q~(kVkw$7?wA-Te;|$)AF>z&kjyVht8-ARRxLvzow+Whtz?U zHBJ$6fHOzwy$GVd0SGY`Po4Pp*V{>yh2h&t z?F@bTBm=%tF80De^qN*JMRFzfJzwCwOe1K>8s9>)dp*xC0wwXuU-|=t6rrxiQ&9d#hf7Bq-rIve`8xxx&q>4#K`#*hML)IEFsR5#C%^fLvT?h!?*T>EhP>I5S?T&58zT}R5gfRW9N zzg?SXhsFhfF6AY1(>y*|?*%9n0RN zGn(0fC|E{K0SrjmRzH1l;Z@@0;2iEgtRx!e|NHZX8$saj|4g6KckiO;gcZ3;6x)1_ z6P9H=mi}P=a`LY&mt3=)Z%)?xlQXqTRmSzZcYk@|a-;OQ&?mo~Y=o9<$G@vSzka>E zT3men`u+Dmzx&IYWxSiLi8X(Jr+HpzdBU`2`|sYJn1Amp%pL!;5SpJo@%WkR)#`M4 zzfdvDmHF%0hupJC0-lW!G*s-;+G7iEy=Z`}2&Ba^JWoCo!c&3t< z(LV+G8B`hmOMvg?ez#Uhc5q>K|7fo)bAjC{m4_Y5UPd&9_y+EqL-Y;(HxSq!q$VHX zGTwhGc$W2U3N(8VeY^$f%YCtXxG))P`+6h#8`P!v`W;sg|yPIW_AbWLGG^rct^Gd$3L~O2PTI9C;p!yrs!};r2x^|a`DWhfPRrBxDN*ZNmYY14dPy7$LY#f_Edr$< za*>#7qEA+D4LfWdvFJz(;>Tu6uKWut?VB(N<+(u)`W<>o4fa@UeO{D&BV7QwTOKSjXM(9+lijsY>>bB1t}&;Gces zY=gkww^@|s#X5@yOTh9j|H8GafSDWE)G5|xW3{CZs$$J{qR67uM}K%J6T8E3AQ>Gh zj^e9Yjiz&JsZrp3``NpHPw6ewu9Et(5Xq*0zod8;ab&_iq%Lukh;>wlMrGuHgt0VSuK?*;AJ6Wn{FYV zIf2-gfg&kKv(}h`)omsUtr3~RedhU-+7M7)Up>U;`U zn{P!A=r8yiO4-GYX`1_BS0pAkd%>I{ClS>O;~;kweOl#ib(ZjqU;J6Hr1K}VkB&+- zs2}9=Qhp0>2dY7iu8SSlB3=k{ak6B|Q|3CDW_CD133A-|dGJJrY_wl|z@M#foANa0 zZnzu%DUMXG!bb?_#V$qVFHP`>`lXP#e6a~0Q8)Et+XsUN z)bS7obS`{b}eZCsp^ht9p^;&gVQjv`kgq&q!OGG*eFzY6rfp(Jy z@K&pjB7YSbKb4rC*JF0n=wWQ!kZ#i>7dN0g_t3;2=xn{;#UG=Y`mqh){z2DN4op;P zffi)Uu=R=~16C^te=c6;VH=?!@Mj?l%mc9=w37;hqn>{Bp$DIW41kMdCUB7ifp3$! zj~; zJp@!W+7`%Fjg|pmRinXEs~R;MR@G?0u6uhPw37;gf6|=g=)Qvkd?|)8aHD5D3|-A2 zJ69Vna}m$wq?QXZu~1tZGh4>g=wWQkl`++F7!$LV6^&ky4SIW^b^vV;wBW?{K!XOg z2U=iad!PY>+5-*vTIDn52bEf=g_$#hwqlSKa_gwJ0Bjw#(8ShJLk6{u8t^==qZ%L5 zIyx{xZyj}AKwC#G8@s{5(+Cf{wvLW68~VW zfm#(X@@D;C9?wB7g}~rtu7%vr04{~V;0KxUId<6VK(KZkoqO&{f82PW1)?j78nfJn zS_v2{D>U)G@fvU%Zg~3FE(OBAO7A-&<=NobMYhF?l(lkAi7GgDV1!732|?@Go=u_5Lwl?aHJ3?Z5#CV(ke5$9NiN=qC$Lt55bc|D z^irXb0W;@2$~}4j7x(sk64V>n4Y||+&>n0$df#&+17(uC9BUN-@e9*}Q5(gT2!Qt= z!IO=hoPh+aRiH##KIA1vS;Y6y9SiUhx`+9$>_>s`muwV9L3Us=7GYy2#qEJhlKpQ5 zORO98vlgorb)^98JC1&LtD#mR<2+-{-XZt<6i;hujKXe_ue&?S?Z~_CUVa&~grToI z9}NJkR_E8nZjHajy-ZZ9fQT0|W@(1M3`=As6U6i#UM3B?^Y?(>2!ebpW;xo6fTR7H zZA}ft_L&f&jZh$$FfU3!e|(yhVH*ZIp9d2iY`{(dHlG8l7H)wsugZ{*iD_1b%`AkR z@pxFZU<>HESO!dtPR%lGgEUvmfR)LqTZZkRX9O9rGCDy>*9P&~M#+Xe*jVN}e4c1x zC&gE*kD9Y*{Jt2C$V&iNXAC#LN`rC=Ad+cHQc+d{!m1zI(0H{Blu2o0G|0(TMvF+y zifSe#3u>su^9U%3J&W|_qi0RO{#dheAq(o=P^kcjel9g$evq(TDL9+9vy}*hr- zpnB0&uB07%ca?l8I?#{d)g-L4(yYASPjQ&Ng#mdd@a;!PXr8u<~cPjSB)~%8u3~LbhnkPz3Yh~(!2)^B`c#0Z}qHf za%gMKBJLHeP51kgsSeUeUSgE>Ak9Tfd5BsIjABf&W4p)b&)JWJ2C)7ULGd4>s)QNp zx&osV{BjAM_)&&?D>4@;>QPnsQ7KG-%%;ELAvSs%@DmB}(*(dx?TIPH$`2nu1kpUV zRZwA@E|d$bPY1$ul|H#)8q+J?QHm;|4mQ)ivzD3GVEb!5Y5C|}mT9J=xC$wkvKbTr zaj`fMZM)5;Oi=E_E$e?# z>Ci)uTGT5R;4h1{NOL=zY%4>nHUqQ5MkVSOLHTLE2YP6}61hQHa<75#%((5uFDrmN z3f*87|1;Ci8}*9!a4dlGanIj!w1;jmivPzhLE}5IV7kj@Y<|jJ?Z~}|Sp9?;=)^~z z@GuYc?=p9B8^I2uo?s;3?E{Y9gksq^EP;5>^-f5ZBhlS(xQAv@;_{3gRjWZ(>ZOQ> zR4|TUErVe%gqFeaLe{5xTiDgBkjG_6h2ZEWom?Ml($9eg#*Ld`3+bX8i=o#K`iR%< zunxx6T_JO^J6viU>g6yR?BG)Aom)zIwYn*CyMTMO0b-y|932GDzz@2E2aSZ^$HR`6 z`M$qL5A4P%%;jXB1Jsq8%iA(%@iX0*lfiiUU9&W`4Ze9Us!2JpN52fNtvRlXZLQ$9XR^2e~8L3vx-6!ujEF=L+i{D$ z`fml#Y~>~RFn0rkxn&|WzBfMD#r@Fh?E}>N!#COClr!ExDZ?1a#^7jo>J`*+*{0bT z9Ial&Fcet_BDv7YVTT!1A9UH6TU_hKeTC3m!l(`jXW5mWLSa=*C@m0#XH;$KKvoro zW7_g3sF-e(JHaUaIe!#VK%15=b`yx=Vt1Lgw>RKMbPIVC)^;v=e#u~aJ7f2ENCDwQ z$Zgr;NIR!Q65~Ft!s% zqXu1EefaQe>%hm-KT^aVgid&{2RpS$Fu4f|<^{7z9L&k3o>iaq1n*}%49u)5$Y#@% z5;3oSL%3Dis2hr5EBPpF)872TIp`5U_&~9Pd9H?8oo;X))g_EtL7}|x4oZ(i_C{7z zpC)iO+fiU*`S1+XjH=QGh-a=Bvo%h_Z-UWm%IGLIm|i}Y3nq8sf~o!!Jiw=9wxR}z z(hb?n%tgZWi^)Ok+eR6O<++&;`4CqsQ8yNhEWa$2>mZrj$zyJhKq&lHs}}(sN;v4? zNF~(9vRK?`gYk&W|#CQ)u4jIVVZa$+?}|AmE&d z(wp3fX<{87j_E7A$Up-M4^x&_EHZ^P4loGzmY}BwuN1OVHdUxa0mJT{BsX{W*GV!O z9S3`jGnXtGdA4UD4)DUd>cao14t-(LtZk zwG6i_B(ycrr+i4AN2RlWS&J3aCysn&;a^r+6F-%a(H@2LE{>l7mrCwrb!{}19sQe_ zep3zFH#MBecM{7sy4Fn`wmk|(BhY7{X{qTpxOLTZuM>f;AJ=N3B&Q1vZIk7>O8J`H zxP)AY3|;`8qE`EiMxrQG>1ZGtCS0zdx;g$$v@Xz1_anTO3L%<s8!KP#xPSm^*gZXiE-f|fIleOO!IbW_Pk*-@) zGib)Y_G>FAN0~jcy6e(XectU`S#R4&5`NdO=ouIzX;zjrfS<;35{)AxUU(A2b~0GR zfzTpb64z9dV3U@OjsN>r^}(}SlpJU0WeEh4sIKZdzB>Bwt2gl~?sP`KcF3>fW)%ps z2tr2S|ClBzi5BEETE~%K$q+{1pq|$!AA(SjiO-TX<($0YRDFDFJ`8>K8pq=E&nWQ& z@<+5>29!tS)xU>x{rRn6p+B65cy}MLjikFcKb?NKo+2x$M7p9W*-%0JK%_}9&r;@-O^~kO7f?_{S>iF6 z$Y-eAsMFze%|uM$rBV8JlBH1?QU4fiB&9qJsSp#M`@K>l|m zh4ygdn#Sq_2_=m&BR&V}6*(asRJd(SdRv;S*FP>%jz%P5OHd1_C3hy2X1NNYHp$^@ z>ifO!_2YUG@kccm2g$nwGMl|Sznaa4-I15Sm9x3&fvR{4`b7fMZ=&R`TbGu4X>d!+sCH_=r4$XbBAWtE zAQ8O9XbJ!-AbjX2jFVo23_fuYfs&|1z(q>A$NB^0Ry7=W8-ipJBq9Z1MR$?_hbXZ! zj$`C^!+L~F{2*ao8YPbdiO?Wbd|)6a3mS%VFd3>S!_YW$RFI)1cqFx3L@)`NGnkl> zWpIxU$zlUT3?UyLE`sGSN|vKoB>3-eJlbRM z(MVN?nb}*&K=t)E@3(bs`Fi0}PNoGo}uKaJdX33I4Qnj%=&Y3-RIyIgZ<(^tKK_E1=(X1*{ z8`QKhJ}V)ig>fA;`>@_Y?mFJv*q>@lwXikNtFV)u06vftpiQD{<%bfIC3j4u*oa^q zAkYVBnvqo`sIIw4HEuTe)x@hquJ*GD1BJ6X@t`zS32cNxbhYw5s9H!_$!@DFUE8r) zf(ne~P-dXKyaW)iSjQ;V6G-<8ivz--v%y|Lv7vFyxR2!qhQbi@O_wbwb^>4D2T>-V z=HN`KI0iy<9BNiICt{Nbe6*%&D1l1GG?~rk-!#zy_8)?%;YzC{iqf)bHS&2Bg@s+U z9^|hTLtRlB^9q$}vT>rQcVNt>WEvFAb;h)&Gfh>FcCxW&hc-R~6FL28$~s#~kLoyu30fvjo&Ky`d42A*HWUyrMPg!0EyTUq*| zXup2Zq+c6#Y8N7yx~ki8o9t!jTu9n+=B++zgVQc^RET!Wh2JIgEobF&-pzK1Ame% zGu%9wK6os~^xc-)WgGOO=^YjU1`ZAPqcXCF)m>HMyMJjo`mv?q=!HwePU1R9U#2uv z1$X6mGp9SdZ*w)38&D2EAB1vM3Wk6Hg3ktlHAzu23_bGGNl~5*?IHQ?s|_PEBGm4e zD=2zDPY93rp zby;NS0Usgtu(DD9NFuCBFS!8PZ~ap&e;hT{Ufg6ps}{C>%9y*Y-yV9qbaeJa;N<)A zP1m#h{H*rsCA+KE=IUj-B2e1a6@5Q=j`jx6|I6f$DwB?wx`CCZAQA-56Cn%;wG)p! zal#P|vca!yR=2^fc7Rl)t^-gj-`EeYk-4@RPoetF8J;}(xZdzq%)3J<)eeO+-12VN zzz`T_xlJtg(7T^#kgWz-HVm+RA9Xi1wMQ3=noBj1@yIGarK%@Rt&w3R4}Vwmp5b{F z*bY)^scq1wz~;DYP2;V|upU6P0p!$1)U)$)z{Pd&VQ1p9>h&thLO(x+j_$G;%ov3F zFi)T4>61(^OA^Q{g<;-27b1bMTVS^h_nkDGT%KkI9Qt4u!A?CqzC^7?px>d=Pvc`? z!iGJhj0+{GK3ev-7RzrO?+On z32S*O7cGh^U`uc+=5N572z6-+f1sc*8}Lmaw%37NF`f9WXL<6r(n;Qk2HZb`H-@5d zB%|u68iJ&K>mIzsKzkE)2D2%vnqEQP{XmH}pdc$%Nx+8>0mfVM5zToeaOJ|Io-`YaB8|zS@bnrqLnR92nN^TlmO1jZWi?}LhEq6qJ1b{iw($51 zTDYmH;XNZt7q8@W%Mk(ozLw3T>=NH&>nN83DB=bZ9Y8$EIG3jwoVO9)zB&kcT^v07JiWR;|M;QXJWktB?$xSmzv{7{Z1|C(J-FDF+M_}C{yIn!|k!1~Zu5;x9l zE!+8(HMTkrY~o8~bF+$+jH|Jc#EJYl%BygA+(AenLB`L^AmbmI zLG0FgZU!muy^3K4!}eWZXeo`<04_$?u*4Tpc+X~<)hw1f%xyy31#Wgyr6s~s=PCcg zmTNDH@h^X(km4W8=(){JeCQ$X)gQWe9#eN)r8XnMLRh9H(b`b>`BpnD(2Cu_#;R4{ zhd1WZVn22M3$<2lPunmM{+?fPl_HWz9kd8oDQhA(oBckeTi#%6(BHY)HGUhQRul(6 z6fg)$W#EFD0qhys$K-~o&HS66a90K)2W@kpLr+s<+e~>lsY`~cSKxzf72K{0a#s~c z3r3?6Z+s2e9j6p}y5y<@E zFxTO4Rx*is-KNT-d=(KRl{(%ALaM+tj_Jcfl+_Amb-`*VZ#i9%ae~>?Sum*)gb^&> zIR1pIrB$)3IMp-~{)UM-dkgW*MBsT^y=g)F^yrjad^tOxoO~yfLl}=>ySLNp!P**h zJoE#Oo^2f+T^tuymZQJfoud2%e<|w1wjPmtBqK}wfFVKdh8}v#;pquF&waL?iY&Te znk1iTU=nh--o>S!S%c=CT=R7)V?^OA3W~nnR~WAHDk4~J?1v|&J5@TjLYZ}CcA zb3i7rk%&2?k*Yx3K$fX+Iztgr7e!+*_3}e?khynCGL1w9n58+4#$ZNN-Zj-r17`%^ zjRi`3;nU4M>Otnl%A_L^Z@m%SQw6;;<@6jpewlY_r?|CnPaCtqSxS<6+59QHibs=R z3)K>#JPh))XQk;d1MafK!>?+@gi82zI^5I~D_-j7M(Cwlr+}@OO}$lWn7U`Qfq*Co@FFnO3`lMc5~F$J1D=bYS+}L;17+E+e*YR5Qgvb z6uDUFF6j1@X1nOB-~j~Rp-eI}YoSd-+7)!}tF)*SFy{2$AO!PO~38 zV8{JH(>9gm-H{wcmt*pC}5kdLxHEKJ-x@B=*t4Nb9fMbx+SPk6pLfT#1!| ziGGiL@20+pG@qiA5F;#WAyZ^^Ram5|VyzJsH&`?3s>GVw*6dr($FR?xI%X&4&Is<4fY`O=1N%F9D&&9tW$wX}wOHmi&8X*B5+)Hc`U9Aa-`?kqYA3K5$^D@JNVqNrSZV(CQhjuk*ZQ&t)tYwR!B58_@# zPZ4Y6If|J3No+94Ahzpn@*+-rhNTE10D72qA#H>rh1L=#4Fazpr>ew$z&++Vzwt)8W)YsH zU|@n7c=Cb$U;Wn4@E~!V4g+(QJtGt_-G*TyHYrOf?@HO6gI3_vpm6zp&#iLpr_7^$ z=pV!F#tLk}n&rV}&nZjkiQhKzL`mk4ZDshEwlbimqBQ8K zm~Ls;g7XtqxmITqVPumCNajSJCdW;8p}KDJLDI-Qb77_P)_m_!$kCK;zg}fpE##h} z`S`PpsFnJubZNfn(=ZAr<;~vK$)j6}R_;}~YVbLY!XVeJTrKTVm|3@p@%kHSG_U)K zRy!--W9u({Q@L)#Fbv)O6)e!f33{MwQa8PZPDRjmONv0T=th7o8xqwk$-kG9?VL@t z7^29>_a5o%K{cyDVwwwsu_dEYn$S;$Ho5BbqezPaZ6#8K;j9`8W6_N7oysK|esy*u z-rv5qX-}9}XzcFmb1Ct^*!YzSVrV90Ej+jFCxG9CT3UDvTm`98NAn2yR7QOYLOAtg z``aPQXciI}y)&kNx$Jhs7rO9ZkaH{uSgV}Yq%WGBHubjRmIVZYp3}lRr9T$h<$2vV zP=zuBn&BF+slTjAxoNIa$ed0+dzehpQZtZCDGnGNs0I0RN;758Zvu1zq0dQ@G`$9} zZEmlpOH+tk{i3JQqV+;u?Z|RZ{+*OwyCpWEKut$9FZQNdI}2|tb_D=bf{=0-#vnPP zYeAu)@fZ|~7n)6vv(iA8J0&?rXfk%LbJRL+TY; zGVUeh*f43Yg+Q}Md-gR@-oKUXI`ycu4Q^cdhS$f^W(I?N zEorbnKYs0C&zN}(Bxto2eWe+s7!fS%qKa+dz~(-~939hdf#@p&Sw0kun$f^WvH0AU zj06kVyoq!L=;eL6&8&u`bh;K-#;iH#ctmoYwCJnpw7$a>9*iN#%Z#m<0Aj_BmCF{; z;qJZI%|V5rc2J8Eyre@0a8Xq|hDo5N|J$@OsXPYw5VS?KR-B;5y$M6=z7&0G<3mDx``Q>Z6*BY*Bx_R$Z0lTB~iFbsz8`4v3uU|E1hg1YQN^3e*vbsPm&-+plg8k2t0wJ17suH z9O9HYG`*=vb%q0-@gxlipblc=Ss!HxPM$a=d^cm80B{??6~*nZ&DU}{79DC`B_{n& zt7_~GWf||ezM?FO&ttP#UqB+B8t#>U{XUMjhEtb|!gQ`>-G4Dmp6ZCzJU2>SPYrrJ zbK(Zs?_^ffx!^<{J$Z)zKs{xAivNr-8px1|A+)wL>_Onvu=&a1-GRS?M)sP-ys$&+ zok^PEmdPGBfUyLe{B2}GS)+SZ2UO@9HdVX`S^Dfm=>@REf~E^k?51*_gZ3ld@o^7= zS^~p+d4}v*D(vhySi1V6_HOQtb0Rts*YcAcXczV8fLEyYqaIpYYUMLuHM zpq^Y8LdK}cTA0TEApES4-J;A_va(-vyKuE+8eGuHmzY9`M4*21-**I5{YNfrCUH#lKRJKs zUhD>N+=S>2<7|D830V^+&4J`71;Jv$cTP}x{x5XllSXFI0E667f)+K*N(SClXX>L@ z{sg#|sd-5UxKbcXz%FnLP&rhU6f;Q)B!%KuWD2HJo+-j8xQ&`n9ViKR>&z~MIluG~ zhBfid@VuA*cckXkJyf>*!YSBqQHL$?PVt7b~AumcA>LJ zQ1}Rwui0Gin-$00Di1}4T_BWG@0{h)bW_pjq&kj1a* z_ASBhcf6V4`DG}KV{Cq7KQSZ`7(^8%7xl*_@rHA$Ea5g9HMH~QXpCx` zhV9jH8uATCK^`S}6t(uTh%;GEHfK3uLl%<9WBB}~LS+8o1f~L+LJ16vSD?dEgLG$k zK6A^9UGFm{SPUj=bIO-*I*pS1Z`ucN00H!j=E~V4cg#eWky%J#H87p2f{zX(cEVY4 zl;?L54`7ogfpL4iHbE76pgil%X<={(HfQwnN^QCP@mC!sqDNx18IAU{$PrdwY_N@i z%e6-9%n#og{ztH%`lC^jikKqwH)&SuIeFBxvh%)sY<|($((o zS85i99eGpAcGiiySG#E|vS15dkx?Y!t|RC!S7qcsf9dNDx?79d!3Xb2)hL$PR=rX)|7@d)-$<(3*}_(sPt|m8d?+#ZoC6 zUWK?}lpk#udJ?Mm#I4-`DrP!|$Qn<&bLesKFTGb$Z`v>re&<)*q)G(D#`X$JSD>IF zL5m>UOR11aF2ri$M2^#zt^Mz_odiOl)v6Zq0Kz`s_uY4&;rRX|@*;51_6bKL7M$8* zA=VMb=C@kAQeh;(I3hN}#ET|`$H?d1g!&G0xtqj=_4e+^JnSd>5%Rdadlfo(Xl*_d zfsm;sp*V&y3NLg39|bZehC#w?K|?m8cUbvb0r^Bc6le={;7oCCmls{1tYR?XtIVmk zn)Nzd+!GFjbFzM7iSI+bSw0m@66(~=?e>^{hdT5)5`i%g2vT;-w9qeEKpuAy5l#Y7 znzB{O4zAQo=z{PtJDo*m43ec!ZE&+PVX?47CKDvKFp7C zpLc23Gp!bJoN?$-mm)Wcp$$+rnfH`Q7OmF!`f@lJ_NR-7>aKkE+h}+UobL{^bVloq*5Ez9$_pL z8X~XlfeKGI9s^|Zha<1GT5E5zK39&_piXyYO*=iS09LF`BB)=vHZ+?XVj1xmoRC!o zc;p@n{NLGWmonm?tjz<3c1-^dhF6`@TkYR*95o?qG<{(>P!rG7-pG{BA6leM0uUic z=BH3q!YCyS&7ypH^uT1A=8nbQetRTF@xrL$SlOMg-yRKob9RxKKS_;>_-D9Fxw~@Dv ze1ix%8!r<%l-KfxK3Dz$eN@42+b|5h`zv@T5Iaa$?3yfX*8;;1Ls4|OB|)HAbR*Q3 z4T;9qZTe-%{J`&^|R_imS#nknj(;yzOXp%r&7=%DQ7wJ)&j zxAZnr|5ZvS-4gdupr&^;J752e1`~{d6>C2d0F@x59MTx1+UTInCo~>`;%0>A?TE9| zK$h1^a*WVqyfVp$R&W_N>e#C|)4!kEddn7^F4BCiOH+tk{lQ*-Gg)`~V&60F$z!Y^ zoa==;U7F1r`Pgu}f}3t9SLd@oZ2K9>jU!HA?&s2LyeXpb*Pu|`TZtL0j|uKf_ODNv zO~S+Sx^*vb-MPEjDc-Myoec0HI)Da}6@LvTBWf2N!2QHVN_@0KZfEU+&NQPMONaH_!)$+EQd zrv>=rJd-q#G=z4lJvL8E(>|m{9QT@HmgF%_XeyP){bWTR#bmBTpI1F2_6^?hke=(t2SdGj+H%3f{*m_HFH@idFDtmuY$7b~ z4R{sA=Q5i4z!J52lbNlCrah;!;Hg0bBm6>33^1JxEMqUqI7D&5LOhd{M_Akbs}z_> zo&mDvyX)dwuJ~>@&3Hm$_M0m7r30Hx^|)v^F?LbcW|kra9FmOF8vFlncyMsgt_`$E zC^DThWVGsn_aLS{X~sr&hU^6#|N-g=d@m+g`?B)=4g zWk&&-A@d}VE4g_KDiaJoumQa_^;u4@CJiJEhgrxXM!Dyzc0f(vv6;Hv?(pa7#rehA z&2(^lJGvR1jJB=dCOHvHN&IfioU3SWNz3`g)!=elP6nYKg7{@p7wU#4RuP|9HY&6Q zo@IR*iI$PSoP6%p9X?Gq16{Hf#B5eYkpQZwflpYrC{|Ozl3e?Itb-RvpGj z#8kgjJe4{u0`CJ8f+F*lv3p}T@tbo{E_n6;DSd$PWj1HQ*<(O+l{`=6xDjOJ?cSyI zF*kRO6w{(_1bFR(osVK?w_|d-e}qv+cg0!RokxJt5uAsbvgRbZCpMbE^Q!1q!Y|@E6m2CV67LqX0xzL{nbVinU!7D< zkJ>O0z4I$ZD=HGicGW8s`mwFlL%UkF>X!Hze8B#!p0?quLKN}2`$j}rbM0iY!N1+Ys_2*Ki5o(T>rnNu2 z{Chg~4buX(=|&&&2-m+TBZlGP#=uewNde%VP(=p5I8K6Ot_FVwz^l+XVMrLk(9)W9 zH@Sd;IjlBU5&p>>NcP1uq$H0{K^MInkKH$n;a;O4P8ABIBGj>!V_S9iwmx(^`>|lo z8CW6JuHp#~_9Ksh5^MnKgu9ALxlLsVaj8PvF9boDE5;~8^4d^7R7%)2q(qwAg{v@c zD{{PQ;8VoC2`0sDWT>czw4KJ^tNFpu@IEY={22f!2N6YG7>!hFRWWl3wMg7Grz%#> zi*pTeTFR(V!hcl?E@OFlj>Sd)j@BG5Z8n{%TxTMcztK9ZPOE2XmyDs>Jd@(d*b3{% z$|Q$&k(SVnhgKUaxN+V+9XbN02K&M9t;K&hoAuz=9{eA0cXOT$_8{AP(GT0np+x7; zpzs;i-}9XezwSdU>?Ax>un{TtMo$X&MRju&YwWDeF9zJaF*l=0RpoZELt65#=lg!E zWHX4iS^A9o)15Ky=2$PW@ocNE?3IaYz($ea>_KW>T$}r<re&??^RZJum1?{zr?gy*1Nn2HI>hqGWHxYCU4o^Xab7WG*honBtrf4GE&M5a*z z&U zE|d?Y7Umi1I8j$OHpAT2f3E? zvmlNofT_a2pntampbI~p!X5!7qxr?sw2@g6ioMQT5gyG&XpM$)nzV_U)K@p=*Gw5+ zr0MLXN~%HBUq^?bj-}WG$33jSiCq%h9s{!TAO(d(OYwj#Pl{D<7^q-x^1< zDxuM6F|J8t_8%0nGvnnv%o zpzn@<()(%f482rcZ__Xoeb2ABNRyUSqZ6+!V+@4E1DYlnPwP~9_Dy3cAC`SXfo=aC zJ9b(p%_?}o53O{4e0|RGxp{l33Izgr$uy>hwB)p=Ukc5|n{1gRHLK7l#u07`b;Gnl zz539~QlPfGt(mM(mOo>uP@D1Ybt7=9w)#dD*()qDW8hXZN#89_xev+f^e@KGZpG{B(i1CH8*ziJ*ZJ@ma| znpM!zy|zX@IsfVn%;)o-gex0pa@R)qjwT#G_uSftQgX=KnmbmoUUSQhbjvB-_sPJk zbSrNxLta4I-@#1K9HZPip+cJ1?^rDYHe2rYpA-K(mVYILiOBw~WZ&Pv6S&Zf&uOGq z*PasG7CTQtTD7dU0ZXkg$jep=TO-uDOt4LU+JgD~O+}+z}9wuhhRPUh_UuFPP<$yy_EtwL?DzS`%AwPJ^fW!vAn~E2&5$5(9rDZpXZ}5gD`y zqvn>(A$=A1>8aX5dBLr5wyDs~7HZtW>Pxec{L@d4$^p~U$j7QR1O@wn;J#^a*!FZV z65|X-UyCkC5#@i2%hwKL6BC}t&WN?=ATObnvu^j29(we(Hb|Y@87%zS$1yqQ)4Fcf{yueeM@OR9{DC#02*F)_4(K5OI`D-N3sWHEo)$Dtkj!Y8qe7A5 z8*jaIy6`r~rYJSsk$2Jv38m16kq3miRFLz!%;=p#l~X|?@9%Ne2`|%i-U%TYu9XTS zXoR%OB|1Id6w;^~Jt4c=m>PK(J8VB@R4WEfY$Q}W#M}uufd_UwcTZm)$8_ZjMgq&S zmym|iI2>VvV?&t+SsylA`Rq(cHDSDbLQ7`p*pjQvA$;Y%m(XP1qTbG8mnoEd1c8q* zx{>2Dy_%+2S$LtYs6kC0o?K0`Xs_yjBI!3Y+KmivY-g{91B2@UygMN5^Fxf1+UHk+Kz--*ibOxfKO7GAX7xVzfq`R?BvnrDlQrO|aaVkJN{D8f0xhbCnq*f(+X z*Aaow*_$`yw=Jzm0ivGqKACK)iWP!1I=(rRYu8mNSRz2Go~_*PcgV^+`{zt889&E#sv$(YRMt^3`eG|HRR4;ukO z7#L!k6_52UB!Rn;P4NC@$42j~s;vG+i!^8Y3t8%Kp)h7GZUo8S&Ug0zypHsQzA-Iv2|GqBA0S4O)I#0$g_kjHbo+`vLN^Ous2|H zlZbx%J_DkVf}azy%=qY?qsG`jE-rit4t*miXa#3xPYtsCL*IgULUWF%;7o8LmS89J z3K8@n57uiVAqbukz!osc6u)Om#A9AQfa~jC`OkOPE@6$1+qRRm!3U*>S*Y~rcUQvt77NoE2 zH6D*!!C)&OEiASFP?ldeYenAHff}5@sLl623pNpDUOus^--sDla*iB*GY*W6zl(&vLfcU*WQy?~j?kF!`z*s<2@4fn3MZ2;eZG2;Oj|B_MbA@s5wo*!=ra9 z9Z4eZBg?A4g5CKVj35@_4gB;bv?xj;asQgX=9p38=L1Wq3elo9dklJg8ojD2P_qH!OG;%h$l zcsnhNUTrjpK9*!yh01zd+WSCO)^zmKPin)_yNur`VH1=k^$BPXMZT)ne<}WBdWCSQ z1@j-`75o@(Iqu!vz2-eh6JX(D3%jP)nU9C&5TaD<0Q$5rh*}4hZ!&X#5b}jb0xuCt z@PpbS2Jq7Ydnr;I$V#(@=?w5)hZ*C#y;x}9Lv*;Uc2=km%~Q^P63DLrA19TC#HNze zS5*mOcvix)O(9!OYxY&Re03NuJ8@PY0zvNcP7IV_mvSR`mP&e{R$sa)s4fdP&5j5< zuA4#6r-5ig9Dr)iea3Q8^aWURzGAJWvS=Ojl5{9+5OV+;qYV&XtfJIaHv5)wXo;Yw zU9%z$Gl|dX?upLNp|VJ5T|w24HQBi9tb0;H6WaR|f}|@F%?duFhh%;zJvW@#>^van zN@833^XXk1CXV<{!4#0H|zH zlqn+jxzfmxg-hQ)s*`Nbb^B!X<9QNkF$&dPd{?&h=?Ef{vwSfmU?_||$c(0F*!LLa9h2v0;#^ho!|Q6Z;}}h92h5Pn8uSk4ZF$ipnn{`GEb)O0 z0gAxI!aw80w6e64P)1})XD%YZYn-vR-H44>8`}=%o_Cs5SMbj)r`W=}$<8io?G-hB zE8DeYKsfhD`V}H!Q_0?@VyYT6Bc~-57>`U1kqR7TV(iu-G^+HT?vb@aP>VgUoV^AOd!FEo2oHj{u~Phifo#gfi@=sYOG84)gDv`v=e3+u0ySyxP~$a0 zq_jK*j68toelyR>S<%)rMBCEK##&>CBt7E&utNoz7H4S;kSOS3I zjT>Zs^5!5zQ`*u;n&E(2HGI~qIoGoZCb~!wUTYumW^};cQb5d_9l}|^)IjG#f8=|B zybud}8fq!K?w>itJL|t496UUz|B@-f@muF01w5CScS6Q>=B?1kdMnhtnbM0oGmzuD z{pAAr)rREx-*dJZsqgWv1zCIU<4?;x@5S1VecOM(4;{vxLMO47MG|&YzJ9^@r;Qz2 zyBs%vm~W=?jSi&0Yx-tc&MKw$%m}}yxWtj?lGQKC)uW!1dCEc=sSgk4)Cq*tXt5R&_)?o#vEZ3?(4~>F; zMP~A=vs_!?ALOmIUZ2Gohw*`i2K;K|8Be?%{TEe>K?=e!6h!wq#Vp${EN-o$cmOHl zUeff}25K69eikC$-89sNvl*E8W`FdfM^9$bOhpj3M(*ESI9hE`J;KQD5C%eRJD3(*Hl70?D|Mlvqx3H`6|k?ZoHUN}_oj*|n9n zHNOI=p)JaW(SnLmr#bWWkf3TP>*o51z74UW# z1&$q!qx%I9U%%??J$mF>a~>`%o3pdo;>-#{9*oWc9!2+Of#XFyfH=!g{W|a`d`}ZL z>fJ2@2<7&B1c2t>an2eOZhnD~z;X2apTxhYQ<+jF)^GeY9>I`^fhUDPKhM z!iS7}4zEF|mJN{}fsDhDT||~Qv4RQXcMzZWmq#e&<8|eBR*l%rDsQu?=j?U&D(^D9@!QWbeKp7f52uLc&tqyx^J+M*#X;%W=`0BvrvOO zY=^brzg^a9brO2|?IiTq_vd^H3ACP8MEqg}jx}*?jJvb5V~Cx{0aV5mCwyux-3Sw8 zui;;jTE^%IUVD_#H?!~#gBu|_c&HRyA>#_Nr3ZE8b2g{i%(+Wm4U5!H0HepT5t~dG zYb%wVUMe-&4wkNKUAue;svx+lAw~?X107G&r%INeJouCHOJ2Y$GjedG z@LHo$Ydhw&u!1P8p(K#-_#NoQ{m)Cw#hgrt*(e)k&K>ZC?5z#qoV!-!d=WVv#cyV| zNrTpmKZu)J0!9_l@}d&Kif9QSk4_FRF2>_lr4)+Xj-5c| z1+Qg{j{E1Uv3cjXT;+rBWsKhSPkJkIlHW4iWLT*X-+dY!4g05q)!3dmUM7S1UdHXD zKUgt?A9*zMCn_%yQpW9LZ}{Q#cr|{5xDu!=lfY7u4h}!|F3t{*R?O)zu$)NcN&%%D zhv$d=VV)a0MwEDUJ-h&?*1Ks-e@?t<7;b%bya_a%(gxh{=rDq~*UJd31AYVhkWFKE z_y78X|Lc#=8}kP#sdz%}$gbFY{mMGfllP;e$3jW8QQ`Bn&d@r+#u z-1^Ms4)kce8-{MZhYD#yyU3ossHp}Sttx6m&JDT%N|*nPeq;N#OzZ>u%9^+f44 zln4ysQMdF-E5)DUj%I;>%RGL|M!h?mFUVVH^*tbVCM=``85!|vw^BA6JrA&i;MK~^ z#qY(IL(xV}tI;9lEURsKwOy^Q>FXJnsE-Wwja=Q*`iAM+{?dywBqCR@wE73^)u@** zuRw*+X|}mPWjS#QiJU>inrUULe1XVh12$CuHFe)qU!`dl89i~rC?|6=0X1rKU3lL# z^+H$4%!u-Jth$n%43_h2=-SFcm9M2$BrUz}=DoT_NAkEmIRXj*3sMu2Wj+DxbvNA;@xoI8Bc#ulix(-vNtwmcXl705FV2Ma- zP|v!pz1)W=fbfJ{*T9Z(7vyh9v?5JY4&tZU{&iN0Z~FtYJ4Mi-j9*@3$zMYvWAIeI z@Bpd`;M!)dUT(9$mAF$`UZ+RH8oWwa{ZDOHA9}ylV0Bl*>(!5)=1r?7Dtxo1^*C!a zj?1jZV<#L>9S>@0)}zfAxYojq`h$161|b=Pg6}yk6e?@5R~5;1jp>zP7#t4rG`ji< z_G}p3v&d&tG&2?pXFiy*DYPP8u!pu2qKFgQXraVY(f&HcYa1lj+ClNDqTkC1jeFrTkSJyC1d!m+qw`M1Aezmo z>szTLq&9-`+>GZI$f4bO@q72+@@4mbubywc$g{+WBNZpumYtV4-=T&!^|Vu0Fz<7x zUy4RTu}>%djbkfD>PWZ@69=kC6z8556Kxg7dc|zyoR^OC;+*4H#B3{bnALL@-qg7} zU8pp>yEHkd)C(}mG>wx4afn@QVHHg0e5$g*Nvjo*0htNh({<3DF2-l>GHl0hBYdk3 zFhga)_k1ns0ltrprvjwc<_L+*0I|C^#HFinTDmL1Te=2t&(;NZ?0iZ2z)N#*Kx6>- zVqI|1A-1h3WhLI5LlkrdlsjveuRl?Ws$@dIT)zIq0Pcr%!M$~&TPNg)o`NwAYYsJ~ zH6VVvA;hOaf$3?xSU|<`?lo*vf!`)`0l;brE08oN08zr%J_2f|}z^ zNDXlJ_cwy~+_{6w!`OTYkA)ooTO7jP<1P}jWXU4UUUTWT$?z88d?+N-`9nldV&ep z=AK}Y)P#3`eb`D#F`p)1L`68huypL8l z20sp3p{+i1e|_DUTdu20 zS_Z737lP2J6&pfYkaRYDW!x2#-d|hN$!L?(-EBD9RG>7WJvdkqZ9iH2Cg#=B_mcfw zx(PXjFb@((xDceW&MpN@Q43>ZpPCMhiJm0bSAiydugt|+z?E#Igh?)1k5?LXl--yV zQu5vuQbL$Q`qxU3NUCCNj#5tFi;$Gn705v?ygV)R(#v8(ZjQOFSwPqGrhWjmq1*0m zQ7(v-TN7OV))iqHnq(YYNoCw!UB)y(nHOuj$SUKUb+5yOGG!mtF z#Db=ZNiaMWp{jAmIN+#6ZF~SnqY1KvB*oPRSe?~GL`aTlg`r4UJQv~AS#7N(klB=y zU*af|f?lDKAiuoPhKRU4D_#t#n(K50X-T^8PEHSp=45GgUh`DXdxt0HL~#*dvxX(Z zA+{Kl9-R=easkUNK9sz1M`kIgWG79cbMdl>*AAkabX@2QN~`r>2OAM!|Cp@9UuX4Mxx@k z%UXZwx+g?{+4z<}z=w#wdqMT)3(ybYLE>Y{IRc!b*6MRr4(NnvaKw;ISZZ)u4nnQVKuyPWWNEQ($$ESm%o=Q6Qp-R-CKkxngsei7p4)~u-Cul&L zvX-QI)>q2rjM!9wWG-bP;CV$?^0X~O5!EXk+RaHo@u@@~T#Q()kWR$sT8)I3?-V!R z)af58eY+x{>U|pvIvA}hIyr|IL$OUqB!{VmbvvuERcvQ$Wa)5`&bk`5T(-8VY-Qey zH>IOJ?@45^PBw-6N_jN7uUp~07g=}Z-KK2sL1fFPq6sfswCjwLzo4XASJ1F1Jmcdl zKAfHpp-CuyIXNA?&-cG#RM4j}BxREQWp%4Us=Up>Ars|sRku9Id#}-K<7UeCGF>1|CAiS$=4tHguey?ufg5+!YU=OJ#BF%-?a`g_g=A z4qC(0Echg(Jq1}#oViAp5ZXx&^h=bevWJ3Q0VONxdu2W{hNLDp^fL=Avw^kwW}H@& zfvY?2C0uz0RVL_r^&XnI{~FAi4;$zZY;6|&jJs~{E*>RLUdH6+tb+7nHfNHT^c}&r$R~q+X(h~BO-xv;hU0^;iRV+WfsaKuA~uB~4?A=UDLmCk zTg0c74K_A!iiCWI;;2?4(p1DWQpb>Qmhn*V%-S#&`8*1hGfF*I^;v2dYyUPmo-a1m zY0zd$91Gm5U()LqbY(fLQVek`oC{pT<(HM}Q<$w}@Lnl(-4V9B190~Vk?#G?~-R6dv$jNpH^?lXt| z5al(GZaMcrX>e?I7rL5XICLC2pM)5Jdk_;0@=jh@+O;<_yYVP-R#RnR``&~W3Td56 zhw7WQ2%Kr=z-{sh)X`_?p(On3PS4&sayS5=Ry^%8rH|*r`s&PCVpEd&r~*OnxBd{b z%^{3(H*t84R*#lorDBWp=%`+0+81=~QS@0g=|o(5RKk%m}!~LR{TRER?0O z*w9y@0)vN=)(XwIiUnfR+3?Dssd31m!t>s%akL#GeINMCMFKZ|TMx4Gna*a99Z{N% zEIRF@zZ&!?zSYeb08>k$EK@b}QaV3ZP*KZuEOO+q^;ZTwMR+}fo&XY1G{DhOr(-u` zWs}49@qyq7AnikDK<~1)nf~Z>a4|d_P@_h(ysT~`M8famVNcVBzG|dep%SvPaXnG}AD~Z3LK27ND?Nki`S85!z8#yuCc`JhT%1o%%&Sf& zkMMg{seBiS5z?eq$8YtGm0lGne_^pkXVlD^SPOC1Ts|hl8E0M7xLexPs0kM3(WDeX z1cymtxSG`F6C8%iN-2#pN~6>sBPAKBW27Q@PU|9y!!UAfFs{z8o`H+wHfpytIX^_p zYRoi!tv}BolwNafP(~1X{hqXlHpz|r1;HTC@;k^umaiCwZzEC7b~FF$S4s+3>o_K@X%EN^=x9P*_E$wb6pH408ftzC2^O)9nK5^q#dWiE9&mw(I^HXSJg zzOQTEtB3n8d@l-o7Z2LKt?Cy}Wrwh2OK1xRvb2*7J|2IL0tYFYhDBDeg=rNRI}gIb z$Wrd|JsGW$%SA(7rV%Ur*r?U*0YNNF@m#htQtqdCSee!bp2DsG{SdRcqCxNj*%tUg zSu@}VAhl)#aCm~dG*ZQ}3L)(S^PQuWCU9a*+x7j$8fg=Gp$+RiWD#)7o+ZVAFXcsn zG4x8D%#_ejTV+)Q3-^l^=w|_bkt=OhSx9Cwm~oolsfztN!}|(JuJl+U)m!}jpJ5n| zec4#~Wi7PdNFNL8{EgMhab5r7f)3IbxW#h`_V^Z$%?KOs$5_KXvtlcZPiD}Cs)Imj zNZ1PXQ$->tH~}j9l5&=}i3Zgj|G7W166wcpWrLXaE7&qq-M5h$uXGe-v{FYQ?iD%W z)-h$0QtvCsh|N0bsif$!%pJE1T57&}SPYk#%C>Yx>I1ecLO`-*5ieyeixm7r!Fh{U z%n2~`SOSG^qf@(_-f~{85D-aOuUpr4q0{boOP+Mn=&ih;Mp3>Kz5tLwZ@+V5E6|DO z5^UnHcBVL9Vqsnr)EwIocXUX@gO6o%C$#ya)M=^9Ra|FBTHCFFpumPB=5B+CmM^gXU}9-@u{pA0-tM5CN6?zLla_! zwR9cmxy*HlSBzHSNOsrNp8a?IYfCDXcrGhz!|>xtJmDU{YgWX0{1(5O7RAl1@Pu0v$GaJbh^=_b z&jDWH_$0T~G|t?C*qab1o>+%3@x4j=2aDN))y&Wb%Z)%d3kT1aqb#W*W)Y9aGl(~~ zW75u^VyFT>x1fLS-PFS{@E3B`m2W=kuvIX6AGo{VW!H79v-pMCe_Vw-jd(y|bou2P zW9vAqj_HsLa>*)@G>xWMMqye~QL%`kFgD?U2g&J@DKSEkzSo%_R*3U_9(piaw@XF4 zlCtg=O3e<+MtdiTqQPo3Wt$7_@?%>(2?1666ED)v7zfEGduwGf`l3+dSj!d{C6muB ziA8>^btP^-0Ts%Q;hJfgetMO*$V_$-yzy2-CG~uvB$>*UODb?h=xW)BztzU2c!#;X zxOpo++NEe_MlA$sO(u2-RTw&zZ5eqRzl}!1gB`Uhbvi4=IE|tvU>TBKpegvmXZ+#e zAb!9mzAbN_hHjy_d{8i9vN6ccW-8Z*YqRrY6pf~%FI%J0ld8p{)k%4yKqg056;n1C zUPYWuJS|H+>P~?7X*sejCpYXFSS65T5ax?!fmaF2n+wNyM#{Bie{Q#4v@b_5yQ5bx zN3VYDj{g4BRi}OMx_$Yw`_t7yr-K&_CPmWTnu~#g!qyPq#siHe+=hp?A54;%m#?lm zx_hzX&wsljd#=AK9`e|qrc1FchKpKURKSUI}~ep?-GG0Q03-=FpfB$+3I_6!8Rr=ytF&bboCxWOa zhR%Rw>+9v7O0$=vMZiGt80%Jk8U+(22h_aENdSP(iprvSRwP-t@@R8cvHhR{<5C^F85Saob` zcMXRM|9fZl!(M+9cxfLRAtm0O@BPhqcKGS%be)nV4I-aWmkSmKVj-SW%1^%Zj(2uq ze?xid2b5f{(@URm%3w9)*7L2GEa~m|N6Ky|aS&xox;Sp4xDp$2JBobHJNAENNtRx7 z+D-wR9sIB>xpx9oL~!FQ+oY83{Jlfqld|y97nJNTVRe*jHZ&IexW09n@KA(FT-^&m zAV|lxqtBn^H~CCPKqy!i2u^%U=b_#=WLH_5CQQ&JNm40%V0Pf|K1m{CTQwlx*Ho-2 zBY|Eae4S*`lH5~CNSB9A{JH6cfGCXVQLB3_WM4;xO!c?RDOg5%z(Tpw(`-lT zOtSkZ49F^r1L@3S5tw6eD*{i*&0UWu1mI_1tV4cqYDXJrcIhS+&#vLRaqNBPu6NwT zpGUh*Ku(ZLc&*_F;eybKF@6bC@#u=x3xW*nkPM#9Wnx|7!px2zUg9i@6o>({OFS^f zAitA%3A=_B4s3We2P}Y-B#EQvrXvkkZ-9eHM3h6M0z*J7js5!w#Q5tr#6;X?jkX-n2Kp~1=g-Dvo&^n|%IDMdE z4rSi8P@T(aLieXn(tWaf0wPkBQ>W6VRn=WHe4N8j__+ zx8)R4J9R;?ghrgAxRnn-wwEW#I|V`^e1|-w?i3gD1rL1a5?n2>O&}6GtH^)gj#7{D zetCfq(5G+7GF*j}6+3NG3ezl{ougEvziw>VUD zKVWA)o3ZJ^AU18lU*nc(rCLv_(K}$+*0Z<8N*OI8TCmm$Qz*O(M$-uTQ5RBrub(G& zzoouvtTrIKQi!^$VBRAjhJvDDDC&`+a65{hHZ{oGJFG_U_sH;9ohlqEC9P}d8B6?f+G@JvX}(=-*A1x?8o{qw}HaooR*gyqQsTgMfBtPJaly z8)@`WtXc8|?dTJMyCxVME{E(PLsjD+0hQgQ>x}$ZwXO0dgSxovGbPaZp<^p4P-$#~ z=wYaOd)stn`i&%CcclvkgkN1d3SBZ#l9GHP>K;58e4Cz4&L`v9;_~|I#bi{=P?U3X zhiO`&bZjTKR56>*$D{f9Y%48>_(O^&e+=j2?bJxp4=5Ray_(O4qxm*k4DAQhT+N5` z?aoC}en7?f#2a30qd^injp&sckfkN%!c7`MBDfBLPOMKfDU@btPOwlbd-nJ=Pj zrJZLq^&oM*dBI~={(FZ~nHZ@_Nvbd3eY6Z7cz7Stmf4Y<6j?(fc=?j2bqH;q9{uFf zI)^E0jC7{vgq8syP40xnVrkqMCxZBoei-5Gr#ysdhFd;ZC=9O-K6Z68vG(~;fOYqo zfGP)#2oo1!Or0LyjhcyQyi_DDXNSHt7TbL(zH|Y&G79Y$W*;<^sK!d8O_R4zjV_#r z5rrUt7v}of;6zSTa-uY_Ddtl-O~VTZox(PDpg<^jL^4XEY!kbdjDFQ|ZGl_u9%TUD zD{-8ARFYRqoxK}v@`2QIS8mvjj-UxmLqrryHe}2gpi}-+Km$$<^mDisR%v?x!L=b9 ztdUbpf{1Fu8g{G>b(X~<+)%4C)jextcC@sm`#8IoL56@3+1E2*H)g8VUK(~#F|3R+ z>t?)(F@u`kFd;Nr?l%uOvWNK8&u2*@Z1NGvK&Ewbj~ zO3q0vE>>{P&nqr*ttcpRElbQPO)SaG&vUIvPAvd26jCcnQu9)Z6=L8*T-CK)0PQ_% zbK5wQ-}5UFpR=MelAX-n*3~(2ypH2+eB(H&Sed<9+2^7p$l_TdwImhCGs*t;>ux*< zfB-2w&fZ+raknP22s9dvexm_B-&@X>Y{JL$IOkDO=E=CcC~ua$*nQf4_TWJpFL<$x z$DF;NE#Jp^!E^X_`|$(zm_9|PA=G@!p1m@^{0iWZA_s!`z27;X(rsH@C_%^jUK3OeB+>f4Y zatdTmFE9K}%0+p0FprC(?fpTP7G+DDx4fKX0d%p^QCjkR3d`Lv*ok6^hBoi>Y{~QT zCfs6>-yFo{couH)vEcB3@B5$Q{5ZMdM-!fw$uuFJj7Pw|@wjAToG25`_tlrlVmapv zXs+Ho`0W9MXN*K+r@y>?`R@4Q5W zL3Vnx7-e&|h?m$Nn=kXMjA!PgLIjJ6o%m7 zO9P4rjF?nPvcQVuGEJs8NSzp@KK&HWlL@1_d4S9J0)!7m3pU`&^E}I0&d1p&p5FxF zQnMh`eL=Z8#uGk`SM!od($?Y11_FQw@`n}BunxDJ#U+wsmGaL^0ZL$g9T$wJ<7|b( z3E$R7thx-a2M!EbY&EJY_`*d|Y^j1Kdxt^cdQl zQWMXD56?kyFA?0Fe+IZTlLG$1mpo77IV*_rKKK@sJGd64D=Y8{3Nq)6CpjaFyjn zn&~5{4EV=vk`&81XjW8I*ox+43-K1|qH&hzpoFt@LNX-YBT6OMWTmvshep{JGyu(% zkj0jOhw|T-V0wp})bgDDpeS~}#g4Qhv6=vcCq2aQ0joa}Cuk$ZflqoY*#i6}s8`}^ z4Xv1EtN8@g=?Xo71oSeGCtE?Kg{ai|80boR2q`Pt6@Y&_0VbTl7eF_n7*NLRyF z$-{#+43sF~z|+}fwkqZ~26&Tr2QxmtY9TgzxT`+I@0@)EM%Y1jBx$X%;i zwD58ugC8_UY6AFEzKFr9j};(%HHybqKA8q>xEk{V)uK_(P_2RHStPJd&Ei&BI-ju7 zTbg{Mz?s8si{@JF5X6xFE4TpK4rEio3u4KlRSKHNSYe- z)GHwhc9VQyn>$Dcb`!FJpQL28QUry=c-1H&#ya_=1Yc_zv4*oHB{b(&`Ka+5BBg{x z;AJm|5F@=PfpN9`Gz={)mK@T=1LG<&%$!fl{wz)>;DJoIBucG0fI#mX_}oY82^S58 z^TNH8GI-1*zJMnfz5Z?VqKiaaV_L_A;+l~J1m74hl-m6eQ8iIC6gwP~VkCQ{c^7>;h^SfNDC$TP#iysB z_0I^@>w0OOFUBQGvq%nKh;M~!CfrC`XJ>eUT@e`j6hZpNMvGG-<>L}O%h9S-!+XGB zyM5KH3F0B(*A9=TlXhq}tU^=&aWP9k!X}Ty;f(>l@RQx1xB)x|-yjTmo@H0@44Rx; z6sg(YLkzIqz+%n0{DaNpUx8>$Hul6PqB{vhPp~=am`@qRjUwEe0#*~BlOV!8>{#Ka zr12j&tVgTra4It{)$2$PRBB5iQHv>N`PRCr0 zq#C|klJC014p!iNq$S24Sz2rM=Ow17q!JL4&Gtpe9s)UOZRX$4l?Xl$%I<(vxk{>^((suM1p%@`1Z&t=YQ>k5uhEKD)Z0TnQ} z#7C<7o@p#78-+SENmpF!e_@8>Q~*%$v+)@DYC@V66aXmx5(R3sO2G9Y?nJp@`=^5d z%ZWIgZPIkms1?~NA9FE1fJ8_+eN27uC0zl!mee~cqH;b2LvPD@QkSBqd?~N@-S7Zd z6OXfjq;PGXIj5YoPDl>V1TPJuR&M9edmA%>gM z2iaBaCK-vA*0m&e+w5S@!ER(L@KUk`S6&sRo|4Lp6dAh)pFB%D;0tDR+;%{wOLdmV z1PQKM2A3N6e^Tto@p1HwE1*r$4IZ+%Y=Hva6eGgrBXzP zxQx;L(Ej%{$%~Q{7WpW`Igu-XeYQ-ZO_ld{wL0t z(jgTZEEgo@mX~?ItZd_RZX0tKj zpa=t{S#~|T#W%jB^=n>^XF^l(&q^I6rl^yXO43hF{;1sE|&r{Eaf^m9Jl3c(); zrC=&E)CUBMvaRIql}3D>CuGubL{dxO2Ezw%pb#60Ujb|dzU575R2c%YD9uVXS&@Cm z$gR7@-T|2WIsro7WGi+}87(x0WrCX=mz+ed53_=xLVHw{IEX3J!jd91s)&;&%Cj^! zsc>v?Axnn%+`t$TK|k5VHqX(d;tuH*0Cp#^O0<;~iB@FVdNpO)b99}{v+Pdi(ya4WJfA~Z7#d9?!-+rwZDn5JOUPA@-JlJuk3QDZ4 zQf~)Wj(lB1qJ)nTgMEl0nyO;3VhJo*PV2Fl`E&+)6@+I(F0r!-93_+8M-bkS?%jP< zbUVF9po&C2X7Ed}N4NXT`|fLyd#Ka}BS^jfhXP&T?yc}J7d*y1*>p8GbpSNle#|hq zx&i0h*iR+psRZlp6SZ5K;Q{B{AF@)P(e z0Vxbw_@TBtKRi80ZZF(yPXoM~BT$3pNlyh}h0;x4oC35oP2L9p6;)<#4KCPBCZAm+ z=HI}pgF|tPB7&gR1pe{d2B)hhgdQ>8$juSxBkZig+|S-$zA$OZs}YQy|F9Inuu;oA zahl?lTLEBDpi9$i9Or)K?a+LZa7unj<_kyrpcLz*mU)muw zDb@8=ssXVXAZEE0MC%|_uz+Vr0agU=}@B=7Gy zNijDGR$lHLIU01>DO5Ah_EBv<92d!e+zjqca;FKLEhIlnEnNbAjs1U&5dTUFDB-)odaRbH=wMiX0CZcYVDfVrzB@Bs7{ zPTh*#T79{IABT_fpj_N z)_RNL(pXO}^wL{QY+Q2Xi1#Fs8+4UPE3Mu1CSZia)KhjSL3YlrWdzWOFLNGWu?1*+ z%y43^E)}`iKx$MI;%S%=^!~>dLU|JGe{Aq@CA#mkC0hZ8bFsdCVb2kDAxf*1R6CzE z0=k|h;21;?o3m;7L~U{Vc@?-DXCB%Db>sQ=n7uxF>%e!;WY~y*V^ZV)6xq6hXwB)5 z-EjH?x%VW)>|#l|@M4v77LRZry{dC=ctmPh+41KMUbp+8-$R=exOHIpKF#iq`Lwz| z=2H({+@~^phAD!0w8iGzvoif}&Qhh})-;Oirm-XgtTD>AH?@6>G?mWu2vpb1 zPE`~za5A?W(W_b*8;%{tS19UO86ryN=2^Dv*tM9RN~g+aRrv_2rE9Kx>%S1?d@7Wu zE}^Q=*IB**Z6_4XLipFX~PD5vB?=jU%T+ zeZp_c#VW);e*xn+Pk>7Ss&RzH<{GRTx=e5zm?+T5M8pxq7maLy2N)dI#De59%h)1L z!8&8zDeY;C@;0hd5j*)?>#&NwayEYmh#vNE3#c~nqKKxLr&_&fmZO@`k+iui=y_;$ z{(^1d>ERj^$pC^z4D9r_WP0wn$63>>;NIURB>K*Ky5D7*!Bl=dmT5_wdySxrQXP^N z6a`^Oo_Xkv(rUdzCK)G22m326Cjzv8ZP{ZTNMWq0gN8jLDdfZ3W$H9yL-KM{eSF^T z>;J2+I5jv&>nT+<0C$XBLa8xi(Y$rs-YB}R6pjhUqj;K&9Svgh@hoGVN78X84z1#$UX>!0DZ`2lZ!?}7)p!P#O>Vnb9+?B#eZ%KVOxtMDP0~-Gl_p3|r(n8p zQ9WMl(}Tku8>q3tx7O z=l4bJo!>_?4*DRi7uCrk&rzT@KSx9f`l_TNl4s=zuGi6-#RWOhIRiXxar~^4v8mS@L4jh##zs8dwdPV9) z#;0->B{vmfzCou1U+P1gz^T4#vO=ajfL56|R}4IC81zj%FAuWCGMV#mDh1q^CKxB# zvZ<>VYXVtuaB#-q-J;--os&!)DqO_q?Id_4XI0`Uf4XHsqww3;PERZr$w!qxi@KpL zCR^r+?#QD1bgEbv#*^>C=_V=7c56F8_%sTRUqZCPbA&|6$0Ga0t2-BjAgFr$iX`G% zzgQkF!Oi^_hF()d5Jy)|iQji?-r;5$=Tv+_um4~*cUod*^`y`T(9C!LRJkGm5*hT* z-Q$ezBe`;#d|oXzbc25+tYFc25C_4GV#d4cAYye0I_d&vXIYG{4ZV!T8_FF1qP$~a zfGUd@rmm3ZD1?5dTrw=1xL3k8+V_H=mkL4V)U)y{0?oRC0gZaC^^|YJS)_}L88o~Y z%a-8O($VyignCllL!{~DM|n+BH5cR=^lJptpxxG$w!2B0Uz2*5`K#>`C!gqwCgqR? z$MtEJx^fb`S7L=6y<1-}I*!^yC0DHEu``*Vt~WDBNI9R-p^*`E_*_CCJ~215B!Ft{ z>PQE!0_Ef^ty9Z~3Ici)n_`CKg=y=8*8!AC>h7eWN4BNU#85*HW*O|$IK~si;()Mu zF&qHDO0(-ZpImZf$BZ+uwL`8Q_=bw^dJI3l20?kB74k1i@Zg{3`BUT`Tt&sik^)1S zT``H`?3Gov$wmWhl=+QIOU?MF1RHz_-P8u#WtH%uBm%(PPZ}ZhJ4@Q9X zN?zMkaiS+*gtR0Pj*V6B~NijUL;e zVK1?s4H$TDDj7G|7BQ;EI=Kz;4pL5ZZo~wzX@Z@^_+eh`Q*xQXR@X zx#C8wB?yb*o@t}=1zr#p2X_P1j$kEzZ4MMZ{<9=b4u1QwzM8$;^Ei%}>`Jp`L3USN z?K$G8oPvR%vq8|JnqGuS>51rHe3EFhUxDDwvI8V4yh~ zJXw0AV)^R6y=gM9)iH=IJyGT&wtRv(AEgNX&EV}ZHeBZX@?wEU9iqB^$gaX=^;)-B~&tVP9SX|I3Zd}Y4bOn=wuN&d%^MXYLwkzQFWbLh}7As3}cN3Wl zxnm5ie^Xd|jk;UtIn#br<@7#QU1QNzVIXcd0Vf+LL+3gcbSFOsC^CrNKOIy-1zkQn zE~&q`py67Npf3fdmK#xbBaqr=)sG>Z(lV&~`RQJaFV$PR+v-)a5cg%^9o9=PsQnzP z1U4ahEZq0P+Y)@`mh9DhK?5Z`PUQG@wX8Y?aqnl#KUK59ZV@4>@1sMksz0hibMT6s z@eJuBX-6A#@A3|O__ET{?op4k;Ife_^(5h8B9ak6fBLE^5s zdkYc$S>7xX5js5^q?;GDK`H-SfvV^fNhtKw3OyRLr|4`_*taXtKvav{YUC^zOGQl^ zPgxm{4N#BfcK~h(Pu39rzVYe;YS?oC~R8O*-vTWX=kGn6(Gqi)b4)`nLb>RJUp2ebt|Gmfub;9t$%RwpW1m0t? z*o0p;`fngi7(Ql1n)*}v$B+NHbEWOWO(C^O@iG1T3Svi4CX*QdU~7{631$KLFJsE$Ne3puQS)K5dVVqj<%Qt*{-j4HT2g_~bX`O8`%h8-oTC~xuJ zK!~B5y7F(Hjg9ErTiUwJ3U=DqSk6Uwg$HfJw>hHLT=&aJA>pg+aP9=~-3hYHtixvY zV;)O=+$b#RfYWP~GW@x-pOSP^-S`S$ba#+Y)YTAqe1oSL%Dl{IK_k)F<|}v&*II(122<#M!;L|Zact-!~NqXCbk;CdiU|=@nIW5 zDWa1<--Ze~x6CE}fdTW8*z$ZgF6rob4dMEY3KAm;d1nXJzm({;MzIXFbESfNgn^d1 zeglDVY(YKXetra-KUpmn^8Wvjm!U}VBLbn+K<6(7dC zJi%fgaT{F8@t*EX{os>%!)xd&YWP=SAb-tDym6Y#0M$U9?YG6La>`%iFZHpbM*MK7Mw7ACsJ&cAU_1Ge z!u=rNkZAAu?pfOXa<<>4O(FTWk)g)TM5{ag-h}GBJ3PzJ(sStltLm@5GC=@eay(Wr4dm`~10X_;hqgGC#&P17pk=xg~wud=bUS{_xZV(uRP zyZ~L#QB;~#RcusP)U=~kn5wOL#jnt>gv7@*!BWseh;Wv?rcyVr64GT#@JzfmIve6( z4auiPk3D6fq;vS@@WbJ&cLyMp_V*|6{t924N6;$0ceXzqy*%H0{`|R6dBd~L#`#_} zjQhXt_y2Zr_W9qY{j<;0>ACy{?6vXbniOv!z zRakY7LF)1{(lCGyPt9Ldn8zbd_a;@^&Yov|Xqq$4m7ET}$afjulr;m1Cl(SFw+uVD z&>gB*!%xrrjV9Un80XcIxAnlsa7)8i5bX_|Of1CLZ{p%qC{W2zmclo>_DHeUrV9NB zsEONqgLQDCu^I|=3eN=F>i;)r(!1J?x+SfPvel;R-av;J=j7R#<1Z)Uzv8l=xWGx% zJ{hc%(kZfFQsC&^qvLRsd7AiZZ6V3^VrNQ!8eQv)CJc9-1@_32@6cK~sh~4(kqa5w zDaBYbc(kbMEeS`b<1>mLm%7slIn>T{X&TiSRWc&vCf7RkSkR}UbeQ~a$kaKgnYfs~ zU)1?WWU0V^U{beZ*cI>Z5(vc)l=EtGe^FJ1fbK*#Mi`e<{`VD6@!*a@0ZbD1e5R1c@jtdj+Q)E z$Yp;enM(?ZXk(rBw`C7~VmwRh<;-g{BR<3o&74R&)nFNzel0s$gWa}+#IFx3j&UpV ztIY+?R#idZGC)+ZIf|juH?0k!mlVe$l_v{U&T2f;XHWgbP=tc4N4bq=@bwQbO}M+P zu<5Bu^c2Ll6~iZVu*aTLi-21bSXai?BTO=3-dO8sW3-;mGy2^6@JUCW!!uzt-5c0= zwXyGNn%WEv5fNtzaOlvs6+Y(1rDXNUgmT;TqWE#e`VUI|%JZx*e=(MRTuPOvR~Khk zJMMurqb?)1wh!G*A+>7D1C9yPzX4w2Zc~HL{i9f6jxoWeE5wbTS9IDmUy^IN#;OkA zcU!py##brUib1te+lociG>nPS#!`2;z({Q+wI zxeFJAjEpemlHcIv%l4_2|5z=SqJTE1UkRaKE16|jG)l&K#K$qF%<$y-^hQIbLrGvq zGf`8D&d4>k*P!d$8V6Wk07}+@Byha-o`twN)7m*NqU!jwwfkmG-}N+GH$U2T(23;l zQ3XWwU%ZNU!fUx){E~`067Y=17?n|#{X=ngFTRr(i+odf_OpUdItfp5s920jA!Gdu zVuzF@}QEyWULamiekGJ#ij{e^7>5_la=hq z_Bp|Wc)C}Nf%aAmdao4GM-?LTbXfxfQCSj(^wpnON^rX5<0PJwj3K0YJ;7~=qJF5! zB+gmqQE}Emztt#yhfft@sA43@QQjhe2I5(hcSWUkRtKNT%QhO_;V5zY!TdWNQ}>rz zSDBKO7o|wCdk?Am{oB^e@cNZN#E-;4kxRJK}gt16{iiZh( zxi9^8J;L3VcY(DuMogj=gV= zCEC2Db1sqbSu<@Qd@+>mbRJ)Vs?|Zp+jp;yULPHPxWJ1Kk7_Ai{o4s9dppIG-m_PD zZ$;8pO1jrhL0fXwOhI0L8Cby3Z#w#w*e~(O!)UB zz$^aypZ|ECrTn|BJ_1&UzJ6EJzl%^4FGtnK?0WO6bJ1MsR9f!)UX zmL){gueX}p{>#(Bhy8=Wz0EGhYLFO9+kY4Hdwq1We|&F~quBgA&#W!+BM*5+>cf3- z_#L>QBgapy-FJC9e8Myv+y_~{>x#EbL@fC~X>mUm9R44Pf7)DVNr-r!#AeV(e}6yU z*{i%wr|=Outd9zv$ptU*$4>F@p&`( zF@cbllb3@*1Oxbir9nb%2?XduUu^kOaGxW%+YK@+^Q7Vy7odT~OCNTF%_r!$xI_8hbHCR*Ou*sC%nzr$g%!Ya|vk3LQmF^k9w9qWK zlFm*Is_DZyGYY60e8cs`Q{A8MDAYSm5W3f3*+v?M>>9bBXupsHjJ@vufpz ziQl}W591)GDQ?hKM#DUIZ1G};ueBXt(Y7~X>*c{t1ip^*H|jLf7Bi3XVgt*8+LjSr zg7e}9jTFSA^#SeQyH}s-!ms{^Ryb}8FEnX&)j!qNG(-8D;3Y$wu^N80#VL39grSAa zz2Of_;wE(no2i7tgaPlLa$r>yIs6JW&hvL#p=h>ui+DeLi32wj5n8WyJU+aA<|oWr zoV4pd9@{hH|Iu^n-lvB5C;yx}`Qk=sTob-We*uM4O;3YB5WVv&=Fo(;Q5&yT)W&!< zMvWe{X@+H5h;-TPM^j?_@9x5afEYROvGd-{d&A7-wMYdd#B!80Ra$0DZ*(b0Md!0+ z5OCa+637T1Qt^ONk$k@|60#wqhKH-zCP1cb(B@MLR&ob))Wj17T|n>|fV~#;Ioupj z!rf6wc){Ed=mLbJ&KDI#m^jZEOb#x%?6cyc$l*05osw*MaS4*PLwa03()J&^;nwE| z*iS&YGkfBCn5KqUdp=S1ggM+6+!`}XD?r#9&U99AV3_AWskrrj<_Qh&MxexfZQpyW zBK=+r(3Ng)sYZ|YV4UV%4rn9Z2XvGYOPHXxBN7`;_U9%^=6s?x*`9hxkfOJ%f6p+%?f@rcSSVhz@=^1lDbjdNbAuH>$cb z)Csrx+Tn1)uVAzRJJL@kcAIeT_G&tV3vcL0z9elVhqthj6P`d=6?QLmg>c=}aQDCJ zJlh?v^1GepyWa&uyPRQ@=_~jKtyJ4?+CUI}_g74%s>X;m?JLA>2%(bIkf19;J(Af!P|IPD1JEI=Q385QmqXJA2~4l zfpB06!XypZno%yGd!kRXd=;|*-mhb_5rchzX42&TVhQ?#NDh+-K_(4tnm{>8o{~ua zLf3$K9-sgMM!I%|n8_`Xfj$+kCE_fTF}5uY1;2KAQBMo4Qm&Ut(tKBiXdwvaWLF~y z%5JT4qymOv$W#mxLv1b4dqr61NuV6T_k%L+j^Qoz_q4D=jtifAMc8II7ZytgObfLX zjF|ZNbNMz!NWzffH3;}mnAz{1w? z>>k*L*k0~YH)i5zL@}b=41#JT6LN?%8JS_cgH%rJw)$rz9Slhkb(N;^o2_7Csx4Z& z@;+4F*(=-!bG7__e{y}{efP#U{`B_z(i=JO&Xp~z&}uzBy^6l`X5P7X>CJ!n713lk z`{97AXpX5(##5vL((qrZP;$Ig2xWHuq8>Nb^YLgtzHpAqf;|vCyza;3pc(#42HxFp zKCbku{k01)m+!R>sow8oa~RZCZ?0cI$acy4Z2bX!Q%!HeFbuu-SNMR`7O|mS$Jm(A zt_X?U097FkP^nF$#F;=F|9wvSLFqnxXeB?t=NCJ9dQnFOso*)&A~L8mjtQQXFw=*4 z5(JVJ!YIZCERSl*v=MravF9qg%QFrGPPLO;wYJTA3oB$O3L(+- ziG~Uc8Lg@Q4@1|RCSW-c7;v%=lH~4dxT%^crdiSV?ae?H|DBpF`bodgk89f9VFzqlH;Z!6CHU3=%h(r>lje0Gm zO%?STMM~96h>$T(K;mK9OO+_fzt=XH0HyT-Bk#`a%zEMFjVBypMl&MVRH8^JhIrvj z`cE^@aSD<%$q8k!P571w$waUzV;1Z%M-{K+Fyf7z1s`WFRJN)jC9Db3Bm{OwR>Tro zI_K(uTFdzyR^LR_fsGQdKftG!1m#hoDC3xxg#;{tYATp74Ukt+mQt7)`Cgw(3kbf5 zNJ*42XkU({xHArU6wVt_q@^lFJ0!?*R-hc>q)JfrE!6BVhqcm-qM`~w8sUZFdu-x1 zZN-TodCxpFo=nEStr(E>U28+otnm(vX=v<1%?}_%2y(GSU_ww$R8*l7{2s@t zu0b-mpEl@T|Bh8b&2@w!wJn=Ema;BT_hT_)aA7lQwLa_*?NLXKJ~x~*xVGFAOj7yq z+Dq$zykTN}DSmI_I$_;zzcWUikQHZVMTc(AXctZlcU7dXLQjL7&fvN6a~CccR-%Bt zYlOH9a8*&g8G83%3+U%xMf6x1a{Uu1PQTe*Jqe-tcwI|)bAAAIQ_F6`Fc7@wEB1gC zK(wgWrfI3#UJ(*iFQke#iGfJQSoRu$DF0qN%^T`NVtHrAGhX}YMQ$ZzEaj-!P?O42 zis>Yo4j)E==Ly^~Eiq-V*vbVe%~UksXDnLMj%?lNekHiE7JVG0vS_=D*03a`JpDoi z>_|*x8fr!F?13HA@fc!`oii12HLSK+uJ0t58}HR{Xw1R)m>Eg}a{V!X8v(ZqKs^?|H5K zI84WPkA_O&sn&%7l5JjMh-rAuvYhh0Kn~4nN$+G|8<9F7#Bo}M9eR~yH;0Qcfg3)< zBEh6I)bbp=I!MRo)&^Fh1&mCBc6!d}a^ukt;TcyT9(?nOkcsE0C7%ffW61Xnt z;Rqf}(~UdD$S46T-|pv6z%OvSQaEYB;^d z_KWnNR!J{}qL5AEZaYUF;@w2UbDtch^Bx=~7c%gwqT8nn#hHH47DjxWp)c%{tMQh| z6T9%iM*iP-d+-qBoXq2tr>Uo<^M>c||Ck?crvl6Gm|FgYrG7Pv!_uS;ai9DGb&^eQ z!Y~Ym@BI}%AQdV$wCflf)5KvHgv4%us*oC})P^W=C(y)yU%pC9$8u;T`}OO`abDi! zK|+SSU<&)1RL&`-vqU|48jPbzuoAUo9AR;g3#K%x_57IOdPyaje5Jb?6EtR8!>rKw zxk~|0gd)>$EsK64FlUq`F#TrACuS$9;NvK=obsc9WaKom+7>y79yf{cohoa$+Q5<+ zVTpotw@@2_Hb|k={UNc9%&ZkR1xx@M(tHQPI6ekNEu2cGSlL1Z4+H*Of$!-9oM-U* z2DDSalw#*#+GAw)u&oF+yl38@70^UO?aidSN^o~`Y0B&2`VF>&9)>o7XacLvHPq^9 z;{)(Zay)d%^~39pqNN{qh3aPO?W@R$Dv6+`hv80GuI`5 zA;Mvd7;bUFNGJlaNilc7I6cdvXpMP_LJZ?oI!26RHoHn9Je!EMknxN+BfSG-GcUqa zkOjf)VE9UAIULC17|mns%Zd(8xTPeaCTd9zoWqzUDQ02=_>aIe;!u`r{k1?|C+#+z zJs<{z3K%7kE{j9^L`TzX9+ME>FJiRhz50Rzx_D0Siy?yd08$xg0#He3yVGK;cyFs5 zw5>O`}NpRpH^n^uCj)b#=uKm`2x(#ftEc-)i$K zt9#9f#!t7_|CO-u#jSOBC7c&ABRnvwwRBw$oC3waVJBfR-YxoAfjn9Vg;`=T$>wSo zE8TfZtuiv~XfiA^Mqz5}vh5Do3RXRJq4s?(LuJ4GTw$@o4CHOMQ3#iZM=FaTBHlnE zPl|QdIJaE zxh{MzSF3Bg{qO2KZ{nSMm!AJCD1k=($qxry1#_%E@?GFi;OI3<6c|s5p@y9oXmWGy z4+sA6!a1G^c|c4H!)PzAt<8xecvOMxD(Z z6Z`pW^}`N|Uxr=aJzD<&b&^d>!$1&*@A(yTC?pMP@oKGB#A_+UTU)|(Gq!Nc95yiX&hx&^?&GuB8YoCrXenW_rIK9shIn#697mDHn%JNsm~YJ-Et6f& zb_Fdnsm1plUv_-a!>yfxIJV&%5jTy=-dGVtr=S5}W>s?Zp6Ei~Cjs0~EiV zwG(1^DT-3coyH1|)o%7I_lMIe2qDi^A2n&IU4RKJRyUo|sYR#{q1{zuFWZuDpUxB~ z`thZ(r}vu+twZ!@whc+<)?qobaNEfc9=bqBdrRW1hDF@q;#Cg}=YP<5|BM<~cvgCI zO^d@_pLKZ6^x^T@zlaZ zdB`&g1Em3K)@9lPv8Gvr-Ee5_?y-28=f58rCwX4Q@F_4mYa5QW2e@vhpUB0uIG4$O zVGN5i*HbI0?w0_{3T#Q6Z`75FzGsJG%!qAvKJB$?wkUdQgt>sWGXfDp&j4`^8Dtp!h96|ZFix9vt&#}(P? zBZBRI1oal#9x=_-!)pi8!q57^dgf7Qr&?h@->A1hElAU2vl=FR3GR;J#Bg06%%5MH zgBp(D*~w}|NQR~4unlcf;RHfg+?cLNxc{%rM&GVYZ*G~NZu5s`^e?5488YP_<&TX*wC(HY)oTUgv4%us*rlLQkzDJyMZSD`;t`s1A84@*9D9=Hk$0D zv28nzv18k6V>GtY*tTukwr$%<<8R;3d#-c7^B>l==9ps+uoV^>b2r3&y#L(e>l{%L z_UHQrACjgrL|qgw%I|?C8z5K%{@=_>9K%q?S#;KOcY7-c6_hX4^R=?e(dLm2p=I)|Cr}!l#S;2{PzYF$7fc{tFC3Mf_4Oc7|wXSn5D%nGmSM$F1+4+mvwh#$wagoIDB2M z;F+@E_TUxoFVZh2+l|;YPDW%OO_BCqSH)nYb?$#qUUB0VpoVd==g%-r$c&Vx-1QEK5OFFM9m?{c=4ON?Ec(DdsddXiC)R!E+Ty6% zn9D!J;E1j=wgR&z0-sLLh3o4B;pHl-O6-Lcu%2D9qA$0ktGdCAGRx@{Zz~Vl0EV`& zm30tD4TRvj0E(zg#5AbKyhPHgG;}tbb6XLjFIP>QV?zmDD{<||S#P>u8(YQg0Pr)3 z!1*FUg4dJXpM`nb){k`Iu_<8*{{WcnjzTRtp6t@#Z4S)hsneqTqycj>uqmlZC?`LZ zFh^oa8@lLY%J+MW`-D;h5$z;)_ef28p->aZ(h;e-@GBqCDNwVD>T8eX^osId?meNs zPM*$ILzZ`cvm}*T!o@w?8QcK5YUske+5AZ6U5EH5ITTMsL}b@_D|tv5mv=~naFm1d z^r#916ObMW@vx{FvR>+Z1zQtk-1RVUNbw5-<6Ds7xX}-!gQm_9hVaOjlRFw|`nXp` zOxdGw84R!>iG$%t72Obrc1+HmBVMFnvyRh+(#bvKwwC`|_b-MVw&^}pbEw{89yAL> z>@on7T`0rCy3~JQcG6I40MnL^QdG_iK6uBH^3tsrP+wm;wC$8r_4)}REARi2@h zN&t_uxwHaWHG4r+?ZF(&>-H~RV0Y8Yj_>1{8@X8Yw0mVPKrBf7AvBVXYrhjSVGBiE zvA~X0(wNwwZAqDpY{Ez>*@$@`slBD}{I7>26Nzi}8D2T!KvWP7T$K5&3*;4IJmioz zo9vEt@uVkQ_HVMIL?X#xp+alDQE+#V-(-^_n33#8i&nj!KINMs2BM*ds7f4GLjHE+ zD}!~#?9Ndi7na~3IWapVwb-3m zhFM!>;TeA!X3cg)PNkE)fBFL^HM5v2-vGd@#29!t z(?ASf)TJ<#xbfwS^WSXGwC)fsiDa>+uk@;nIY`&~CV~n}fA*zH@8P)DPz~HQR~}yX z13>(qT^~}cIOQ-qR}e>}Pv_rgzKYO`H}hy!qRbDcD8L0D^;QzvMs-q!R%5!(AYvd@ zSUHEsWLi;;4wANxYbVO!a?doJjk1forpSAre43z51aabQ-H9DkJvKFAPip|rM)M-n zb4V@p^Ppp|*N&6ttWe|)MnlmviM`?s!M~={M?;;XM)_f>iAsNm`2M>Jr15)}3YstG zy={hi%C@ZzIDMCgPP~@DcUcKXpP0xHZdiBehodvFWjW=Z$r6;C$pU@AZ1vCgk(_Jh#<=OzIl{`Px ziX^=-?b*mO=Ws3f-`2Ix2ce}TR|-A%;x8qa8iw`O;i=*R&x8(YiHT{L;!$t1@eN2gsziHaP8tn_P9dg{C0)DuO`^A;}UtJFgWTqcm*43o^S8Y4FYjn zdM4C|^LrBVTS!vKYVt5=Ea!sP6OxmP;eW+IUZPM;*~?{(eT?vd>Iu46`Cz&DzDWNq9id9ijSZ3C*}6)Gp! z?3EowL!Ph5V6kq|8>BfbPo<~JQa{>&W5Izy=wI$3q)#pd<1zoR1gjbkM{o&2&=~1f zx+IISK%!QYN3w-oDfG27zS z3j^oNUl=#}d+|MV_EEQxgwG8xCUO_DKQP2f8@z&uvff|0L7zi8#Ai_)+-R1>Cf(lc zyR&fHHEtWAr+_~iSAK8R6EOY#8LXJ$ti8+xnOIp^5mx2sT%AtPP`t~RR7WVO-Q?1-XdSZ4pFo|gM>GTcEWXZDFpP=PpVQK0xH|WiK!=;t) z=eQ1tfH8rGNmJ>iF3cC@?Lm}L>W=Yd!# z^^Tu{3C>j62_?A45D>hcvB+ZQk_e;YN=!|m_D4(vzeJj~rd`V}W{Qp?cl#oA(f}+i zpx_O3Jzb-KSNaMWV6V%^v4KMD(v?G9x@OoxvZhEiQl%tXP|W#x+_LPxJ&!By45uwpvP)k6p$TWr{+sdWoz4HvLt1$&g5$UG+f4op1zB33#UBPI_qJEm zGf+}w!jIRdQ~%jr`BzaNf%&U39)tO|)$jnh*+rnUq;$O#>%=BH9^x)>fptAKSw3Wi z(J~!@(1rEBtno$HS8De<=auYc`j7VRs@ipfGeY|ftgJkJ>!@1zK0(CbXOA#Mi@WV+- z|G$UeGhNIjS~AA5dcH8p{6xd@T%=^=VbNPe?1DXZ)6N)LS-F`M!m;u3dDwCrzGW%N z%q52;7<;osW1}@D~CG1cuiWvSI0w!28X`!TO-Of z0yi2>39+n&sz$-*vtT{r+EL(gA#oLO=Q9lg=VK{L*s&n*f@;}MFnlGSEZl{YO;Wxi zvgQn-^Rr<>#bA8bEo&BT{k1kA7Q1ya)@9~Nm5X6qRv7En&qCFIxbQ^Z!X}<2TuQq- z>0}HdH0RljVUl1<%E|93K9pcB|OTabyfyulh~3dNZD}HwCtdaQ-Rc zVr6lZ1|Q@8y8Ts!f7fT@nU}g9t4EkM#?{y=)Fj@^a%VByHg~`M#U`+614-WuHzsDxb}dtDy6 z%q3$qV=k(*5AC{eGc8D8|4a&WU`V7ca&Lc{fQ zcckBB;}J662{6_8_K7;S;VUoJ{k;W?0#2qoC72Y+Yzl#_KSrH{7BVF3`S`c2^gm&6 z+eF8F4LN8mfRG5!WeCM~k}Sr21*AaZ#-~#PIOf?+*)Jp+%cc;U2P|$$GdQGV+cy+bJ>f7QG2&2Cgv<%AwRA&%^QIwyx>i^_4AL+y zS=o>-EhJR#)=-?*$kST>yB^+y`}c>PCbl+F5$ziSbY!SZ3WKw5%1KHtNTbx=HL1pj zksl3hD>*m1N87oit0vl(H;K>w5L|%F;~B72XDxsT!YuQZ7n3I=&QC z$2d&h6A#MJWU-a9r6|;z7VStOK$sF?`Djms1y)B365;x3y@;8|b3I_aTIPV|hmiMF}nbfCF8W^@nY@!_~2 zHrwv=AzZy$T72cFoe|k~n4T_?0>V+0(8w*bd2XiA!;?)9ov>bSrZIKnuv}r8cY%04 z?$Is;p+H|ZHG`!$>{}WpmXXl#TE%FRIeyGi3rhH9lVH_amvM}dZqTxf=}JbnI1(`M ztWWE`SZ|lLl^fOhGz#7W{}2siLi-qa0#gn0F*B2dsjjl3 zg2KJ(^2~~$Y-T;*J)d-BVNw0TgG`DmrRX^QRI7WG>{h^!KdgR9y3M8;m!-J#Bl4I_ zZ5HPMEKXK1TJ@Y}xYs0_3auJS%`y2%w~@QfFw<^hIrn_d5h8qXp==?g!_mQa$;v(M z=Le2v4R_@$($qj3n1I7x_rCVnmVP1|+sAlW-ri)+O@oTcS=G*~mOh55N;sh}jsqX&lI{zt*Te^EA)W$FDHTaI}=qyAY~sxR9=15b;*8o=7rR3yucsMuNU!ZpK_bKNmW;jej{X zW67lZY;?$J-+i}*fCfKmI1{xW3GEN{ki%z*Xj1xXx-Xz&@?>hytF__HAvY<~)s&SO zBtn6G_{TBY4pLq=V=%%6LU9md_rlcQPq~$5NXG7D_lSR4<`&sO(wAO`9~dab zy9lAj7Du?{d@#2jCFjNa{W9HHXI1S+3>s@bcx~7h(^HI2ATe1VNKE#uKH*m&sIaF> zXRr{!OiYHwD4bS^Z(yv+@#e=i=Hnuu^&4R-cYR{QHdpPf3P_q=r5*Cp1iT zN>SV;QwWu*PHYtD&$M|%{T*%4vrgLnr?R%`o)!n`koibK;4gVCJYSd~x zbC-6eE%aT8YHAiSbpTX{A@XL|_^x~EEToox3QCo)9e8E`mI- znbu-xoZ#3|Z;XTp%s07`Z)PR72%>O!e@I3!FEUnMn@d;D0zl0*&?j__W_tNwF8rXz zDA>6EpvJ!}BuQGifx~QtVOLnAI~Vl7E$%hUlU79k?ib(*t(RS?F1QJG=GisML1u>| z|7+w%vJg3(tVvQFC1gXtbR|hq#(o29o5RNf>%TsF4PWsxJ;k69s6S~iz~zBf*VfHX zJ1sQLUTNQG%IIqRLkgaViTG1Qnf5~HM5AA9)Ux}_zB|2nkIPFsxgfXm-2Q_(ko=zc zA4H_8;{Ph+K~>x#Qhs5TYqSxStM4RT3D?hH=>oW)7X5wJ{ zFWcX)uHHOf_-I|o$@r#H4{H**;dH)lR|RlD-8%_f9@KeOqQ?G*xscMKOrD`i@YAGcZtbolZUjhgb)o zNer#z*0fVSkk>(G-jMYbqk>{zg8rvJDVCQ5#H#a3z32bY#-5+x?*q0IVBY&43j7;J z60*%(<)R~ehA8Bq3(O_r+1XBzW~iZum98?yIMhT`pEc~A2XdzQePt0@B$;8&EG*vV zugSFyNiROror*qsiX|R1@^2&;jb0J1)leM^#9FuCOB>d!fB;cSl?`tlkUma_zdjr1WP>D+7?BL9PUrCoM9am)0q-+H*O zKKlU)snkT7lpcTDGG&r(SmLKR$j@hLVN7ljPtb=5>2o#h|7v$3|BW%tv^(8jIdIgl z^+`u7sU4Z%Z7B3aK=_R7ZM7NZm*tJ@&@g(R2s7H5*)P?_(j#`R(m?v<=%qTdUXG(Cc<`-+X(R!0}-<;L?% zoQR(r5R#(+jZHmu%|4-X-Ha26rI~v`CV|E95(67*bl1gT$D%}QdZ#r6l1-Q>^(jnRTrqXND>0zA;Wl+`8_*bK-iP4U)b<UziQMtdRXP z>3|SOH!h-&GbMv-(JA4_e_WtT&COp6vu}?6&d;+$xoW4+ef;a6)^C)g)^piq>-d`X{X(F!t zJ8z!Tv@QKWXtsk_`TQ@LvvEIe5Iqt4O5_d!L}vbXoDKS)f~8Sq{eQz zfTZM)9SnAz2mHL7bCr7x_z|#Xbrq~V5cxE)Q)2&d`q+ikGTni2eHS^CAkmLtUYQ!? zY00g5`ZWz4gd-Zav-WyMOkaC_U2Pm(Ah=^}4&F`fBJa8i0_js{g`m~L`9?atVFVX6 zIwEBI%Ry4?P9+tMvv+O4xV84W<@-F%X=IFP-8nnl!c4Djy1i_6j|FQWQwc@tc-WP` zdlc>0za^}n)(%-|$#S#V*4DAf9M1u%Z~B>tyQS7AXtptxiZx-lIvuCJpC5z|{g(<5 z_q>Ho-R8CW!4r(Yja#`{6eneQ`2Z$B_dWGiZ(yX%k7_wb@n|zm7TbuJDo0$ngd#6? zhPG=P1bX8fe!;ufx98Wj;a~QE7*;K`Q3`ldA?E&g1DdXE27ll9Flr&HfJeoOP!$;) zb*HH&+=`hCOZE+BG14MHM`Ip#4WkL4`pm8W^|y&MiSKj*p%0SJ(n_w30O8K(R)FYz zF!4hb9o5Fa*FCLbR>?WSs&O<9$r#m$eMuqggj^5r`w&k| z@FYNXxh*l)62l)5S5(%xWnhnSC>o+t4*pwh#J`K0=700)-*xol9TfyhFT&|Ob}wgW z5t(2=(#va|Rt2QqJJcH05Vspmvj>x93iHlWd?!F~dUFgq+5I76;9_!XSH~ZNvP=1^ zd8#*?A0Nx+VT#~-Y-?*2K%jFbEk3FsjSM_N>c|r!xpe)>9JMW8WeMBMIxIwB3w~9zG8eeJX3e?O}KP&KPNULmaVF zbbpaFU=jrxI6zfpAg9OU(B2Um@80;~`&OzgM2o_CyZ_1wFQ#aFk>J{&X4*3zs3_q@ z;?pPSYEuVwSHDjE+m66&AW7tEvV$;LkyEU+2@5i~S%0@)V;jiKb3dT&&y@Wp2Iu4i z_dx%TXOXnUgG!xtXu%z2B4bwcATBif=MovsUB9eQrY*U$Mq527X{fk(QI-AYS9m8?4Nni`E?{z0_n6a2!&dD|jgmwmBHa4dP`~)F5@Tiiou?fzzba>hHt$kl->o zFWqq!5!qesVs^J^m8pm{hJh-Fi39UY3^~&&bSk5D7zwwkp9tNrjjvZf4mCJ+Q@MQ@ zsGInfy==vi(O1;5m5f=mz%&gg{xaf&JC>9udCXK|%>RVN z2?`L}k2&>9W+m=Nc8B;tDEu~(*} zqwYqA{RE9lc-;DpJ&dU7foUsa&yCivWIh^N&USN~1C>4_oim4L)$I0aYVK(gCI9!e zy*6yx=H}_D)fbh+k$X!}`e{~X>1oo}*F==O6u~fMwN_?~sA0KfXBXe16+{ylaH*7S z5`W%R$SqSmNM?LAhoQACXtH(1%1GklFy-6_QEs+lo97G6OU2r9oeA~xO5Z-f?=pts z!jh#K$uy#F7kW)eTsgvMJhUe%lFS9k^6O2m4v#j9)7S_-`znj`^jx*GnmFHF2ok9P zjZQU`XF)|=zpwDvUP(zaKB3QDzdAHV#cGcxKixx>=6!2qH~DbHCw)D_VbDPws;XC0 zsV~346~aq7;TKwzY^MOh4tuuD&TAs9fle=evBF`_6Top4`Uge$V1M;vvkAEQU?GXl zC^lbho^RL>m=TREWw6!~DJG}r+vtB+)WIES3U!=my>cqDNU&;sCN^eElT8NHo=fk^ z#Z-tLScAST$|mr^BY?Z$;xJXb8YdWN6{rG(gNkNM$C>sY$C;dx2JB5!Y$CT8Qul#y z8z*jgz(mNt%Ykp)K|SAZCz6~Nm)XA;IF4lKK&N{N)MadAHS_QU$l+YK%OP!dKC{uS zHO*U?q&_(wu=K4z!+coqFZ<;|(bozOGPNHf?IAtg*Glj+}0%><1n&W5pLk5`>+GayIX;z}j-ptAiSwi6- z>XKaLl@%6Yk*B+cF6DcdQ6J|Up7rIRxmLgARB^|!H;z(VfVx`y7u@5Kee$>{C;^1_MN4Eabim@kZm$KHVMneAEKswd{BqUIl9ohJlILQ z_g5gwZO&wEU4=`FKBAk$7_Nkt_!+-k0RXCcT(yFDab*t z3R+J=8kPUkoBjU(AezbF1!#E#s~|+vMJ6jvO&22m=;7_{{C-Cv4F{Evp=ed2Xdi~1 zMK*sr{~Jfl{~|RhkVPZO0hnNBQO^ais_*01+Bo@X6rd(!sqtY~U%3EAdZfb_T+6DWB*BPif;p~sT(>KT2$S_bZ!?38Jy=at>LdpNcZbUBsjF^9I2 zI!Nn9xg~zS`@S`ggb*7wW^q(?*BbYjIX^2W3EFERb6pKMp*^hf0NgJ#zB%}wHZw&X zKN{IechHbh)jzzjg+5B^A~@)gJiLcL9bObu|n0emKvrmfS zoC!-1UWp4XmAOvvHm!|@?Mxkh`RsDoaQPqaJnhLcvq|;vI1lbI59o1har9liW&bPI zHD^3i)48xwHEvGT?5wxXcZ~um$KuB2{-Pj7CIb9?kV7Tu{oRQg1v8g6Y zu3X_u7`XE8G(byp)?#)5*_U9%>zF?r0YSMGGxR6PzF)f60Z$IMPf@^ZY?$FPPy{<26(A#{r1jLR|i+I@)g4nZ9X z1J8Dh=E{ITH(}=0n|9-4fTGwCji2d>`L4wH{W<$l`&%(axwAVm!bf!22PJ~`*3W-1 zK}xcg|FJBfV}a1$u*!$BNHso;Fj#kGI7^nZxfVEH^ooYh=PL=NO0~8S-4wU`t@Knc z0?c-B5Xq8T3#>5hVI4NC30SCeGAW77sb|V_LTs^rvKr-uA{b;gdCbN);IOHFC zvSDAs2pV#%^__Ij;T_g*f7&jaJaUotb+8Xv48g&y#s#s9hH3Qs_26>{2`Ye%9}Wz9 z$|`i6XzXkiswpYw@Qe+Z628!hmf9i|oDR935FH{b2bxKQh~x)Q<2s>;hzmG5da_Pm zfhN#G#G(+43s#Q?L;m)*8MFAb{<0|NagnKtX=754c$H&qSM*~}6zD4nG_`^tnk7qp zo_({_bsAs1M&m=2alonr%KP()&6V=h@CL!&?^+*X^Dn7}RM-b*haV=Q&@Nb&ni8dl zHz%i+je}b4Q)fwVtN-o{*CSN%&NQ`E?60ngs*E(XAx=*ldD3L9UXq48!{V*Q?twq| zU--GUcS+0*-2%>pd=;Z|y_}J%y*BHhKjV$om1>7IgboR^iOj`B1A#wAqbz)g435)(9euAZo|vV zN`79sOF;kwG5|CND{Q^?4}CReMzj_oc&#j!zhU=25^32o7<5O!fh7q>j60l5Pusp> z6#!nM@WO)|T8a4lGv*E^J>mg&stJW$N%5e;N0*7D#m z2>ARE16i;%mESp6Kg@2#;NzO5V0(z}*L;bFqGd&KUG-T8kvscz`+Eg`LA6C#aSC67 zVkdf73pFlfINQSL(~BMh>c#iDh?1zSdN%=x{yN-Q zS!nunu<@!XsszIm;k;4V6Vl->)2Jg4c@KbZ*!H4_gksG&LhT}TG3Yojy9BZ2Uk`sV zYsGglt2Y==jg)wOROwdYc0-o9qh3+MMl4NcF{Jvb<}t*-Rd(_+;iBF4b5Yd z58~&dohNk(n-Xk$eVn4F;X$)z=-Ml6)^Fo7 znwi577O*Cynbi!yk<<8d$#cY*O%T>|aDBTDEJL`*9VI~YG+&Mi@GV#N4+aWFtF&^o zgrQQ&8Nh5{{p=qn93$e+-|-w(H`ja;WVv!>zP{;RB{$#{DUv%9|E};7-o0lH+FnhcR*+1W`)X+iTlu5>J3)IAy*T zz^5NzLqp2ThK)`I%N8M+-S|>Enfj)!zEoF5dcjf0n-?`~S@4uz#y z@5E2mYDoyHImZ`POf-F@i&0ptpv{+xQIhaI!e3aXv}q0_Zbi%=if=96y}4CM{PHEU z2YxgB)@m}?lI(OE{s9PQS`RkuKj&M%r15I7#&uO6K;Z-tiI(%xegO~V>_ zR=!`y6MWaag>^5p$Tm43O#bo5aL`sW&w~z$>N>bw~f=?uOa*$i3b>vVe7wvF?js~_=B34Tlt`6X-WM+<=H>t|?A8NXurH)~L<+*+@{xn^NB+X>=7uA| zkrORWsx&9HKWd7HXOB>@JFXg|FB1p_R~oW%_-`3#cy78#wAUG`c~#0RZseNWmJh)ltQXB0S@+JUd%)~wl|>S$k{ zPKE7@2z3#7-J9EIcqn|#*5f8NdFX!ORCNgWhG3nT*a9;aYb0@X+Rl7;-%(z#wv`|d zY^7~|=I88wxOviEK^LGUc?X4S<4&N{?Q<<*7!@-^Cut@l!Qg? z)oB@M<&YKJky&~DX(8^VFqMTaJ43+sT%n@wuiy|ShpFN;tmKE1LCTa=agET?SGPMu z=}MMc)m^r>y~N~cECFQY))T~BtTY9;BxYiYozmQXljW)rZN4>y{3AH>N3D75{yjHD zC?>ok(y-ASEwU#3xp#VTyT5B8+V*>15TTRb?%L38$+}EzsB03kGw{l}dB1^4o0Eo< zdh@(r+HTubH6sG8Myk`1$G1T&+r|Q{`HQlyLB5E@MPBm4W>xul|M>A{KJ7m49n48t z7bM;Wcx{8EeiQ*vGLWjn69hQwk z<@P}?BrKF{Jw!pPV3O5*3taPGtr%}i+6_mn6tVMW$a^T1tUpETY6DW>rJ*Kkx0!<~ zGoV_z3u&j83g~*=pa3OeKuOmZIdAsloYyn7h%oy)zL~YDh|G7e z4CT-yVW}y#!^?`u!nGTzq0!=x62clfY}&m7M2a`e;;!+|flgz0u7z5K{mg8~#iOCg zq)q`s8GNt7ZXPBm*G?1QlCrInwWRy->Nzle-GoN^#3#0 zCWNfz=}FHksdkcptTu%{(KrZ@3y>Z z*bQtm>A(46e))E@@2`c5rQxK!c%^FqmiWCKE&lYk5db{Oq z6vtBE-_0QTn1Fe1kEfG9EPL2OKLgI>MpH6Z>hUyuO{-lUYu;*-Zf$b@?_t8u%<+1G z=}QN5L?MGTLGyq8xz*V>f9f(b{LBBz%twDsapY(G@T&^xZlcO7FZ62|2#;c&QU5mtZQ1<&vrpQeW?rH3>$tUd%wAfIw@V8L25#9(83dEW6g=m-H>$oi}#wmHRC)oSf;3u33NFJl*(R&ByqK4 z$>mFiR*KRq!A0YKP$5d)zblyDxfwPm?Xf?R9uye;waca?+OAZ=?n6fN5*Ix8Wb;2) zH}u@O(#375R8d>WQ-YimC#mD+aXD?%OBREtq&}312JDQDW6)L9IM5~z{zRn)^B8GI zBcGJyY6`>qZM8N9rq=eGu=1?#-N;~X2h0;uIuNqpt^aScl*}^qBsDf3xIJPG|28aks|S(kgOV2&Rc5QPbj_maGY_Q09W_L(cg#iZ=qMB6Kl_T z7>+FV4cNxm3EI7$a*-(CgyI+qW=|Psi2I7`@d$44@yTz+)`EulZ+Ka;;vBOI`6$cpP!)Nv4y=b1F!B|N}upQ{xkLccj5le z#QTScnvLd`Ca>gHO7aG}V6_Rt+RBBqy&gL6-NhxDo>28@hT{IV<67?MRx=3=e!{Y- zrW&ZqUDyy`GW;B%2(VwuNurZTNpu)W5O2%~15f^AF|rhSrDiqP*AT28bioR>fp#a{ zZ%^|Y)icBdG`JfC*eNdybiH;Z!WR{dD)?!L&<8FEg0o2Yo17dMjGobe?7WeQ@MK>h zkXw+=woKgS28I#Zce*9b*65=E%eFCOIO3|-6VwzXE12OE<~rO7#N6QIypj^Mj77V# z;M?%z3Z!XW(gO3XwQCoh$j;^T92W-G;6aOTA&Kq?Drz9bXx@H>&w@4I49dFWsn!T7BTjq;dgC~4h#D$52P1El*#;!-P=ihwF_j5$7DcrkJkg} zi1h!qLH|!Q$Wa6utMd%LG@MANrAVq5Ik}<#Q7(hSL?J4r`U2kj{~kM6ITWN6b7Q@X z@*$5sf0IRK!{n3AYDilsNTyh)W8=h`ac?F%a381XZp?N5B}MDah)o<3`m9+f6j;u9 zr`TCy8aJquKxg0njY(_Q-j^3QHK%1hXi*GTXDIpGN|73jKUt(o&?FG_y__akRTzLn z!b`45;0P7|72@@fR|F*(;;?DxyTU@{=r+IW6y`Cz{=FlpvothZO?;;s&l!f7^D({} z3|dk{U<~B@u}S_)&#vM2mwam1Sfc`ZhJyugRGBy2{GW&1kseVU&!zLh&)8vpUi@wY z^V6`{8}JI@8tN=J7-?e3MyDh%t&Tr^{hXq2GXOpwow4;EQs}L8_oO)&}4HN|O z|Ayjpd+@k9dkrC`w7pqtG-*TgOG@V&Pk|_4U--OoXB=RjBO(0PovEBz+nny@LJGAa zA|m7Bm>Kuw6zRGVRdJ%bSrtS622G2sY)KP)U4RDH9ezdvB&knZa~cKKI=aLFl_uN^ z4*c#$CRUXgqQjGuARruqKrFc}T#M6Bg8obNG*pjkmNdrQZS>S%q^q^xJPLwt-SDf* z7v(USV#Zi=TOv{j zR!xT58b)48ujII9A0{jwbD$sXF_7<|7yI^ww5^{L-N}{oQ{~e8mB2}I2Fo*O3x}wE zLk%MyDg~an6Qw1fW%DKjtE);y5jW{r?EIRE2OyK$@FULwT#%ZR4b7QBZA6A+uB^q1+!T(vjkTiUkKMB!7>E0hQ0|TrjJHaSw&i1xZKSE} z6CPMI=u(2qpa*54q5DF$ctxw&7c}tv*3y^-e17z{O90g2C!E_tn^`8)pa0$6uJLad z*9uyTLu4Wv#@4BqG7iOD3LA(*@@-h`8kj)dQDdGwBfwRMf!-(C3Ep+O#gl-YqI%&t zr6O983<(a2eq+k^sLV*aM68fT*|S&iOqB zfp|^Utr&v!&H(#dvt6`+B}!9vrE+qCvrgo_;(nlhTi%sh)lGcoglF%} zMuX8=RgRH66vk(hR69=gr~qie`fu?6Um}K6xo;?~F;ifRTs*W+Q>nvzjq2GPmGcZm z!?j#o(FNhbjMVM@b!VHm>zpN0A%Gocm6RiKC&NW+?xadU1}z8|h!YfeswF=g!xj!y z9vh6{yf{mmqP>~}MPlg29^f4$6@tK0d)zhT2DS-yME6WX&~hcmJ-KI2X-x?^7^eaM zw>qI1OYMb3U)p7%DH60kTozaJgmD`v^qjEBF?-wmocTz0oQ(_(Xp)BGxzCF4k-fSA zed2a|jHJx>Ryx`$oFH~Q8{=!>r+j(f58fmdssjHU+PdU7yOy4Y1`cR z6!A_&j{9!>@@*WuYUDpB8shlsg9xVvzMk|5uZ%MST4Svu{oT&YPwVzyj(sLLo8|lt zm!&Hi3`_OH`7Wf_z@A4@65|9wngZ0pXU{O)7;r^|Gc76U!8y3xIV1%~E|}T`t|YIj zFq$q8>onBQgj|9PD(`2H>k1F|+1B6)QNQ4}q)0%<9SFYiKLjfl)R2`cqE0yQix`j6 z6|0Jmb0=S1XLdU6hc5NuV)B(r(Ic=3>dVm7qXIy}0&k=^$f4}tL>lGv9m=6fL5xop zJxFhD8zO>ifbkKPxV@ib0T80?PQ*}-GRha1mj8AGAt@5?kmYKi0@;uT9wb$MI(Msa zKp96uk5j0H2Y-om^yD(PK%5YHT&*!{x=yl;)+uQSzBM!OTH5X>zzP%Uvu!$7-)$}u z6l0QVRJh-~?HD?7B|m+>$k^u*>cOucN&Je&BYQiUj?ms~)edn>35Gj++Nnie8e$rl zqS6?UFzK+!G3v9$%PPvOq8Vm6K8b&mk*^<()7Q4C}#=D z3$-$u0_;jqxQKJne`B?SC#MEaY4lUi{^PyO0xEHbe%>ge09TG2KcVMk-z14F&Iuf2 zA6%_bi#bx*Ht9{uYH1<%5*N?eYBr3x?@f;+k*Ete0>2xb_)cap%{FduJLvcu(oPQ& zGakUoY+(gfS9(lUZ;gvgdL{TfGcV>#7;|LJPS{{aXolk{ZfTF$-~B>Z^U-F9Ad&yT zEDkK)d=hyk`#ULbPbIP6jhbqtaSf*2;z*b4L~-l}ST3C#p%0#;aa#NDKMVpP9Vvn- z1H0~1K8dikV7t0^7W3B#ty8jax-gIn*~WW_(SNfVX<;x4Mh3m2j(-<;d-;1 zU!~qFV)qs{w+B~R3{D8juL7}8{=)}9oZ{ByK;oj{>t||;Koi4!v<^oxW`a;N;y(Ns z*;CA>?`^W{?5O?i>-|abbKxAP@An_`ryE=M86x60XmE2eQVJDHjk}`GYm;2CSX$pl zzf&-cynKTL4v1l? z_^Vt6k?Ki3xT6B}e^a}U{DDo~e~P>O{H zOvv;M8SXi&(?SyNf%Fp*Y})UIL1qBuH{M(rn*e<$6zN{|?NsipyX;l6 zW*DNH$Zxg94H$hNEL8IOBa=^`7=d2{~V9p(Pf|VhsXSAnZ`EY?Gg@ z9@^nR##t*SN08FhJB)%Lv>pJiim*${^gi+D*haadJI&R1O0;M=Dbg)Sv|M~qOIP7| zjM0ok?ww?z)Zav|pv;F(iu~^zUQCBZH)9C~_E9kyZX_n~V((EKJ-_$D#%ZRYLRhs0 z_(hw&T%txeq2e}Rlq*7-Sk!Ub)U~Da-(ZWBtPdAZp98;7Aei%4wN(DPQ3KkD68pu= znOC-yoTuHj$5A&uvP3h+Ep&Vt3rGL$s+Mu_+LhCjU0}|IdGe1gCMtY<%f{uWQV#RV z_Q&B>(7|4?%O>-mFyL;OO*`sY6E@AcDS?M>>FzG+?v_SU^8IqoFV4O9{SW3dduHv~v)8N%bwtAaAW%BrTiGl(N8FE8 zbQ^*Bu#rbhpSI6X09BXGDL^L6+JsXyp)T9aP)iwR0$)ri6d}06b>;F>+4uE{o6oxP zFjXK=38QYG*H-(si#6)MHH=XwS|f^A`4N|$3U(V6#FQQ;9;34zMl5}xJ`OwR@k>fx znRcjtBCg8TsN+q((szSh;e?XOX{IV(5U;l*_8jS6X>L_x;f6BCiq$vZdGk z^Hys{!{!u1a&9O{Bu~u0vOo93%DZe_no=ln?Tf-UI$B?0Rvsn4w|7;7vJ05SLNvwL z(t@`ILyQQJzLttR+366%B*5z%pkJ74J$;uI1??-+3K>JJ6EL#Zf}qF}>EBoqdG7QF zC26m_4^nRS=M4C`#kPqUzC>DOWUk&Gk91{BPJR*Wgx0avsh5Xnx3tst*X~)KkLDii zsjp*zG_Fw@n6Ma91etv+H?tUt`#N`iCm5zb-AJSV?flfspRcQOJb+&8XgW8GXb-yV z;Zq-Y{?p8J^j!|K3Flh>P3G99$vz;lN^9R1GGNte+Z=2apZOjwSjlS>j=gFor_zs2 zK&?m9ZF0RzsJGYC=CL-SLK#+)C#x5utG#@&F|CtZbwrg%hKI_a_Q`Iw>Uw=}WF61{Q6q=3}zC3~%?QOT(JE*D_5r?bKg7Ld8<7;AEnNt}s znte7Gz!=D zwsILH%d<@yNP)**vTZNc8CB6p#cSyB(Z&!G(08fLU?#yNGinX+k5Dn5c7Be>-C9JT zg*n@F+|Vs@dx(6ExAz@t;U|^2l4eqyFQ4dRSBzpnPNox)y7XCmjc+oQLk0W?E)>5d z(oO@e&#~s10|a};v~nK=njH;uy>CmWR6}MbM_%-;4uoQCV%-v3fD1!a1Oeh1e@hWy;(3CoesQ~`nENI~Xd&K0kkjyNyGEChPR3SQZCFyP zd&j&o{IBP~%nBwWHgrv0T8{bDS1W_5ExW?n9_Ei?85Eq}GBXdivbwNK`0><11K@Rd z{ntkNhoT-G?eL}&YSSKnMm<{w2zKuHlcXv!*vdMWfO0lu_&LHZ9zGe|?Fuv3oe0sW z<^Cd!-~z9CP6q3!FX5Ao1=w@wJ#spl{TNPAPgY-!sLmUby0OTAO5k#!%ys?Q3%tSG z8-d`myTD0z?Q2k?jih`&$iOq?I@R3`5OZOl0*!_-KPo9atrtLfSZ-hKrA5wS?nP+H zC1+-RthDlN{)V9I8@hAYp}n>K{q{1}r6lYC4d4L$SK)*x{Z-+_>Q&)nVoCvXR6DC5 zQVPQ>IGE?fP^NzH%Ud4Hit#prUw<^_Fd06fFdW)|`8Y!sWv0Lbwy9K*T6xqQfmY0g zMO?*yObsR-mICt}~O$=3y@lTMn~>CyhkDBb-)g zSih63jdYKmhEvZxBq3j!TTue#qjpy-Iw-Jj;VE{r;*!5V+Ngdon^?7qi+lc-l@>(# zbgqv#&I9^<8Rg^5Jr+M&$oy3P2minqR>=UUhAB*v{B?k8nBw>2?c2+dHh^kM>x&@w zM2vl5mlxNh^bFzi*90xP_`?I}L|#@893EbtSA|TpZ>9iwQGI+W61cP8_O)$#e0z-O z=L}Zufz*I@`0tI`Ls7ayA02$G6~d4VsiH3>#7NGczw6rCb2@!?%|!tHZcwzxXk=^Y zgB%Ct;0$K|!IRFpBZ5P##A`)W^GCgoBf+L7BKv?y{Mbn(8AW820%x1NpwL>%^NG9k z52Q~tI}%W!OWr<$mTjf9O5s7JE{;sWsabY8Gy|(J3{x-mxh?DWBry(td2!iN9|Zbk z6KN|oKL$H5%tf(x38@Tv2D|0W{UCFnUodgk32&*v8dHt$;A@cBz}~in!0nqr!Zuxl z{Y|&JKh#4BQ>li`mc8~npd^$yQOwx?yLNw31eC4pdU81Ps=_6XW=$Fz;3d>R;lI7) zKc&g_wqKK;NoLTg%)iT|rX|G)`QPB-Vb3u)AX|)Ar(Zu&sxYb@VYiV{)}+-Z zC)O2yRyfH_q@wb3*tHpX#ZOHxQIY4lNoL4~n}|u2M!I`NvZOr|vQSZhC{&Uz0b&a@ zp+h0VL8Jw-=AADKo!F8n$K-NI3h`X&?->0Ctu-%Ud}2jjB~L=mo^dEr>IdPYS zWsI3>&0HFU9f|9>M{G@oVqYasXsddRe6)PLl)Pe;PLH!CW@Td3K2_rIdOJyv^fBRf z53*9x;&h)LyG>!;dzt8!jja8-m%x;wn;3Jtq6zE{6$|qh0$U+W$$KM(r~Ndx6QaVk zBYT)B7!!7G-9^WP6W0+#cBo9xrLQObsevG;y<^2`1GkQR@Jai|@0V+x!3m{z3fjBH zA2snWLF*$LIExRH3*cklAqZD?8Ad)>u(lo)?T$|wAX*G3J^KwSl9bwWX9GoE6-(j1 z9-lCE2g(^o>jLWa41m{$_^o#c?^0Y+ARann3A9N*U0y-Cy6T8q9>t6wt(CidoBPlA zS;e%LlQGdh(098^XVG#pZp_T&9UZWpNpen$-IxZ)?5uw@jrWfAMbOXSid2Q~#k(DFCtKFp^i$!bM}58OIo` zYw8kvud z2or_a>@%$dHXM4Pp&Y(@OHE&9#Bhb;-DMR?u+Z}(5kw!ZK#d*8b_Wzs?d*@84(n z8f5=E%XY8d=5BC@2)ZsoW}^~|0(MstbPozD1X#ydA!TAkUL{OO&OZ2hWk0c;e6TMJ z8dV{|j}q}>(28JUc7lW5^&n_J1B`5THn)kp|pd&t55;c~& z#9YW4pgsF`EspL%0UrAwmzgw-*2#u89s9dw;kM8f7)IbSE5VlP_;bwO)5ot7{6HOa)S{0h%19?&d2A;*B{Tc zK_{JTYz%lTEoOcVzfpo?3pViWZak#-B#66O>Tl7apvkxwFChsqg z{S#2pp%`6^%G5(SHoLFo~~`qHt7zQG&&i#*Fz>!M*5Lol&@d=Hx3_^#Au98*T0XK1Zt8oV+ym z+lkH*nP2w*23Td|!#Ql6jtf|o16XA?kPleZjEbU}5+~-0dBMEO_iEJ;IplsohDN7K z96>-GFDVo~5ow$IdF0Lv8Z`5vP}`96Lf2!ou6E};2yWQGF{YCF94`!85Gl{MA@6@j ze#n0#U&YLk3Mj*K5b9G}c)IYOTO@jp_16E2d|1e@<};D`;%+o<7q0=P!MJ;k6;dl= z32V)T{YwDssUz8cgniQarKyr~BJpHq&RvT3f4n9BKcXHPfL0O$>%zHLG$~(Z%x1?o=aEI#XiNMHMTZ*wV`hBUgfm(x7mMo)ApDUDkLW@r{G;{@_oR z(8*J+D0#}Q*K1uuu!X+x6S;=dNlalVqw}Ij9~@DEn6FCHI+ReSeJHu(Nci^uIm7=C zuCo1&tAC%NUY9(8tB2?2Gd(=4k>n4e0Im*4%K^A*5C&U%IjEYc?jy(hZ(RLaSmbXa zY>hp)QwGX0GyjCgdvD1?+xicOq+VN~Fnp#=A(K)Yy2eh=w? zr($?e>04K(#8ks+VTG8Lzv{~Wq~fcyez|r=Qu9&P2_kqlj3ec@`jRE^z?(_sqekZN zqo8OG#EH5Zxy^m24~ToA80tcvAFp$Es>kY7nczi60vjSu(XD;4$c|bIClu69)MFTS zUg*?6VD|3vgrJ5+E7j3tmAY1{2KLtH(Okp+^Bn)aiT)}uJpssPNnidKuY3$Et5QSCyc<}$B|g1yY@!hxt!z-oyc;Hr(ge*eC-JTP87 zDh-pT8Iy(=PC~GSR0%A-6|J2^rfoY5$(>+mrXW*#+ct&T;Em!08a-d);?5Z*fU4!C zl7o$r`hd}xmPbF@p%PY8h5mU~TACI@tGE*zY6fa@}zTOd5Zc< zxph@4^RqpyX<}_t77eW8p55IOP@bx`^xvAVwcqY-KdU4mB4ToLpww;3rj8zC z|GIMHilB%+P|C?izogCLRhrXz0PhTACnsyi1|;`n*`Q zzhK%5pIn^P3s&5GrRz;px}-gdl?MZ8Se-C}o2YtoK4M*oF$7LDIbv<63g@O-3%5v3 zyG(K-s&}9>F{#~`PlRZbc3*g1kzj9U`r#n=JNGx<^oOU>N69eCMkI68Df#~DV2R_w ztyw>pvr}nZ0zWS2r*zsIAB$CpUZLgp_kcLoUr+Vc2jGYDJg7cr{#A>#f_!2v-e~SO z56?pN1h_Zx@eB20ze3uvNPpVosAb*H%3N$^^imboyxOwVaTi+Y{Fn<0cs`yyXpTSy zdLBBQq19$)%LaZ#D<`l$xuy!eHn*rd{)7q^>v3ftp!8}xmH?f+PWP1cQM$NfH+EEr zMcz;g*?eXMMd}e3)5D<&#U@qLpJ=d2oZa#0g-uy3cID9TK#=MuIL?`R z!luc**P%|k2<@I)fee1R2Q$9U;)5JKG?A@!?(HqPncZ%rV(VC1oCcbQ&%2QqVI7TB z_k{T---#R%DdH;Eg5z(^-vL zm~Yu^7woS;ZL~TuKbxnNkJNPo#9sZ=F$v?+G(`pCPR9WYz$Gfw~+_U zOL~?nYD2*<$@!}XS}6<%{w6u4sOnMT;;6V4Wv1>uQ2*%wWMV?Vd$RDSJZbVBtm$Wy^Zu z?sejx93}2@tnQ|t-;m^f3*t&}Ei=mUs&-kN47nuOE&Q02%up7s`?N1BcIK%cR103A z_6q^XQU6*rWF)$*9;L;oYa)n;WioS+lV%=3AKNW@(<43ea(c{yEjxP}Vzz&h&g)=t zdz>rF7|uTYtus!Y;_Hm+EY9$TsoNVJ_4En9^GGTKPmXMO@x+1^>#Q% zxKV$cnLGKTj&OvfU~7ON)e)!|<@kcR;q`NbNlqq$uc0b#CM*@}%L04@BE)eAXJh+C z2ET?5`Wi!OQPUQ>=25XJwhU1WMoMKo3Ro*Mdl<5JA!^kSS4i_V&>+WVe(UGAgvA%= zTnr=vm(P#A@LCIR=IJ386uFC*$Bqj|b0#Ha>`s*P2s9w;T9M$BF{P;33=PsZa4Y68 zQdYStWFAU7zF|z33w%fHg95>{rtA1w6~zm=;!l}%lKJm*Z<~)XW<1dRZQ zInc1gz0|YLVhO?Wgm@BpRHygwhSjd0k!)wD)xt%y0B{9m5&l}yHO5nhw2l&pt$0+RJ#bYEA>j3idlSUt ziRkC0o+PMX!CB|iD= zOTN(QD043(0aRtbx(z~Y1C<<9Bp`}*hX;r|`zeR<-iaC*t6))W`!i?(RDb|ld9MTS z*p#)QBWUZA2KvoV=ry;g+r40Je@wR2rTAL1w(W=H*|2BH%t!jK#jr{^be zd6I1|c)F4ZBX}%rk_AjBkvsFr9n(uUQ+;5+$(JbzJ;L%DcnGB5-yq(}ihhRZ$MS~B zp68P>x)0#f9u&2BPk6RSqE(%o-qdAb^uZ`kgri=$z)d4!bDTyRZo#}&+d<^4ghn0o z9`!=BM>pe16!J3kFq*Dx8{-(KuiBQ*NL@pi`&UqmO-~`Rlln{PT10K?k!)^g&?TPz z!VzUIiqLEn=D3KsVB&BRPou5D^Go3k3EUP@X6R;?*kSPky$tl|?^Z4$VH_9DpYGEW z-_6bN?bGp^x~1NOr+EUd>uX%TMGC?4;%bHnCT>0N(rhujKY?pjRJ5nrN*ma{xwR)s zF;eyu*^xbw|2`H4q6?+1te@_WP|xV*uWjna2oB|0sqZy^`TA(^fm_Zxi-g&?Ce%Ef zd{g~N^4~}3R!Hip8ccH6!*yqd3SReBx-@PO8U?%Q}3UqVPkw1HOpCE5Yz?(-&(B z8)-O~=yV0d3&Pp2tj;vTzQ+-dSD=2l(vBFrg;5itXd!4{yN%-e!L2f&UYQ{+<7VN4 zZs(Dp3Jx6LGMmF1+Qcij;)lBDB^{{6msKuiuMbTsFkY=*B@g_$`=+F?`IO(}@IEKV za&y2Zn^<>7*MV`jAH6HExG_zALmk-&lE_c@!C}jNEQ@)lOW?>M>b_k5xI>_3o~%kE zsT2$s(VR&1-UmEP8t5SNWF}_wJ*8-UjQMk7(uSJi`Z(9AK1K)mdk;UK|0B=8np$9h zu~cC2M#JipWnR4GpM}39IhI6?*+?;md_B(=FM1M~sMzwTRTkzYovb-(5{jl!zxWPj&X6$PQ4Eqb z$uXg7hR<`7Zy}qFOy92or36NaO2t%74o+!8{Aim4y$7e;Vj@C)3t2XiLf`;nyPdiL zc9jo*yB|UZVZiqCFs~*FX9kLV#By2TgY=iLJxda7?5$)8uM*t%3Eo%oUDspV2)RL| z-=Utcr^ex2WpmDIGh11Y!C(95E!XT$d94rKt3LQY^#7Vn5d}VFJdYE%$a}N64C`y3 zTP2@1H3gOLlW>nZGJbqlcGF&Oq+XTk0DiJwp-1BO4@gHHQM|Tjd8$_3hY3Tq)c%b` zG$*=T#E-`!VdfXZWtl{{4GD^|m8Q@ASpybvNQ1F&#kZt^s8_sF$p)Pb)R1lDiBrQ% zXzzWJ$rEidJm%EzAPuhd1Xq}qfmP2bsNc2!_zlH927yN4SPzb=uVH}5fRrEhh;_KUBkscLKM1nG>wn^t*}!(+L!M0VcUfRIFDDp z2oK;q)95D-r25FCM$CDNB^7u))r^u@yJviuNj9QZr8UT^ z7_`+j9FZ#wR7mDV0j$WNpF@t`j*T5Obi^cFxhgJ#X!jlAdTcG|w?d8x-TUpJi8WSP-;GMTP#bag5_h2*~xM=MrGJFAaP9DXlGWanI;LGDlm zshdDRH;9BgMes=>hEGbslB~GFH-`%2oM0egrk^fkd!6DauO&YhVCR4w7geTnb*Jjh zeo&ntnR%y<>&1SDt{OZNUlIIH$8c|GU>UZl#an<`d-AaRs9v)%nx{k`vy96i)PZCo?Z^N{8w?Y#F*mQxtDf6|Lnwjbme1KB(>zXivmi=gE&lHq=ss^+XPl_2weq$Mw3FZx1~4!j9-cI2}llz?FO&seL3 zn===Ab4g0GO6;vE$mpWt1aCghJX*n|>LFcD*$nHbmh6Wr0mmRw)f%6j-$mX&2##}x zG8&h44HExi5y5428{$t;$MH>_(I}hHD@k~$R-v~XQc1z`Ybp}W;*W}>QKu3=fwiE6 zXt3Fv@~HE+k0JM@1Mh%I!i4xt<6b}l$>awo0gkt+YfV}3X}ydKwV}Pop&_TtlxCHT zLfBwfFGE?nt52xHlkX3_xn=s9o-KmOFj1j)1Bt6GuyMB9yHh3QpH>o4Et?1LGOV2* z?spnJz@s-s9b?gwz9MoQ-@4_*a&2^SdE$GP3P~Q(A1MkGoFA5X1Tt?K%8nVDM{Co( z{nD3cQ4-9@9(i{A9^hUnQ$T0sOWPI2yFj5lKWyb0 zd^m8nWL!QI`Y?YoLM331&Y6ZjbT2EX=$glhueLc&b}lHQTEHQS&lIy5FWt9e?gU!g zJIRnq_^Ba)<SAe~e_rh25FALXOJ4Z7*Cm~1AXwW?8{x~?v;-MiV}x=8=rF>ZtTJf_x@zr;p? zCRy9ND1dD2i)r5fj{6!qksGmiy1-H!Z*L&Cu~(jxLT2ekkHq4qkQS$<@kJY`r|x9Q zi_yax>j2Zu{%C-oDeI+RA`p{)2J(_d#EoDVQ#I z7yDuSY49CBj#otu`rI;uD#9o4H}>CbIqwH&du+hDnxwTztF1l#hO<*{dE~Z@pp}`2 z`UVJj;i|Kxt)z?nd(bSQGYv?hyLap;V<6y{Mte^~@N&+*^e1TNF znO=dZhh^0_l`j$AX&r&o?(L_GKKdm^_ufzO*LzREvbR@-Y3#oB2YMC?^${MYn4{)* z=5QS7#_y5UW#u_hO05RJ=h*t*Qd{wtP7BuN-R`(6+Mhj9e*8R$z!FPFTnydEpeCSb zI(61B(m4?-9nBUnl%^CLD?U14rnvVj8A)yaw`w1Hez1$22CQi*{K!f4*A0O;HC`C4 ziIB&h!`as|I%|-5^8Wdn(79P^oAEL*mEa3DxpgTu>1@*PZ$rT|-W}Y@IJ|*fxR{+T zDv#P?`?7g?)TKZ4S&=|F3MEC)8DGSpefJo*nN}9 z!iRWrB*5e9{j$uUE(s99PSv?DDQt5NK`-K^6N$>glY+lv1GvS+{THz00;Gapsx5Ew~^$vZu=W~ns-aD}8 z2k@JWg!H&}>G%31^|gp!h?O>qzjCJPVOnt8N{ZOk9$k+Qu>wuJSIv#qea0JQdOK)! zefkiJ-Z~I;#uCF4pBxswD|2O(Zq73>qaFMHfW&r)GYh}+_Cn{cmZvpA^u`p8Gvlk%77N?l&GfLf8$^d0m&%aU6` zliaz+uxWy9r>CKE^4D>s$d*vw-jGVuXdf^QM66c6gg^>*3X-m%?RF zl+wiSZL0Z{Pe1(pZg>ftXuZOHAzTwwfILMX0P^(IctUr@wDNN%>Y@>wxZ|;zY{W0C z9xfD_X8P%~b{eY*>oGAsuaxzt7x$rU;T=ehJR1sjRb7q}wKlAx_y@%g@O+Een86hC z&g|r>IT=x3ku6yD$V)wnE5vmnw?VT6cT~SKeYW*N^=qibpems0Vbm13z*su)iC(v$ zv^{^lC_y!&Lufw;^-|mcwnuVI`G_`z&cRdO-{hx@R4OcUk=;?$x9JZo*nHuvE5n;} z(fbR$y=)8~vwiW_FwlufXx%2sb8jjI*JuCuE-RzU@X+2bCnub?$2^atn}>SWb!-im zR5+oyTVPXAFV=yoM8hjem}H|6vuYx(G##r$x7X9=EElSGW~fBdRM+zcbq@IrR-2FM z-v?BB!mXs*S!Hs%KFkdA4V`_bZBC|+`td#3P5?8NJ*l~0LQ@6~w)5ilxBlIE(Dx2w z;y}&sj5E{D#)^&jrJzw3i*rkl=?c8~h;6Ga?w9nrf z7GB=j&cVti5*q(dvQ65_xP`Uy{(wgv@m7zDlB(O*&b%9Qsjrs7>7t!;Zacby+%OK_ z5a)%i+p5oBK+*scTJVoT=R7bT_M6#O@GBB#v8)(RWTR7`q|AXa^P+x)fa$rW73qQu z4Z8A-WOiG^4f`p9rd$@DabG=82~1AK_;n;h8P1mjgc}8VBFZi~9flk69|5PeO|F=C zBUbp~vHR61i!pPP|0dYY*dfer*8vMfvHCImTofZ&2^z`~JIR~ytU?|)LFa1I=M7H~ zf?Q7gpT8cLg?bXqOqrG9&e^1W_chPeOeJr-XH5>h-Cq^VD?cRv1ND!tz0rTV_LW_) zU3*hcLP8=P%lvrd-)BjtguInP(%JZ9k(v*W3^oWjzmw@BWlBSjL`kVsZ&F8r^=!oP zrbOhGX5-j7x~wgT^Q2#jnd}eVe!__$(~6pa*)Rkb!4tiGgf+5BE~vUQ9{&CZCL&Ey znE$eo%WT;Z{znR7#T~J#$5}9nO(TsFWZvfpEcCe-9C4qH=$#J7Pne4NOQssG+)s76d z=ZpP)@t0iN;{>Sau32flnePQIA8TE{TQ6U8^?n=0u?BWjP!ztklN4%Ln|iG7*{WMP z4?oG*-dX#2ClW5%WpWM|5(E7G3nPczKHx0=MPv&sWj@fR+vlDO@Z-V0KtUl>5uYEIgd$r}Pyg?l+u_)3s(%Yz96oX&1L#ICiU2|UL}E9$X6b|b=xWD@fj4|qKBu~|!)hW?W5%n(E| z*+CAz_rGM*=|XWLi|PaC`{?>7szM}=JmTb+ebd${eu@pP%TW5U*Wi$zx_h%`0VV@X z%fCFl`i56)GBuTtfr>vq_Ob}z$|#(%1OVUiaIk=jiI?W*E0=}1p>awyIr`^*XjZsD z<*b$iwo;N>$}j}C=IB>Tu#6jo^!=b^L0yt2;Xsshc+u@fvDw_w>s-qzW?~Y%z(yB; zp0kE=cSxMh3?ML&9Gn6+Hr3g0L-Vk)rxC0XCg5dSKut2p?yvF9I|R(1FP~)~wCE2G z`#%g3_aTMEw7nA8f^P*wc!vjvV`5{qArN3gK@52X;ta*Re7QJ>EeZbq2#sAmzr3FX zGpE00i>ul6k0R+&hPVX#@(?H{I^PFo)ru@+Sb-NQ_e%?Uy%#a}k&d|BZ9rWcFOpj* zXU4|6)G>$@os@IR5Om~v^z;__3A^zyOG-DI;(F-< zh>=l)hI)=jFZDKA+V5IuCvjP;x5S<*&Sr^2VnmPt+T&lVqzXt{%rT%>DMI)WtIHEu z7Eak(kYw-H)x;cT1xAfMF898)K>f?R<29P?S3)_<4)K6@zaL2d?Oibzmiq3k84O%0 zJE~j!sQ!&--G0*XuEjasAs&;?ad0sa)7uM7Hc)rlEFwu4U1fOyfe+wez4k-h1}8|p zRA~j2?_Xsi-&X|;Iwy{g7-y|xI+*mWi(vUQWhXISr@as7{b#F4=>z$i5^?eT}Bu3~J zA3|U8L03xa107w3=3n;OqK(@~pJr1$yI0Dt&LHD=r_(BF!ni`C5ESBnMzB>V>WNaG zy96XuDl6&oP`Y!#LFOVAH$FkL_GA@2b2jZsiGeE5l2a%c3pYzSRAi_SK9p?KGX^3I zAPWl={aoIz8xmb)YVxCr%gOq=T~6&zxnMMbM4<~_N^?sLK6c<3&({i@si+3q%Bk*Rj>CI%`#_rO+8v$y}z;k5>?JF z=GtBW!ndh5*q1#sPxhUUgwhh(F>CGoaa@g^fl<9xcuk#a+A^{0Yxp)3uJtSpk9p}g zK~`b7NYsW#HZvZGZ>sA+?QcXbEQv%^Q<^e!liFI9UO=0ps~8~kNMeJb-C`r-Yi~)O z9yL9V4IfvreqG|~Jm>h%f0)7gCpZL8YEaS8pt6YOQX;&IK}^}0ypn|kggzjk((gl2 z$BvF}Z{SMc5xMHjkz1>{hNw(aofcdxL7tb$@S6RmFs7xRJ5tFFC^ll)^oqTnCb ze$3lwXPf%jST-&w3kc2KJ)cxqVZcRg^K+eGS4rFLY;hTQAlU%SNK&x@|G#(;*yef4l^ zh85ry2FmLdYfx zk=qpiIgs6_RZA87$dh=kdS#Rt3Kc1(!(%Aev3luSBbfiKBl8}nZ=(Fp_8IkH2I_wy zL;(i0fm#)qY?=R8cQa}YBi*K-5_5~j8C%%qSo#^Ylr=nqx+F*FUjRXwBXFFn4bQ0O zLWLtbr%ba*j+;`^y(Nf_OKV3RLqFEP_Eb0eAtR_Yshh%-FQUuR}LQq%FQ z{C9JWGFS;g=RW$gfen^qRanUM+!(k=iKRb>-XFzx2A+rqy~!AC6Y=KA{RRG3>NqF^#I&ZE8`x1Bce ziRKl614Ng|Ou5a{VBURbpx!Ht=KG*q*ra5|1^dSa-yvLh4jSTEuvyjUTS;M{3buU| zwL}755&j_yGA`QqG2`jI3qm4ac63(qkw=%wocl26s!`1uLeZ1Fz$+WNc z0fA%&xGg@sW?SFw1NNdVZr3bB;FdKK|Jz~DsFT-pLu8&hvwu;3Egs@iQa-xDF(5c| zCH)<|GExV(>1?XQzi7RtV9Dv}Cy(Q%?5YZu4yf)uqN9tx}iX}6}w3y88IF> zqmAgdVI$}68R|gA^yB}i3xcGk0aERwopC8yFmq&Tg}Hkj+!sLoJAt@8U}L+A4O z+F3@Npx$8hw>zxW(pTjD_dRTY%+~zsSrzihxZn(_5V>Hr%JwqvK!Cr>~zY&6fNZBG$HvrR)x*$VII?7 z8>z4Y@|ZYnxSIo82|{GYp5PD4a~>{CRkd0vwTmg1JbW3)`rlK2mf;G@vBs`v@Qk^ck8h-|if*V5es4ZXH`@ z?y=;PS0N`@Er)@sP7YF>m2T^<@72k7rHGE zW$$bw`wpN4v`^xn7_thUW;)0ndSW_cz`pNWcE8?;p3M^e!?&x!LydrM5B^!>j0+>b ztOBFx0F0d+9nFtLTL)rlP~uY_X)|gyW=+^@IZ*`1xz_?orm04=NU>j7-}|_LvHu0Q zh3R3y4Svj

>WEXr1FZ^vt7w*Ema-FuXvGQyze5AUil!=RKEXpNlug#*v1&MhJeb zalY}^I-igi2^sXlVh!HaICMy?m4NA56oFqLgz>w%?ox5YiPM`xk12R2$VPbGnt37Mn2my*(<9rE^ z3NII3elNlF*wqAxgTs!8Oiq7Xhw4wz&s6Sv2>*rKhQ;U#U5wz0`fQV&-m9{J)T|UF zx~-OFO$NTAb;q8ICvzKq3@*zIbNRq3Zq<<}wz9onz~%cBPnt0Jw|M@ZzrI}yZ0Vz{ zzFpb8H)9cP|9Q%kMev)J8aLFYjYrHns8+;#n$BJ|cNif$k_>Lg$hGhj!CE>Pa+_Zs z7J5hV*l*cpu9;i0q421y!*uG?mT#!ys*}5=Y~!%OO5B&=rD^ zO^`BC)5Mm_a1_vb`>r#bM9rL%VN!MJM|lx?Tjg9Kp&(ZR@e`srdX5uZftcI4+%VUf zLy1*JY00(|nH!W)ZfBbwZHx%TzW7PRH;Yt$Z`5)0 z#TDuwKDLt5vcZ9NstJsKeNn(#dl|A!Q24kng93x@QFw{g&pt`u20|+2;};q(5Dev0 zUkx$6rW)wA;{9k@xkzcz(%fk~jc#Fc#MMB5-MjIkdXIc&JW>SnZg-6N01+q}Lc(yB zR&lPf9ZSjrK08Xg=mwB<5n5 zOLZ1Y*zV`lbM@ws@ zBW*z#=(r9y-L5ghT^EOJkrb?I7oqR2;1<3B=F!B0fZKj1$^Av)L^G9UuEKm@xz^xY zU%0WIS&$}k@An;s&s33Rc){oivttd!8I?8=NAwisQ0%kKG#ZS%KycsMC0f9i*5<)Ou;0(S_}$?tI>Q zK%Ht$j%QU3_Fky(d3@`6Ec>i@_y@SE|7`jWG#o+z@$l;3*Nb=+s3IQ|Qt^2IakWtg z;I+5-ZxyuXh+W>_e>oyff_|4K%L)4$!+Dff>1MB0B=Kt%nV4vKGx)1`oL#84_tzT# zn1OuIj|)HM9-xXGEP}zW!f|N|Tg)awgjM-mUKXIY{aW(|U}9A#r~Rz2(m?MT^HFfq_`5U^C{0D2Ce?Fp9^ z3fRIhX1UJ+4RYX(NmZ&5|30~4;4#@FlGqO}>TVaQ{L!dm+u;!PpYi+m6TT4<7%ABi zWY7+QqH~b@_ zL+9YIm~@i16*V5C201sisuL4!lJ4ZQyDG`5KcQg8`2Npy;*a>UTy<|V9?0f`DO@6b zTlCA4D15|z0wtu@c&$g`Y5C)e6{RcXod_?f?)TP(th8$CX_MXQ*5WB6BYI;o zE%$d7h>9u)rcC0A4lj}glTKo$A!&<`@5;|x63a{lsdu_JnULrY!n^o{9Jqq3$Cwj| z8_t?MpCoF2@GqK_{l&Y}07orgJP>$C0-fc7vj=)$6?aS#;C<0ZI4m*gD_B#tW|%al z)q-h)@ZYPMZtk84H&x4{kNdnay;-!Kq#DVxSlG?9+i3)|>aZJCuhS&Ukz zOw5&2e-$zGUb%u%{tz2pqGMpJQ7;ko_9JSLd1ze`LuA?~cWr#dmk#Z(I!VVlBHbP4 z$Q%_#S4WC96|cfUmtjfjFk3}0Uu{h!;ujGaBKUMC2Fse1t4Y)Vk1U%@O@FPOo)Kq_ z0Agsf*|D1u=IohEK`gn1Ui{FP>6ALqIrNK74l7H55j|9byu1vXanr~SomPP*W6KcU zb9}iyp1^S4bvlo~;MSN!E{DW*&{hi*_&ULsx?gLmI<4sVUgdt0`_+s&H`RwntArN~F@ma@c%r{4g54YiZYb^ILQOO3tx-sm~ zvrEQt32MksrEW-I(o!C)DRqsL5(DMnj9&UlBHHTAI?E%!^$V%@8PJw2{tNp)F+PtA zdzWTSjO01&l!2kD5lotTb*#nuK4~mL{s|ew@x9omZo9-7@u0$GiX5enALRm`l8$eg zq?Yurqz4*60}PCJF~__NP(-1Ljy;Gv2#8l2Dp}GK)`P#}Co`O>a~KhyVf}ypv4z$0 z3->Rg!+Ts(sRKivLw&MHmWc%wF@-KR#U*O=o}Y}?v&1Z7lNFUfhgrsSs4~zEfUdlA zpM(^?@R&#QeT=W4`WuU-OZ!xBmCu&s|F}~w7ED5A6t>KD~)uac}xfek2?&P#^tw9W41KUp~~I@@LH?ziM;;QFOCKrh&tL!MMV^IMHMgz4G=z&wr!(hyJOq7ZQHhO+nr9btKT*Eoby=w>;4CIT=mplb=P%{aaKDZ8dE9!Jl?Yz zQ+3LGvaW8>RE0UCS_;AI8LyR>*mI)MO+gO<_V-a#pHq!yLbFzmaDiJ$_p*Aj*%;fm zUsU00xRhv3y`g21O90^C1Ri=Bjx_ZFk2Z-e&rxq0EQ>jzn+KP|5~A{{~&&X+ytypZDZ0k`qcwF|2SL z$Lrv}0Z9kz(nT)`!q@IupTw=h#x1F__*5A~5iN9`(vB2~#1Ho$U;)>0q=!(C)mhA< zWhsCb=;KX2>P&WLI^%GWJ5_`9-byRTwpB_;kW>U;kh-5z0Mv&0c=m6Ah$xwWxT!Wk{cVz?uJ`WdtXkU5xVfB41I{F_T2Si z_(80%H~kZPhI8yOO6XoeG5iH$VtZ_6du@!7yT$d>^uL7^t&lh@K;&4xnwIMt#4{P4 zwDva?0Fj(K@C+b$LiqywC~N=Ai1^+DN~?sL+s5@yJ2*#jAc%j#g#cF1=_$ilj>wZI ze)wu5J&R7BuY_zMjzv)tS2T3670kLYD(BM%KSZ;BDMAY&o8kT>QOehm zapR=VK@`&3Dx)9bq6Q}bZ{Pvtu{df62^HN%USkG~?J6A17VE~92=8ud}5h;43coW{tgoVmo8eo_v19|P$$rL_*IC6N%4N)O#AJ=Q; zh^#^6s%_=efT#tdK0+Q&j(ib&a7PEfVbj~8lhN@`R6TewqoEuEmzbYxgV?8)n(cgv zE$atpTXiGbIH?s0=ajKF4ZhHo?xE?O%PjpZd*`2>#ZMS-A4{B0`Q-QJn85v?f52Uo zrR@OQlAcGJlQ}T5mXcL1E!;(6hLNJ~a-vHnm~#5e?Be-KeYdPCL3jD(uh?eE#nUkd>E3;Q=JPPiy2w9LX4`y_Jrfi z0*veBfL?J#r3}*h?SM|O#gL=?(j2{P1q-^6kl=N7Qz~s{_7Sqzu?IK)a&8Q9u48nt zr1qPXhuy#<%fKW`CF`Iv0>4uc-@(1JLoE&q2Uk-WkE3nAr`W<}{LwycR}+Z1Zl{yDp$n;M`^ND5ucedXbX>#7iprNU7i|gibN44>ms?E3J=Z+XkkM3DLz+cQdn%2hia$P*{mrHG$D3?i- z8Q^O*+5_b$!lyRZ>Dq<+rPJJsTr&`|rB>wg))uul8&-S5eF2y;Y3l*NkpI&}64J6@ zU0q$=B#yk1DTT#e34La^o=zuq-|I#I&Bk{USC@X9yzb$rS zf0sfD=Kd!=)GRl*kjNNrqCYw?u8qFb?wD_1NaLatcTf|#)1x_%A1?rFH!p_)k(cpB zwP&4TO8c7!JR7c|0>=k$G6*#9+FT9xq@rS@u@A3Vghi7EB=`ne6`1ZQiI1ZKn`6P! z7OAI*WaJVxJ7)ohpBH*%*3v)=y%SMzP@&cqyto>&Jl@qJ0e z?g-?-(c`J3=KQ@N_;)aN#(%$bM}O;!%BW1@0K(RYR_o^=lTC)LdGEfrIs38qV%NmJDbTkVphQZ z8yw3HqWzrfCt6tanr+bAHKocI&|@Buu&ijCd6F!U%01LXf^rog!xq;_b{v)YCLzoJ94r)5T&oHO>jhp*BZr>y!+Ou+r>(OBBURQelJiSZo_#)oUji(7-v2z)jq@N6~E;c*e?GpNI46slH57R&~53`2AmJu%P$858(!rsS9^)p(Eq0Sw7l|d_dsq3jM?` z_2JMyz}aSL8S81|_-Y{iI;054kew}L5&Jk<6LacVN&2#ClHcja zrWIL7!3PNlg#0&`_&*7U|KSoj8ssZ5@jY<>EnZ${5wG-Fu|zUblSNl zHbCViOD6F5VN8;MSY6c+N-=S}UK3gMDI^h{?Go=0H8uDnFB|8aAS%OkZZIHk{Y!QM z&CDywcb1_@W!q7L0w1%)!U}@O#p)CJI~a{m+qMy>1f3AFf!qOPtAqbJ%AW(3(qT2- z*=TP0%w15F>K=;7YBO@cLg`L1rMX4qm%-Mxe0K2X&n!;jBTih9e+dWvt-1ds9IOEe z2lZx8Z*Jqihw=>JUt;TX6GY*6s8Ao7VMX+x%|ENbsJed;baS{&!OJUtz)Jnt%m2anbd^pr{&kGSaazh|S;E zVM`(D)%Q557q3|c*T*N~7Z67=8sc>YOHHNh^F{-!Ka5g^VTqv10SXY6-5SW{XLZLC_ij0JHHK<9h^Om zeuogIbJQ_*RunPz>1+t+P8xNCdu4zgYPnd7U`%8@@Vo|tVTjv~8k7yAzQNg0{W(^9 z+BpRACJ!SGtGGg9KR{LgN0Uhijf-Ny1rW{0lvnNNm|1*ZKah{KsGqNNIR&0H&X)v5pJI z*9nJ(UV*-g^8eD}Bh3RaY~?bfWKThfYxs&W4%m7yITP;xP)H<-_+SKCW1Y<0jn=&~ zk1U~J=l)P|MJQ1f8re=s^NaQe9$7yWPlAZ67Q97+MCvuoplvZqbOb#Y>kaL06wwa zTFoFC&JgB@A8upqOl~DIZbId%wSDYG<66e1RS5-XpyP}c0f;IQN0m?IB!R!3#pi9r z+STh=@6%vok=z4ar5(M@md6iYQJ-hPS5Lx!*t(G0cXTeag^*vSt1jzYBQ?5)b<)}q z2NpJj4pDTmDf9pGpJ$Ni2+$g}db|yPp9)?8bT_&c4(>|v9vuOC`jsJ5Byl(^Hh}JK zSC?K2dGee`Yx3o%ynX%<@!u5}|Oy~nt6LSPI zERmg{3o^lLnm$&bF**jU|K9Q&OJ{#*`K=XKL;9DtCKsb1ChtpK+yKK6_M2FQ)*-Ukm@RC(sbi`dS}{dG%uK27 z@^aO#TEy?J?Fio<2a9Xu#S~(JB2XJ94IA>gn}N}=*Wz}s9wnVK^Hw20*!AH6dL_e~ zs@-7utOCJ1y!+DWPf)El3ig~nV{y-ug&{R*jo}*QETJpeLs>hoh<{4)aa#b=)%}R> zR3;LzAlA)REQ|h(BdUui8x(~Ng7PyZmAY)Aca;qZ%90DRjt5Zeqv`!U#*6^H5CHW< zlFYG!Sk)nE|Jwb;BkBqebV63c)<-5%tV%TvxIE>>9H~7fi#1F_!4Rct?sEej>=sIq zsPnxY1vOqI{Qb_3d}I45C?a61m zC8J1KXb$J_98f;L7T3lPR!5nB{<}m91Xzp4O=oJ!Wie0dE(=xA74%pQmxZm&2lsx(r+hZNBBtyoYR}mK_Om zP!bvnMf7jq1Ed}{Bi)D<_? z)lb~G&AQ2T0*smt%ln-?l^=Mw{!eDgsxN~>Z~E&#$F-N?rjydHE8~UhuAL_04nwf2 ztlfWF#MJK;2qok5*I0G=nG8T7;6&$b*NC7&)=N+gV@xF;HViKP2&mR$s*CCw>Wg3T zsrZ!Moz-onC4Pp#+WEyi+y_c6%#O(f4+xWW3Oz z-st3NRL)bd^{9y&6;t<2?hZv!!W$dZG<#aQ0_oFXlmo8-wbM9l85+Vnm(TA)owav# z1%2=f30J8gq^jH2R~_h(+Z$HZG365mj=6saX+k-lD_t11Y6J%*q{43ju0{(H)U)55 zH?2tvDd{5Dy#!@V&$xynS%-)fo%-*ZbNz43QAP7=8`nYpIvyY_o{3gjAK(F<&Vm+n zFDfb2CvhPyC$^%d2CY!(6Hd>>k?>^+leCV67X5RYg-3o>UN@hIHa{kux@4S81;-s>42RD9HMB|!lxyFa4}H~jdaY+qRPq&o|?5yLqoiwNWI)yWjD=FJMrBZBHlG!x7bv?G53Wb1@mS)-!<0{C}UTK{o&ATt(v4#aeEt}xrOe(Ey-LRxz@nMU{53piK2Nb}#$*_~r?X+b0Y^PhJ%d%O(11Sev%t!)1#@lk~(BqpQYqR}e5jiWc^CbU|H={aN zY@Zg}ol4sBSj-SU^w%rEn_*Wff&`G51H2iQKmP3K2$(bKlh4JF4)v)mZ1H7N#ylN5 z8Meu-Oj8xT&WrNX0MKNpTV{9$E}6Z2W+#hj6Fi!NfJFOjGTHlg~VW6m(lCix`W%zvnspOZjFjYUVZQ4DmdgEx6C#|9LYq zlk$!!#BaVLMZZ2h(gG}ycRW2&kN1~~MC$rYh^RIyp<=j-^U(Fgo)#G8m1 zhGN%r83g=>(o2R;ke2p)q$UQ!pm9XWNfO{|0rgfHLxui~+oJ-~I&H+(;bR2W!4&u*K;)X|FouL7R_YjZZ$}biQoxw3;8mFB1kp`ZpE&E z16K(_r*3eRWKc2!na2k!p^Q^5$JcB6jydlIQWX<;G8U-GB6AK4uijB)(}L1 zGy2?oE8E)W(S=ovC<#ot41A0sq!;tFWZa`Ek-?0Z!T57#u)txdans~80N0b06;fnu zN_~+rZ0UWgD}(E4xy`WX=YhRb?W0o^x~uB^U^U77k_T@*C-&;?Rq<8Tr-P#(iQkbt zzNtpiI${gXR>HAV>~K}#)17jZu+F9|M{j8O>7MGg!vAwv%=MJ|*MBM=xFi5?*BD2=8>Bc=4H z6oDR>?5OIr>948kH7k5(D#)nk{P9*F+TxZN*e#dt9vFb13z~6=DOH< zTt!S+jQ;Q{L2CHu+8p_(ds5}e^ddH8UVcbuo;=k9wi@b7nI=v@LC(<5D=*0Ed_VB} zn*f>M;Q7Hx%x|{puryRW=75p${&?i+2h9QDhTME0EXG$-zr2iotBU*d35_vJ$B>r! zCSqkrW72yZs+1}5JL5k&7U_+W0N}1cC6+5kV>z0_ZHBMSjtp@uT>@AbKj3lcPd3Pw z@M~M#AE=PCg?t}s0seerlijL@)ct5`3JxNu3F4#UWNqDp?7aRjTrOzS%`2@bOO{4IucaK~(c$b=aca=<(NtAs;-a z=L;X%fkeMeG!|_*CW*;$Npfsk#DEs^QP=+1ZaG9u8U17CC{|S9{mzM zk0Up%?}dv?BeK9_X36~*OHF-$wsyMkL*UFUaEF|0(yK78VqOa-XOMJsns_%9j;Mkv z-K=Hw;t%x@W{fa=l}*r@@5I&8!)OvpzfV~9on{JzQL+f=5vDDFyc%Rd$H)1xU9N{E zSN76K2CkL;+UF%-JWp~4@_`tU3u>JWXr~+NZ3%e0p#aW0m29vb^u`|wX#mdi%X?z8 zIAu}1!d_c5h9GZ;$R(A|bLAD_LJ=dKB2#O>h{EWb#GN(Ht78WGtVH#qKdTjkn5^V} zQotlt{vCz`>pR=Wx)KAe>3|ohgDTs*A92tt1o!cSvPcV!&BB5>3JlIYT>yIZjzi{Q ztcWXt(aLw4at`sGo;>a*6WQSW2VzloB|RK2_R>JjdfMw7lXTt_c;V*ee9$i!1=oFa zEtHyZsUt}d5h!5rr@s6sjed=BwR|7Q3147i^Sup>D$X40kkB@%p@{J~YI~o!CRa3D z0$+aS19}K={JaI)-2myf+TeYPHKeG{A{%`FNGKJf7JtTOUA}sf5JRTA(e0M|HR8>d z?$iV=dfXNMxb+$w12^_q%$U9BgNnkZ#kGAX zR%3I0{pCj>4guPP+wEUh{<+uJUTWx!7EE_wCpeEhQJs6T&~Ys3GHl|TXc3y4ntm`% zA&&4dPQwv_mWmM;@fvDGzGk16IPd;xuoN+}aZpr0cHp$$ zdZ$j2Y9NFL7Qlapor6{aF<{HeLaS;p@{n&|1$K9Iw6JI$btLvIo%2Vlz#(zp|T8RIKimAg;5t9lpF{URX~^>BBb3)&)6=X zp0e!ea(1#eU)7eB5`u<7Xalm#J13HNA_m+|MWa zkyvb8eIDxYT0qzY@^=FAz>)&4V|tov>xF}9Tc6>>nWS0m#75Rq@>aCCCU13nL*P~p zjoXD6jeBRr<<<8IS&szN-EZ6Z`YbHVc%qz1A$@9Jq0exXuCm%*9O~BX#_9e?+=em6 z+xP%K2x{(oxcrIxg74wdu3eHP!osrD8WS6l^$g1DQz1h$yY2PSEmOxNIcy43nICy( z#}PsOR2N9FOkIQrR_Bh8mno=kFiZar+68D=k6_OiiTs?O+`+4-qlt;cM4L&rT@b0< zB3|90IK&GJZq%6XC@u2&{B6>SIb7s2mnIP=in0}skI;c~qo%+#$wGc7O&Nn*dL9*F z6N6ZuX5-E5Vtc`5QbQl6y}+H-Mnuj0okrhKCDcTl>pt{5lSYvm9(5=WxMDO@GYati z(KiW8&nqjc=uJ+)NZvYLZtU36?WoZsfal7j#ZR?$otE{k)%fe(6eAb_wVD&2-M?(8 z9nE>It%_&50~u&?dgVt^L+vtKho4pK(t|_Vd@p60(OoDo5)Zi1UaD&raAuzv$4yLSv3wr18xLfA!5>146j#=-sd-KUPr{gIwA>~81mnw6FU5`0C z;s)OJ+_vQv!u&(_zz(ZVrW6k04cU(v1YXMbBe4J}t#qzOnt}=}dWMOWdJBit94)Fj zl zvI7jo@h{v9#yt3XUX53xKWV=>s=JB_{m4;wSZ;B=; z3-)WKhjOs~u>BvWc{Ckle#(j{11;4Nn?WFAqbr$tYxBTWAIm&jlb)KP|(vy~*w%b71%2Hn>q(WEmhNc!D6n8j79{#=|5HAC2%fULd{+*3ociPxq>oGSeyuS+Q( z?C|1if}FkAxJqtW^rW6Y&wp|BwdPiw0d3PCV`1a#0J$ZxNp8hKqbn+BD+yT9{e|^c zK_94Ep@ddbCvmTZ$gmM8a~k?vj=+7+)B3aM&y5gY=Ouk9`j|>>XPFwnj1|I6-NxBV zhOPv%-Rean6R)>rcf`1LyXgK%sqNqOk0Oqjmj?a$e+rf_35tfTE8QOmC8(5mpqaL_ zuR}^C)6$y(h`^1BH67(iTGy+W9l0A~`?P{GdYmQYM9+d7uUW#!=KNNB7+4jqk1tEUqDezv|>8yi=K8O#K6WV{1TPM zi>zRE=MHA#hSy0__&(_RA=ez38r>(8?odH^IRx6+7)*IR%#vF=R!bZKV%wy@2}C55 zLb>zF<-M1?N^U`PADHX`p4MZI`*`a3GPTvkMW_OZkklr9?k5)MC*;rTCCwbDE@J)< zI^N|L?p^oHWQ3L)tv%0UKD@Q@Z7vOi#o>yjAo%l%FAI(U>?Hoi=&aylM$1uT2*0;L zk6O<5#1D|*xc_m;)pX0~yd#ByLRn^1{2VgORM==^DUc=}O)jJS&L(Yws&{!xSn^1C zt!JpUu@N*{hZ;yXRwC=QH=ozdF2=Clk`!)QJ<`ppO>uTk0SYEygZ~`Kwzg zttQ5>gbUKcY;{hkFfI=Am1(Z2Llk(5(=GlZ$ATWs->=f{ z2w?xL;?N1}+7Dq&G1pRv=P|FHt3UcSG9?g8!F{tw|N1fir(yJ5T;)JjgfOQI38fp@ zvgBHTooaL1H%#R1_QrNoBjP4sw&a%Qmb=j>CtOKD&?7j3xR`9xr9wVn>FH+<81N`4 zl|N^H1sY9K#F3dMrU^ebD=j?}Y@g0%Y)UB_t*ok{+I%QDh>zt#Fx^X1zZ=j?R3g|( zF6DkTVa<9>JP$)P^V^8YmFR#8`lR8}f@WyTY%h`jYKC^vcryst&YyrqA?GAYutP5a zy~~6mhEYTtYwnuoM0ahA7-`lsA*y>YcJrW(1ExaB{sPK0GuBZU-%7d@ ztAXtOc2uE^lWmpw*IsL%KWkJ~tv^}3o>DqY0HRK*`9=8n76Wa|sdC{86@Go4I1b|b8%el#Z^M31*zeKysoK@1!(C|AJ zmivh8?cc)SU;OVsUmgMt1d8G6$ieOpLJ~`;C`_ApdC*BE**M`3yEdJj-kZYg=UtCo zi*6rpRjD}CC^RfdnrupUQLP!jzWHv+!UtG20e@?CEg1tUGfyp);~6-;d^u=&fxtfs zPBmc(q->WuOM!iu%O?ivX#vWJT3f}wJy>{?T6C%uC&?4HBcI1{G@-`e0^H<{WE!eG z)YC_DS+~DJzzn#@{eX5kFw80<%G(T28eG86y5~YIv9QLK?^4j%9=5bH@Jg8m?_>%+N#W8rls`1$zH z$6q1KR2@8P!M`UHca1_UY?J%>*k=ZIVcCj|k|gxmEq!(0kns6p8t#@>4wBNZ^5ixi zokxiOf8V@yXka4#zc+9As7{zb1po%bBPz!2T2q{8jobl~aPl{A&Psv_K!13h+%EL| zVxphR<;al8WgXpuzwg?`7m56fOb&BHaXAdi*R>iDair}sf3zWXCtl2lrENsjzilQ5 zneF`VeE#Qa9lrfS<9doiYiYP_xIyH;YEn3Jz!P*>B8}r1Nij5i>YSBZXx3!b2Yb2Y zm7GPC2k2Vke$6SEtS==n^I0@pc5)yK8A_`alCG(E296}G7wZakR*Nv)2Q_~88s6Y3 zGP!$M@8eBs^|($j&0!`|)54X#VeHLXwO`TD=9fk#{sPX2=Zf2hK@WW3wH3b`;FQ&Ar;SPq+vJ+pfsNFb@Zr$Z31BKEgm!B@Q?q&7%9$}oqoe8Mi z*x`{2gXKH#FHE~uL9x@tCzckTQiOXwgfRCLzKVK~rI5pv?2eZon#|w)hQ6RKoTvHQ zKuwg5E?e;a*_%Ed*p=&ECq1P27ZBb0AE_B3ctK0qrjk}g1f5U;x4`@!91;~r3ITfA z!R{qRl6bcS>1?-o&9#RQrZzBoJp`FcatiBWF&~uD;OP$GB*%>evx3UVYRk~4#na+9FcyAjHCm~AdlmS;zMi#%Yx85hBsZ?I5 z)?+nsJL~5+*Zj9a0v*`F@{m$%r($DQ_LY#Qsj4j!xh)ZAuR9db?9G2W_q0>|R0h;J zpYK55b;ZZJHw^YBo+*)ZGcx%l;}_WIe-!S2LHZj23fBP%GCu`?)F1&M{Uz(M;yj7( zPD@xI%r5&Kr!3SUA0BnU(NeSM` zK1q0&J3wOMDvh8hYGE9wdgJ2hMGyrJ@?D+slYpd#LO>=P= z2Xz2maNI~G3|oi}2;H!ool1qWbnkx3hi|O;wpE$p%YcEvit~cw$C5;;57y6;Av{Ug zaD}E0q>wq4cLifrseLk4@(elhK;p~sn6H9&TH-POnICtCipyZQk=2HUgT^BR72nv% zjz!v+tLWcw>n>uBlEf%+)G6i9Cc7%@c&yRYCJHN}cid7qg1r9FVAvuHn(^!f&Z~h% z(&>Q&==j-0hiKceX3hvjXF(=#__IdEwS;hTOpv_p2$7n)a!6tqCo;=CYHyNty>;4< zr^05y4dveao9+MoC@Az7Hyex!g^jOcSfM1)Py%4P4WVqbU3>ejPPbhf*OvM`1=j(? ztMTRp4qm!HfLDvXco4G#6RyD0f;3ZD=~!6TA%Uz`A+uDyg?mkv=JlOQxAlO}R5U`_ z2br&yulwU_m~iZ6wI)V>aga+m@&zI~miOO$L;kfW0ALyx1X5B2H53ODODj%)z<_DO{}qVj zF@*96` zs8Zdsa>TzmW0>+n7F@7AzEFeh%M{i{nnLnoyff}_Ql@F^lAxS-$fbZX1Q%A(9RNcx zo_A3j6bd^UI{f9fCq!FtzZLtDX>zjpm69bD#+mCL`i=E;1s(l=OAz*(Md}I}e_a*@ zR8P*(qwV|Isg5bnb9YSw=!xkY11(V2ay_kx^>sN;XL;eSUD9$St)1{_6);h27|Zlu z$%w3~#R-PRT$3fr>v`+Jb*H^X`xwk7i6nD_@io{hL4eO2)7OR@jIAEcDm)I3qsQ-X z)U|=3a$JpoL|RTeR*|svbB&ZRMXuSA_1}g}SykO&#hCTdf0q27yo6M)S9`e`UZ1&4ZQ8~Gd+^7HR8UCk8 z;Rpj4lm_5-VgGPD97lD9qVMe{aBixe{gl_6ZMVznO1z{p+~c3bFJg^HrNSGuhaymw zHxhD|L0zux4?#U+8z_;DYKFxe>Sn#bg zR&3S5Fr2WIif}Yols4eX_Hp7jUBSUg=lgA`j`2}y{4;hgsdq=W9pSn&zZ?y|l3ows zyVbRoH^tBZCfY2f94TV9`g~=|p(G&JK^D*=fkf=hL(NI+D#5Cx-g(=u%hGw$q6GH(o3LsUgLj)qNg;3P~39IaRcN)(#^#;XEh7b*yiimytz?y+=>j4q!;jVdFZF z+xmNQB!B8c4TUw&>Y}aRq99*9y&SlDx%z(rBBH?epr%} z%04P@OyZhUwv@_ll|%Vspo&G;3SQda%j5c!Az_6|$p#_>wLW{S_+XT1|A+{ENpo>9=E2miyIp!zyNpgy#B>SYTd4gy^4pvdM^=hCR8x*x;%Cp zo!$r$(yt>Q!%I#%T7VW&8<%mJ2z5jCAr^Yao$WnW#!`=@C7Nk#Jx*e~m#Je$_!Ydt5RNN^1b2r7P7aP8{k>LQo)^`2zr zgo>nJ)zmC9FA+9($BTo(#Oe_`v=%N3wMhzprEJk+=X$CmQ^CJsv|KEjeh6=kAA>H9 zVyK5oe~$P2U;L*3Wc~c1d~#6bSLz1miAqv?cCyjt3rFcG^z(sK!9(txD!h-pCwE^0 zzgU0~9~c#%&^_)#`R&IcC!=eQc$z2L6e0LVAw`KGZIiExf^q#V!@{~6%AKIk1mzcn z%E2 zfEw+j4hs5y%3t%2$hL2j*No_03FC*BdAu&iKhl*8`U~N4i=8ZIL^-WrVQsJE301X@ zkZZi}n#MXZX3lkI)BNy`zByXY*~cKzUJs`?O2;*Y8xWK4R_T>QHrcvfgag?NWoe2v z73C7O$$GdCu~l)HqGhUT;xkx>gX1xEsUkD$8Ov17*0jC? zkmb#%m?>dBwr1SK>IM8=r*%-hr>7?|N?2Kk2#if1$-zQsd5I zD+Y**_j0)_u$`95LLz6)``OO8b!If~diz(}zLNE5ac`KIAJaw-JiXZ&S-R+BP4}>E z(1`{*WXMgijwp*F@RBCn-4@5&ZZU^QAcog$(gx19fU`dG{f!fr8LEwdx!c^+z zsg%3gi3GVn^1a>6WgR>nMI&Cr8i5x41G&kOLO=rFVus&Agj2j6j)b*gX(+mdA!8^T z#(c>9$AKKTVfWLjoh?RPCAaY7wlZw| zqz8J4=R+Psl(I;gEZJuYbmd9xQWZ3~4QVtx>OotF)sV~%M$`Hu6-Kh1;)vp^_N2k^ zJ6b+*9SwM~b zdb7knGZKl|_g{;PWqr=lJ{X3bsYl;oWEL!_KR8c=+RkC7dg@&z0Kw4RG8Ne^A z19|`2)xA;kz+!ma*!A~VQPyAEROC&ewz|fXSl5la*s7v146Az!h~@2?fd~=2c`3S@Hzny$817eBO3`Nk}SDE0$Xt z?|R+bw~xM@*1Bj4%QZ$w;Ly-%mYjO(DzkFR%|L+4<&;%OitU$F*@da7@X3hE5!f;Z zP+=J^eQ}DY!qk+UP!*$`Nh#;h+${$Bf%eVLTY#O;iU=t}7Z3&UB~B<{;kCzY6roQV zoIxP77PaeR^|SZKw~jY~peVG7E7l;{A30+cWEMSUNIako@HS-n@7~l>3Z$~^JvoLY znZOGdC{`_5RO}JYrke#M!sv+$tC>Rw@2A5Dz4KUWjM^YT+U3db`KJ62O<@ z+FYIKR>(cAm~qyEMNed#++^k6rN&H~9A3fh-_#PSxx^x`CK6Uj~HcPwi!zgJ%Nq+v=A^*)T{FOow z-=TZrbw>X2Hv;Gr)pGR&_jSu{VSAtMRIV*=Xa*VcJ<2Vs)HZ#{L_H(iKw}QE?fE0%6!Eb9D(mU(O4Y#VT6-H$Kj26~Ok|T0kkQ zDP6VajkCyAXj6rTAH;)s&GISt-g)+2Nib-{`uha`bCJ0-;Z~n(h``qwn$0QNk6|TL zZoJpWW_;>;1g=)4nFuX1e7rs46S=lq zJA%<2ib1FtOj^{OoJYr@=LM8iT!h@k$TzPyddMWaHJdoX6OX2MuBcE+DREsn(=ciM z6N;B{M_`u%V7D{QE`RiL`H9R78f>5g(9GtlO%>JL5zJt7qPNN3*pFH`iDf}QUE=HA zkhOvNU^g-hDU0891vCT^s$wGctfSSYRtQZ+{Yg%;cUi>DeIoC}8D?YlO0E9l-u;9K zTt&#)>332R)`Jb4VC#brMd}{T!RBs)npoMUe?#X1^YLDGcut}zmB1s68NK;}<00*j zQ-5-DAhaZ?rscX#ERRHukjNgPND6AeWf-&9UKNwERt2q{k1<@ztZwB3$**wUjgds* zo-JsI@ldzZFos5yR~|E#em1px`#eQ9`mL`6qAZ?rXVEtCIpI=j4~pRjPcK05&GF;o zH>I1EM~;(BH`=#zyYTxB`~6NaE^m0z`g$dz(7nlie$?;;XHs~J_eJ>Oqu&w#0AjjC zV_|ERX@|4v?6cBe@MSG&r%g7bo=bH?<{SmrB#w4!m#ihZlAIE&4fh4%qk92TllpyY zsIeHW<6bv6-~_@qq+^cI2P3{Z#4F!7SK#;3#b3$w0&mE(!x|MlPs`04CPFz~9NwHb zWIPy5hdl-aYU_|W((!|v%}qI{jVwryt@_Mw3lICmNZ~N4`4-nbq$O>eR68wMl4Fr`Z8yIGZ5<{4` z!z>0BOSfo*Dgq7W)IYM^qs5rz8wsYt>WgNY=lyu@ML;Ec2ok@u=K%rbVLI_$f$^PR z5&Mq8(m6uc6aSTR@-ue8ua9H~<<5IzX5mQfND5;_v*Qi7O0q-=hbR|&Uug6)>XgTf zkf6v3W!N;@tLgEd9xT&K(>C$0^d5fn6m^)Tk#u0>BIf0k5i%zV=2K)FZ?S%ryw zGxS%5>IKyyI(_;V#61LjI0NCp$iA@k54{m8oUfP)1ye`zK()bR5A)qRBl<^%B7*rJ960!&QJRO z&Fkq-+^&E&-pq$K+#l-Q-_Fsf0D<|9^4x?VgvR9JC|sq0{0oxsY0ZWe!3eZUS`wi$ z6|~N<+#X5kd>s}qdEn=J5LSIu+m*kbHfN=ntI_WYX-J5Z{H~SypCeumyY^4qO0gI} zZ--^l4CyLWb_hUGM@XP~P({!2Hp=^!RXK6))`({afJn6DDHJZ|dMSSS&dy5!=k&W9 zZqiwM-{k-Pri;6CTF-^AR^3Zk4#VPJf+hy4GrqJFHRxNBP^B!$B+8bcGH@Zjv+b1w z1EUrrN>&w%B5FPB%WGtb3E$fH9Z0E57y=FbHE;v?HTt4gl-6_o3fbZ!nGo>7AhxvG z3>O-rb$l5b>nueB5zyuFTVin;^G3)wz9hc;WgQs1wC}qarEZZBry9uM!#Q_JHVfYf zE=eRp)Luj01b;_pb3S+6Q_q5F8O)XGYHGYU7&ujE62TYK;~-5O-UMA8Q5glpJBPH~ z2)17&t32BLzB;&Nq==8d*NB3GVk&dCo2?O}urU3dd#&2`OG6mT-z5-Whc}QDMbrP$ zp*A_rPeH@TCT;q2i-vvM!aMAlUlfe08$Cw1EgB50pr&>?bz2PQSSqxZEDmi*ZE8uV ztMW;Uk7KP|d!!N<96lKb<6aAevQ1UYW1*^uc`#ZPzMAUSFUf4qE1^?9TlZ$Q{s<3D z)q|fgqRE;=gGc2k`shACv#`kp#58lv1f=cw^n`}uB_foOQb`z4AZQ`4>SH*XGTPA9 z+`R)J#TXI!gE>{FA?@oBQDqMQ{Km#Ufu2j{Jfw1;-G1FL7wD!7JvR)esD@}F_Y-Io z11ZkTM{ktQ9vmujs%;3D8aYawtcax*E4saol4!JVOXc;Q%Fw6Jnof6Wo>+6*j&;+v zaYtjuyh&v1LUrN9t2&lR?7uDzU_{HtQ8TV0fh>&7K7*+B9WbC=JUT}AikZ(ZZ6MBK zg9)fcm;B?zbaT}Dw^(T*f&1hD;+~8b*&P1)1VxBQu5Y`^>Y6)YAsf-6+IBLdLyp645KdR zlI#-O4T~jb!*fgcsf}N4vm%bG#O@eCVILa0%sw_9%#klDH*p9?YBo_ug)mni!udw) zunR34LVgfat*=PlYGEHa(wb)?%_bwDu~KFJeC^XG1^lxaIzOM7$BFPpaPP=6 zFYrj1C<5$hBoGADS!gY8ya2F&HA#;(Wq&#m{yNFt?1FOMDuq0C?|q^}<#fE&OKz=< zDWO15zrAkX$4d(cLn&0+vaW2W>YOF<-NhCZCv;yqTe06B82M}55F=ua`)JNhZL^k7)n90Q|Ge`zjBM#*jByDZli%vgbbP zQ*8_QrAPsbZ)s_ooN+cX)8%Kj8qrpfzAq1cwAF@&8LIeN$Fcg&#E9 zTuX2p%WJq=D=*6q{b!bkf=7_#GO}DrxJK*hg8>|u>xo$%5wD|yHhJjbO&uMkHJibC zwPs%5#%G*|&Je%Q^YTD7v;>zpS4s+)wipAK5HP`+-`GLA>t|Fts3S|w0AE!g21>*0 zBj5?)T41+~3l<6-v~hQPc+Q0PK*sCLF7bEHH5ShAn@YhxFiU+3b4w@+LIjkKniuU# z1x`^zP+bjY6wHL>!ale5xydaCc#lfg8wNOZuyQz0u(R_7? zoiDvmrmOSAujA8?XQN?P>pgxk36Lqny`wv&uwwkkW(f8__JZ>NGM%7}cJISz!L~ye z5-xD-L_{gmETSLE?w#0@;LimAjJ7%WC(Uok_i@Jg^zQ5%h2SMzd#bE;bBqZAk(x|U z(wCUTMpn!qqfd<8(W!B|=L_kOM@U937}7$m^6S*wu~!xDEsU%4;Zsri?MIu$vatO? zs4jdK8tp5cehL??c*SxJ)VhMaBa) z+m*E`rQez0ch@ExZdAnBmkYRrT?gVPfmr`%WTmBKjZ(2r!!Qut^A$IANTWi<3>7dSbwZKoMiFwI3yI{| z*7;1SfPd%Wq$rdDyg2vl_wK!OuC9IKp+apGVIG)T&Ch)B7*-ea%Ph01!{C)hC>viY z3P^&smXYd&CMbK)K-RJ-(hkLd2PoGiXjdT!!+`?Ze={MTj~9>kZ@ePaL2tmmz$|e# z4MK2{q)nbMpD&acqD!z_?MLb^M1w;?1=b760$EJ>4WyHj8o z#TLPhkzGp;&^G_QM=v(AEjzI7O#LCTC7l%*@e26a_G98T^K+>yyHqW@8zgJ_WCY4py;` zc@Rx+0_+n;2LFh$pPAW*ct{T>8OJLEb{Kh_MA&~MA&$iOAuKXqw-gvHz=nBB{ZB4t zU{G)ZV@Q#CZv>GIC)8y~N~ry-hTw4m$~e0Jc0d0z{~q;GJUA3AM-1+Bq=Wp}r=ErVlx>+n{dZgR= zy)k&ynx0Lgt0}EDug*`7JrMqI03z!E@9#CnpdB!Oj@v-C7!zkM!l=a zG@8;`>#B9SsYxC6u1=4R&>!A#gjU{$xRV*W$J|*GhQL`a;sJ`t8v#clXNlrup)FcY{09i2*cVdTAGPEbA6Z2D+2%Zswd2guGd;pW0TFZmw*Ys((EQ zg@u@&)*Rz!-*eC+rjD3I^SSh96g#|$qX=(PGAX1biB!l*awrd!pP!p#2|-J1B%V57 zdaQGqRU35bBTCjNmyFF;Z%@L~60kpu53;&hwu_%}IAO$JoS)}&MsQZSTb#3NW%3%1 zv-HEUqIs`b{lz$rI1~bpzQ{67Ur=3yT^pG-7S)OQ1v`&@zh(GQYh#H`@puc=)GIuu z>rg<)gt)|QN^vdJ@AuIH`;3@uWk8;yaR9`i86*vn)S%uLZ!^o1NHRC1cal-waIAPD z!sCeU#@-EYIf3sJ2b`!~ZCV7-Lrw}Yri($_vlFeQuy3$HOA-+`a1an88mz^u;KsI4 zayC0@VI*RQxHlr{`>92vz#)u%Q#{6!T$`*{$fC^NO@3`-GsVbWc$+v>5t9v9X*c1` z9d+mOg>Y#IX6A_S@F%hg`L?O4T6sU3!Zd?qY1So+AR^dVqGTFjrd7$a+$pKO(z#s9 z7s+4K=eWPyTn%2st|-c2gPrrz>77QlQlRup&{f(ouc%Cb?2__Su^BOQQ^~E$iZ#Xc0@z9zu*7x^ z(QUNQr=%eDDy?Kq(41}5XU;mAqF8C^k1C|zgt4#mjL_5IT?4}*dOWbIB0;HfTtiy)@%VH*HG ze>jMh@5tz0x|7^98Zq&w@C5-%>c6a?t_# z9wj1kQo;j``FTn|w+jKB*>`te^HnivL^50&N@Atmj^SLpN4rt1cjXv-IPCuayA{1Z zIL;Naw!#_*U}3e5N~D!LE&rHj;&>&Gzzc_;v#?@$;Lnq@p*K~hK0X1v=3MT@0bO8&*%kgpX2p}8m zezrY@;+0D(=_HTMRjfA^nKjas1u$c93WsfA?FWEl7XXqY9ESc@;J;2ACDEF}B6+7t zkyjFnslFE&)qT0iEHl8+9KVw8LOkoG=M%IG6m;2FItqME2QReVQlRzJkVe!ftI;mf zid&S~pN6F>=DGsfWMoN%T7n|0Y^s5nDbY1~cJQoEV_@)z_}fwf8O3uJ`ksIWGq42U zwb5By+&dNbnHtIKbSh?@ve|b;pcmh3CyOXp>FpRt0js!tVnEmw0kD)@vC!eB+l|yO zoitpGZo~9XDcdURWqJmaTZz>Qqsor9s1r>~S*Ywf36JXb{zC)*m&P>=yW8kT2JTwf zl^8VBNPJ+-%J74N2&QSO)1rm8W-Fva0`jCKDG1F0+D=7{L&wKer9&X!Wga9Fq^0E2kt|u-rHL#`& zEb;bU_&H%H+A^fNe(E9+>Zu-=LU*yk`W>lDzY|TB5bNI}%s^nbNTK)2`ZshXuDz% z&jGP5zp7FV6ae#Xam4u3$i;x!h6iw&v4$$L8p;YkUVgXaIdgtTO zW;Hr-2K45dm;TRvYf`fOJo}zoKCDK=-`LR4t+S8%ijTA3vlZIpVBEC4y7;=B&)iS* z%lFsW5(|z&V&IR*8s-?R^>Jh9{GXP=D)Q|6G6TfbVCbCxz`Q+zN_hF8Mm90jAuH2W z_{ASzKg_;q{O7}}9M&o!>9kZwH2u|)Yy;2yJ^3(B;$#zW5Bwzb6pupSG80i0E)ci4 zH6jgfpzB3j?86u~Q52Y^sV4OE_ASU;9>X09sX^{{C=k?+OTq)0#Bn4PZVP+vLoc&+ zy=WinT39bXFWo<9->xn$7d8}19*_0-ukJ54SZ7nK-!Hkp7QSp~Gix+4&BCnoi4bPwhOR2@osn*uaEfkI+@Rh-819emBYb3n3(O zK}E1|7mPGl$YnsV+k3SHY=cqo4!`ZF#ha zAWZff6u?yemU13Pl4~s<)p<(&=$vE@iIYi-MKvesSS=Pq`N4Qv;;M~T662-dH|FR` zgJgj~wta+M6l|qYrJs<9(~TVe?};(%zi_H44Mq)Vct*5F!5!+e?FPlA_!LA;nPab= zf^LZS*J*W4VYNCy<_WcP<-Kzpr=AMhXtDUD1{{hmSsI3*3i9E|soqqvsj=Ks1F%U)j ze8m(Nx(JJ{545omR4gn7iOF3J#w1L#posr&j9LgzF)!|&GvjGE1=3JfGP*IbQE8uU z0dX?ujf8OWf*7O%ZBAh$If8dfTyx&~Gu-^rTA4g&WnEP?GcJLhv{coi^v%oqBVByg z;w~shXb;vXYFej~@s3P_{@p8?C%H zje&ln<408g1)|{agXw?nbW-tWYMDpkA)b9x+iKfD5PjEIOoNCmtdO`A3U*WzjG%## zxJ}wV*g~wOvAsmz-R`d9nBsr$tSsN%&Vw#kn%`=?*M5Fjv-J13jc zCuFh|7RHz{cK{aHC`jZP6I0xWvoqqgYFQ6J^Euz5?(NJkxIl=Yz2jp-C!*lI^kGgF=4+&Q%mqt<`e+STqEQVz%Tvry7!8fUSQu0> zb$9+cKqoIAQXWEFh|q8;fa|)06cfY}(BBUp}t4IVnclwvR7 z8q2Nr`qlSCT5b^p(FjID#zeu=^aVI6K!CtRWG~r@K0+u9Vc-EnW>tT}R!YhyOssGh z&Ll)@*|Hvh=CgNCb#HrOsgQ*UwB1dn2A6|Btf$>)(27w-7H9Y16DRZKY(5=Ne!|H~ zU9&i^A{B4VdVAbl;hM`rPo$VxZ1)UjUWX2sXmY+F0OD@DW69pGd~ zR~x2`w`XfI7|Ft|x@8=?a6YgW8~SiIfNqzxeAi=djFr;dUXSOaS#WVVI;P5TMfTKa z(rDp7`X8_aZK!^A{sZkj{d3#Kj=$%xU_8D`PGu+V`#h&fPm$$D^Bmh_JI#Az`#iL? zviU-hdL$Lc*XDme0QdH#`QXH~&s2P*cv9DiOG!3USavP^EX<7K$TnU8qs+j9wOmq4Aa4{9_#JiJB}6jtBWSj{6KM(Xt0AD@m7v`(+0Kj?jCtYCBaFPkRW zEyt%y^2`DA=5#n3?_VDc-;D*BKN6TDU`{oS>MpLLMf?yI>|d*-V9^bb7vMV3ej1({ z5MM=q>Hux?=PyBsfuUnc7F#{jOKZvEnu|08zp7*A1RwxgXjhQ4I)QC zBAgr}s#~lXO)&-5SuNPVbV;?d9);N(q(ZwT}#q zo%Zt;=-=+tqfTeUzrMj5It_~=e()mL(CPT*pCA`&j`SwaQ$HmdI=#uRR_5Nrxtm?F% zd|JQLyL`5OC$D7iPJarI(GNBGr4fby~oV z$qFAw{Ke)7yVG$o{?{s2>)g`mN3fo%bw?7N)*H!aYm)r0!A`*9o_;NzCa}j<$<*rA zK9Z+jOQ$ome#^ULxz0#pHyma&ha>(o$PuE`-}A!mwELp1({bUTx9jXrbtkS|Jm~Fy z*Vf55(jOXxFiu%HW$xnc{?V%}&(ZEL9s-JG*O6SXewJi;M_`8wbB8RUm~8(AEO$AG zZdMhTbPUZo5TJ+XhTX-V7__ksAkA$EZ4JAB_9D(ZowB)?|J_c~H)+s_4V}Uov8hvV zYiQ^c-WnP@g>`Qedcpmqp;K7W+B^AJxwVr|Jj0#B`$=0T?|#z6MnQ|cah-zV>F4r) zBrKgB6!{{+dw=p<>`A~><(>W-vSkkQTh!IQ#r;cA<%mwcb^2>tCm%;R3R@U;({wds zo>^h1?+k@~^^$vi&!0Vu{_9g*L_m&cv?{>!t>ACmlF0FmQuc|ZJJGY}wv)&k9pdAc zCMe-r9&esR2fa<3{*I3 z{8`jbc3_k&k8acaCQj>Sh!eKh@}K|!-k0o5!ah=9phuUW|9Yj4cYxvhf z>Mm=tJZiL=68Sbk)Rt_T%pcHD67nmDu38nDH(dN}m9(zn=kxrQ$;UjS`&7x^riC#)!abFC>-Fup&`d|RG`0ZJ~r zWrVH0L?d#zQDH94?Isc7BhXrWAy{;qd}5L-6-P)w7@o>;ZDfNzh4?eRw{8N~MMd$s zvj?yZK1Z*jd7PGPPi?zE4&0T1gg88lY4fMuu)l?F6JjxA^LUk3{AWKSct0hLIY3p3 zU`T7va)yecQc5TmO4y#=e}TG%ZIo}!a>IoUZc1`gJRqLDXT=W{sDa69tD7{LM)Orh zoucb&+9Hb8wCY=MUjYTSqMw!Nw~1W5{o1i$pkeQN|9EtLc78fJ`tf>vw13@;cA`af zjmHW7EwSDNL(uKG9;0V32q|t_lB<{Y;5BXv&2Md>ywewl$xdNIs|*H1A_0F@L2*=M z!p*Qc!=`-?Ni++U4y^3w8UDO+nQgf9QC1AJ$X00@LjH_-tYtrYpuMz7&m)c!=+JDn zxIyb}9&uBzZN4zuNj<544YGCiyjhq8z!;anZ`YtQK<4|ss5g+HLvsgr1M~ygiMG4Y zHV@vTZOy*LLp2Y^JHXlaOD}}kK6^A~`KoeILxZlU`W_5l1BP1;ih7Ifz#J6S9ilrh zf(xMg0Av$zO@Z8mB0<|+Kv&@o1B!IBtQOF9==QU_!BDFrlRK~Beazf$exel94m_J*9(G@hxu7+^rV};IplNQ|>;1xwUgROsD@;KCge)h`vE{ zzs!s+>Wj8*uNN<_lraYsLIJp(WEdrRd;adwMvKM+(6^|u z(C6&;p8xmvmo$F)?d1=zFS8$>gAVJV9$RkdID3Yk=BpaJXgk{dwWx4RHYElH7y9Ma zmX~;vv6l@TE3}K?$SPlM^9>wXom|f(1D88almB71iEJ1!0siD*6o1m!whhYGd4kQT zuTG@r&!P{EqEcuytB}>U7P4ApDS*ML6^zG4oOl(_!r~jKz=^2Oxhxp6g0%tLmDO}d z|0M?Jr7z|T=DN^F=CTrdkb<;XK>@#xzWIi1vgp;TSCMd`5MvuwM?^`@zjS)u0Ky;5 zpTAiA?6S;TQjeg?FnmE_1YDFX-{#vnMK!=s-{!ht8v~d;<`!TSp)){63cs#u;}%z6 zYaqQ^2{W;{MENm|?vv^c-J(14Wr{kkT5|_<0>TQ*hJ-Wdr0hf+FF|t+;fC!4yF+9_;+y`Z{EDnlHFPq13}It488S zeMp6>?BP`*0vYf+G#5l|vH2Pyj{3 zE6|;flouW;#ff6fTKtV4447`;Q8Yi9G2QmI2bFNST8hL!xLt!`ExpiuE{)qJ94Jy= zBSG<6KN8)<-Xd|U>`$=$@v?8wbHLG41R4ZpF59U|cvS>ORQp<{DJX6unRF|9r5Uqz zI_d>S=E|etMQfP*w69^=FbE!qZkgh>V^7C|BMx2ESom%oW*;DRAknm z9)Bm+T9=VP5xTlB%v)~EiyxYhcYsTlvbY4kTOb$VGSZPWJV0k!okr8)H9yg2{9ud4 z81!i{q@C5SIgbNV3u|>oF#r+}8YeZk!$H#;v7HWSs8caAzo}U}fLcF&ep5ob zC?W4j4EQAp+IP0Rh)qGRXTYG83?SgCueo->Rj?FMCBpfnY&|Spv;x9+erE+sd=X8* zHlOx&`J&?wdqIt#hbE8H6N5bdc&JD$jxND(xTY_T)r_WcQkF~|3wXtH%k@oY^qS$C z#ropKmCswTV7zvz;J6IG`~n>v=BEgX4epz7{LKBdZY-&14CC`-#LD;jJ=X<+UwT`; zaEK+O(u}oO-eX&e)8EBSF_$f|TtnI+W3fUdWK;Vsn6WH!<0eBRRRLT*0^c)M) znav_I;VoxAxoP+0MQ_WOHxNTl+b;`CK1Doreq1=u4Apr(Y(55%*L3)4eIu5Ztff=X zw{2r7u>yS}!a&0Otyqh1juZTA z#5`mCycmbn50U#N-pB-Y=i#xo11J&k6Q4D-h71E%MU0cY!o-n$%*plZS;9lu zHM!)S?Cp&l8q;Yyi>$+gEkVIe*e9#W4AX_gd6MAI?P#}IUnSV-b=xrnZhEM}yn1V` zK%;`&6l~Nd`fCD?R!p!1SikNJYF`hqklIxfH<=kM5?TW?E5s_c#9w=ZF6KfwRM|B? zNjj)tB4-P@y<(rM+BYaM$2+8CgaC_GLM5QMk(U2;L_t9x^Kzmi7tmCeNZi48*-_OioO5EOYSS>_ijr^@>@&Sx~O)0``x5hDUZP z@eJTnIt5ttfYM?GU@@N>rcllkHq#R|aiV1v7ZshiffGP`B@^dw^t}S!x>;3xC*fg$ z&oGVz%QCFAG25|#j?x^x{+|$uyl!2rU=Eq05iCPa)8Uz`Q+|KM0+m~L86+$al1~X( z&;vbXl~v+UbW2hu*RbxCTtc6BJe77vXp)f!YVIQ~u)+r(1pr}_GY;%nYb`=4bV{1f z=OtwtavrH8RA%m}e*Gd6|HufMggk8vj+wf}NpivT7DD1g$%&EbGEjN2a$3eO9INK7 zU#3(X8CO3%`CoO@L+!doW5WY+&7rZ;sk#8r*i29LZpO~a3vX;Z_GOYc_IPJ!a+`Kj zheSFv-<93#*Ms`{y18)MbMQ8od1>X}DpO7ZA=6l8-s!x9y$4v|qlZ~l=tEE=_=C(c zGa^I2CK(ib1ZQV*%$9m?JP#lL9MNt<;|iNnqX6Kd??yfY>G|{M0Ce(AJpE|@etx`v z91UkPk<|v2Te2d3@FH2KcIk;-z8uA--LWn8Q4q@9AAKf;oRSuT+X^~=Klhdt@v$#B ztQWg6uIbd6q8Px2>lY= zJMlg0k()(s~J4n=?IS#0V@-G3WO8>Zir&wD;KLm@5Mq8a~Mb{Y`w z5_P_mspz8ZE3>u2#!$axvYq7oc7|v{GdteDd0q6H?@U}47_IdWO z$XBJj!D;H`j3XMX7Pq&Dce>!$BNg(pd}*EAx`I&)>SyuiQJo-b-C4rqA-edQ=49_u zR7+%3pS(T6eCl#1ni$7j9%+Rk5)M$QuK{++qI*UcFl+aMMRHNe#w0^M{s>e?0#o`d z42c&Eb>Q-TTJzFdxxmN(PyM>BvmELS7?4LEgBs5M2`RotzBUax?q6^zi2n1Rzuk@n7Y9jC6yN--KstHy8_-0)JaTWU{F{3369VX zxP%Q1)*XbQD`C6PJ17D3cJ#zwCEaUFp`L4qzW7;JU+Evu($kbQpQlE`58^R=#jlu{ zT$M@(;9#)kW# zcMo_F@>6>f8Wzf#s38k~!k|~^sLI)uLsQ2OEa;mY@3%mkfx6{FeD+nCeOSi>Zm=4K ztXTm&zf^>I$D(AV-=u>EIjv7sg;f;Qnqw++(z3! z**ZE{>#)!ntR)6(>BZo#@hx6)10=uC0v;Ng^ee+gy+_LVO+cTJi&8_spNQABjeb7?M~aX^j)~R@FAq|unDfe* zb?qto3{p$cO*~=yIuG; zgfK6u)r@h??+rrL*IIt-qASO7#l*$8^*&n5nTt+3k4LxV2@BL3tU)k!M3nw}>9Q*s zEfcePiWB$o7(Tp>RidSPa7fc+SUjg~+V~O5xa#q2L&{Af%|pU-&kr3wCHbmMANYYh zxK~mJ2Utu&)W?Iz7&!!+*f$2n`N%Qei6%H$vcPIiF&f3W&}jr3FOm;HUZ*idFjfWc z#hXy<4_v##Yeu7$&QA{LCP2&&L8cX8X4kH>)?SE3z;X9)##*c>9P{T4rCG2JsG!vG zX}=1F6T%Lh76_rEYB8~a9`_JeO)NQ4^6OK|jTVJDY`-3f?)P>}E)&cj&)E<(bvBa+ zi=;?=CH$JksEYE0>S}5wTma|yA>P5bKg?TTwNXSlH zUi*`5r&_sMV8m&sK#SPbe=~JA?KD(ga(OmfqSTYSY=J1tkdF zvVIZs68b{>knB5FAqNQ7@1pVQKY>F{B*6{GDKxXW|9U}7EFaTA5Wg@cm9u)@%7)v;}g0d z(A4O3d~!G(jlHg3gTfR#%pWHYbdc{g5GAN-W8t*Vmyxjal*3O)XeBq}QLW-xUL6Duje<8A#NixY zNiub_XoG5MZ}5l)&o5B7_jui)PmI@;#(NI_)t1By@S`fh^c9XW9~(Amw9DG#M&?p_ z0!N))Zx13~_gla97Hf>$bn%UdqunlYq@c007}1tO1@8y*yR^J&v5NLgo^KE{d#sRD zDKhZ0c{I0c%BaYZM9Ck5wqZ1gB3((4SwRcGy+vr*>dKl=cLh(<*Vi11aFDrs%p|yP ziC~I_ZHMr$qLG>JTcd4f{pugh9;^K(w93rxO&hM}0|_6dsWnZt2ChqlIb^F)I5@aa z+YljS+@z8Ef~gOrx`|+4__RNMTZ2Cdvq3`~QN<@sN{KLKh%Xd<)>|WuEVcLAY3_}& z)<*aZFay@yZzql(LDUq>8gdzqNT_MF1*gA~ZfT!D2Lk)lHW^}Vx4P*NbViq}niY7H zKu)`fp>-Zd^lkOIhWq=Wq}KY}Tk&eM6|bdNh0|E*$cXAXpga53JQFJ*g*V1%frKqq z))fl0NKtTWGeTGP^>eFLD2COBaL8G0qA^|&*4}x8uS27{PIys#L)^07z-Y_HM*z7Y zUwhLgqP(1nus2m4}-fk--a>=Z?=b&9hX2l{FR&w;)veC_A>-sY`` z_(rD|KCq5_IyjV^x@v2JYBM(O@lMA?RiRTKlcMUEy!DeG z6b9W4YPIyTTXWXN98DsxITgs|(wqDW-=1r28of)*qx070r*X)m^^i{z#PiOIFU|C^ za%3J+v^|lR*(oSb%FDS?PnwPAfz?r9+)?#&I>JY<2Rjf)cWAEWbiSzG%vug8mrcTt z2`+#6k8y6dEb?1Q%wUTcc8@95pV40b3R?@MMqL39{=O^B(dF1AflL)fggyTk4h{gNQRb zPH4Je9F1gcX013u6P9`st4jUhX8i z_G($@L74!;=_-8RrPLF#_wra_omr>RO5~^*Id<|Fu^s#BCzK!^q;zNmTYJzMV9Ca{~@dU#i!iX;YY zF=*%UPKWNcKW;G{crCg8c2!=LJMAgV`*=$2k59)3t)!YUmHhXAo?>rKhokZS_0jO% zxJ51eG&~KrRuuN!n8#uo>k?BX7kwpS_5)IDO$ubUx7h>X?e)SptAPGLhnMEdS6iC# z(P(&bHr@|uVGpU#KnujhJVwdJ{9<5z;SYI`zTLyUwmL%UxT32}x|>1F%TSRbgFQlP?WVvAmpSmD(2G z_;b8irfe_TVAH#NgQ~4;Y<}L*5*FwQ{KWI<^mcBu=<|k37ycl!@M@QwU%2Bv?&Yh# zsUJe;DHN&>jIxlGWxU3#=FBIwMzRuC_!Y%<=s%`EGG^81p70ktVd|GsC#$!1%f3XNBL_>hdOEo zw18nxHPp;vY5eUVx|7$&ZGH=@#sqD28mOk782+hSW(d2{dnOG!WA>ljl4?=?6c-7W zA?Vhca^?4v#Q_8Vpj(#%nB^$8G6aLI-%&}t?(MM_WU>Z)n!t5Xr?&A`ZQ#+hVf7ZG zuf%Er@V_PRHJYrCWWn_qYfXlI1Ph)}fy(M(jV_$89?|jNk=Tx1=xsY{eQ#>8KY`44<)*U#vs^nNiLLQQ+3h2@&`25|{O;yZ3 zD7%4QzE^L>MxI#mR~jmJ@)`TYiic-(lT#JpY`A(P#=!Du8D5kJ7Nyd5bP~gJ1n|8A z2(HAeEA4eQrB*hJy5cJV0`>UtK9wd#O|gT(OVjN_5XM4@vp>E9O-E7nai6OS4&(nx zsF;B)eqL(MIc!o(-`g3?7GStJrmA*Sq~6fAz?b#VT@yM>A|N}hq8%tnZ@as$o4BR? z(OPQVR_=?qc(P0M;w9cC1KseaKjUBDe(R}!dzRq)-LU-YUv_pmW%7HNX@O~s$X+i# z|MkUA^cH>u1|`m+3fuRh)Pu}Kq57`#ys+WtDRLKdrBgEVMuyKZp57IJ{1)Y$B_!dW z|1w8AXo`nn*KwMy7TBQOtM#x&CbfAqqbt8Y#<1H+1x^7bwdwF@Xy=zogsc19yx(1} z!5T-o`C7%Oaf-*^;zi=p0h$yt&yxR`Gf zH(g3;*9)rg&?wGCI8eLt4&)WJnr-!Hj!XL#$60>WcqeFIc({j$rUUv!J@oU7t5jqu zLmm?mKk|D`@q^qr^0R(5CvRYx?Mson_KLv$~7v;($wX7Ge`S{S35 zkX@0qP6FEzT?576m5SCGU^8Y|&DJHJJb4U`b7d3^NlgXRN0Q)Gf0#7EGP?=2I-~s@rr8YGT_LXw z*FuG{68X(J#j{`0ARAsevWOpE338oHl-FVm@1mxH@P~t7vdL}c(+_-CqsNM1+Ha?9 zu6`a0Af~9RUky<=#;BWU>PG#js~h#BsUS260X3u=xIFGW(-_Zwq_K@3ysMPVN2XG$ zDW)l3ZH@-BH#1|sg2;^WTPrilh5=@5v|)V)UC=W18FYcrWWfNxATNrQ03~PgqtF`8 z@9$CC434aS4zuJaF7XvJ)wSwHzwGC$o0OTqiL)N_M}Axs27P?60PB;bYr}tUO zv}T0*xG3`CY_+8PWA6~u>>mkBX9q>TFniN!j0JJRUw`f5>t(fifsobYw^mk@4T;s- zIOXb5F&>@?!>>gJe0A+{$XmyR8Mgp&c_(vgxW^0q?(xM(@-^G0A5XQaDF2%(8DivN z4ewij;iTXHu4@|mJa9aCTTU6F3+z&yq%nn&rZNh9q2oU@kFl@N07v8211aW z_VUdG7oA7oas@(@-@E#BYv$WDi;gZQ_A``Tc=l5JV1F8m~ZVAcz9K&Z9KPmu;=v zZTvZ@wqGmxY@V2i3v9nm<{es-N?MZyq7SUeiZu^$f=7A07@F3Qn9<)-BqwT(Ih$Cm z@#ymU4dym(zs^=I%T0~xoRj4r5co@Z``{=+v zeQ50S{JCVOxWqR!Vu)}rlI8d4#BxK-U?b3xGcm2(9=;q6%)A2j-njC-h(-0p z^5X?T_b_J|Uk#MXE!y9$kw7vnr3u=Vaj4L^%bPEB_V4rhyG%Sgy((O}@qlV_LoX79h~n_j%^yfQ#2tvcAdePgeaiN5s24q58>{>wVJ@lgYgWj1cmiT94?WY%@(f=_SAMSUj zg|oZ5FnS^6?furj49>Wo&DZSNquMIoA$?mhV*KWGJp5Zb#;u!k*L4eS)z(DBv&QA` zvS~|Vw!jPQ+eo3&@zMF@=>51Ok$jsuf*GE5;;rU=eJv^*ySz=`rjEWn9{_kjhrg$Q z(Rtwkb%Nuu1Q5(m!_&zS{1SdUyMf<37zgX|zhf#OI;Z3F_oqi4rxdUrx}x#?`8w9b zg~2r%VsiKDY-5C1-`UJZ)?{7H(T$=^tN~E$x_)=zh zwTa$&0`1l?Ue>c%h-1E<$>IUGhRtGEtq5i^S?wCKnXHzMyxrxPjMGUeaiaf)Hks5bVf6ychA7m6>JVn^x$wfozY#(Gdc^pPw#SuMI|Ac z{bIL!pTQha4K_D3^j9?}#&|KO~&1^P4zrW_jMQ$XCnvWsAUZ-GteM zb26=TGd0w_HhOUPX>O~TCaoCDoe#7r{?)CqwoRU>(h}sn;>&vTc_R=yj_H7zkBrWy zre1atQp8FFikF%ID9k(eZ$4$mcC=S?Xvk%-v0;<&wvV7OQF~)rz0P<`P1WAqGP)X@ z=3QEiVavv?yIadH?GCsF+^MPb+B!Au)J&Y>V`4wOBmxVz&8mJEfAOqSllN^uP;FK3>BfANxwlg^Y4<-MMg7 zF`8(#dckz2?zY<6F}kS$V#ko77o%|OFko$7^!lh`>A&VMol?m>1kuCuU+TNn(s7;9 zJmzR?AFmzR+RHR3Tbs98mX8Hs8EPt8RsSA^VS3HhCQKR(%+4b>8nvy12h1N|lr8|F z3mcot<(cqf#q0UNjpgEq*Knu+8y=-tWmcX=w$EcfcN|xL1Kq;*w{YAEZ!^aL_qNgu zZ|`&6qV+d0ELm?8%Ov%-u}o2K8`}hJY}96YdOK?-r~i3qo_4Uodj8yHFgq3}htNV1 zf%#c62rnDzVFhmk&FA(Gqa3a9Q*^MxPtmb*s38AbW7CyEHD2$(VZ&Y64Z~qDr>VOO zI+8X|W1%m3fdA~gRm~Y)4&EP)&L_u54GPvA;&6C&=4)I_lhIy<$eq|)_qZj3df|qO zuS|30P~85;LIby~P?zw;ig>F()w_q6i;@p8Uo5f76f=Uq|caac@?*CiK6`@O@htu$D0u?#}aZsyCI zAQwD`Z%bkPJyAc#*(aU~cnYwDV3+(e&$s@$#o)8dvx0{OkJwI_Mf}kHvQS%{ua{Z# zyChDV`)6^&Z#;{aIe$J)GQr2e(|I7S`HS4{#eWqn8vvp_TUO_i&*JBx;A|%-fLD)Y z!S9M7FD?P>N5P}RmPNxfTDOGY5H2{$8d#ewBX}PqW7dG%VAW~1Sn#w^YiQBC-Cg?0 zcG+ppVYy&|l=?t@uOI)g4Dw*Xf;GIbcX$S(d^-#hkMa z=vj24Ne~?-x3X9;Q7)HR4l?R%B>vCKJPzl$AxIVeY{sfn307n*h$8%f2v6?DECmG> z0|xvM@ngbQgEt_7{T#4PsQA?BvyRZ3fq!tR0oC_fgq<}9z>W1?M_Y|#7U!aXWjW^q_94sJBFj08(^`& z)xMo#9*ei{wdDd_^-V~+I9A_xdrDgsF3{s;P{faM5*M$?B#;T4!HI9qZ`k+jPlMlA ztK%8#ej`^z-OhOWu`X&Rt^+M5(?F{rnqwh&!ICWdR4)4_)M6eK9RXmZ9X$t0$;oQs#S#GE zE2rv#dvskb8mT+)N5Nwt_FJkG77QrWuLV@@i z&UyGruvs9A%A?j|@P{8DpLC+@9P8fT!-JuVE-)iZwS%g-xB^fkn606#@^EXY+YF@X zGS^aR1iv*zYCpS%#*F|PZhI9tGwikls}x>?`qGHd7inC?K@$H1^=wYQ1#BIii1IS{ zCFmk(Ctwm;nM2Blxtbfx$3S51=%Wnar5VMJ>;+w>0>|?_%fVlTVVMsAJ1B7w_4U^a zhzO6IMJ-7MrmTRE@=A(-2JL83K##M7;GPF* zl<@r5v`iAV!;P=xb2e9h0SL@?4Nl234A@y6VOK}j#>b>!GDgnTr}qa`X}*NNYo54o z!Ez3A#PD=xoWhVsCq6nlvKPD2tO1F?_{r}2Lz@o9D1{@H^`j&F#QBm0OizM5D^nTE zrqg+l6p%M8mS7h-h@B)*F{XwIRRIH-Z}%H!gULNSVa+G1K!AsPwqw4Sfm5b^=i{qO zsjmQT9z>A!f+wd{sVp!CCI&JX2$y9JrXsyP z!&7D=kXc9{Od$+V$>zZ`LJ2e+49du>Z4u1)HXs${f`U;a9QX?zI4;H_Ghzx%j~3`k z(s+u_r1LrAkLA-qKENos*D-?^>A^IF6XsK>>xypETNOGT_u~6(diug1k``|ZIC|k z?hY9rzyzP&mj&o5vomSjsaSJw~o2ZetOCOe~?66Wji+*k;|6 zyVHvc_S>k33IMF=vn-E@DZK`)o)b89gvyM~DVWA9x04}{A zrYW-6LElzly|;){FvVtgR~Rr)wnL+9yRrCaz)=}fS5nqv2L!=TIR#fOxZisqi>d1o z_Uo^#@yw`CY+d^HTPDg!2+11WK2$4vefC|Cwszj_cGj*#9U8$?V>p7qpDGXf?Thaei#q#<2&sWo*hqreZ zqw8j+jA1urxQ5vQqvz(6FF~HdQ3Sc87cM;#WMtS~;5iT)Kl9|(1x|62QxRMcW?90l2^+ z@*^Qh#AROw_$jai?*Y*fCR@*3Lxr!OsDT0m$j*hy*Cq;C=TJv!AXBp!sPq{m8W|km znTl^v{zUblmM7Fi4;OHHlF6f+`av0ZmftgB;AFfQZys>tCBLvxd|H3Nlre#vKh8rfadL|UyprKH!5)fPfu7HriaEjhoEPrsJb z8@69%|8CV{LieVUKU0qt$cx2P*6&qu{GqfqOxDRd%s~K)uC;!4ZSHjihXD2MW3n(|Z;aM=1D_on^61;*i@$+{d&V z(?B5gD+?fx1}h zccmDOaJ62+jqJNcqd%re{E6IIUuL3|2GHe8>5T>OPn^5SCY@jV{3EuCD4$d|DHc1v z(A4o&j`-QEdZd+&3KBe=EkcD%$*%=Wv&hs^XhrK=4ah6eE4&_zRE+w>Ib4(prkEIM zF+}O?*JBCdEDKL7k*SWlLV5qYhaQ$_#@|wrb~_&NSuvAZ1vd0!r*Z@jZ(e)V{PlGb zT3aO)E}Ox($})5|9H)>z{XcxC&ty0Ep-u}?`p5;(pPDXmwcj%TT9MGA^YEon>^<|< zbh7Nm%*y8$97hNl{n(pOc@e&4ZlIUx3@vJDYE&p1PLU}1|2Pz&+;$WdRn*N`o6YFoO)~8R~=J5vpZ- zV1%j*l!Z)}SIoTh)g()(%l2K&yr?-li($7aYO1k|ESJ+Dvn)yIp2o#o4bU7o^umAj zg`#8tFz!Up&eUUH+Rfqcg!|W-7nZYaDu`z2k)q)GxLZM?jqg~Hlf zsW)4*7Z!>p*6Pw4caCN=oYSCYkyEc~7q7;4WIHvjpt~g1VA+O%(X!USwJp>KHEWO5ef*Q}JnCJwXBdYqM@``v7f5z!QIT=%beh%`OtQhc$0!O4I zkHG2*RHZoe!y#T7Lnci)w8AveHc-F}1CWm-OaXj=+}1B}kI85iM|KO?xqG&zzrIyW zk$1~|_HE;E^%I*`eH(p1n2kHKCIIuYtZ`!bxOy%}rMmmRB0(j0Rw#b+roKjg@JG>> zrbxYQ^Gt0x`k-_Kuaw!v8QW{ehqrbst1%-#@X!BvkK^#yngyy)SmQUo4 z&9-miJTV3I8}tVq@C@KCp&LdZ9kU%byyU$Jcv9NMSX0`gzMSE`>N~L zV#7A;8!fe(EN70?0PL3+R&bZ2yCIG-$}t+fp-pn@Ml|XvhpH)N=hAI*QRG})UtU}f zr!>E^89@zumy+plG0^9T%t^hreRQt6U9<{y>wf$k(>RuqYMUx!@VxJEv2Qrq=17G3IWRH& zC(!+#fEduwzIuF-x+t1Meh^>&YrR`*T`N?ta?{OSm;}aY*$AR*Lzppi>o4k4|M=~H z7rUKd+6^)PkD|6cCA%T+_IQo0l$C7P(<*V~?Fq?Y1JwA*EvQJm;KR=$r@Fh_x#a;= z`H^m|$-&tq%a)ziVcT0mCmPiiwvlw%>7T8&*T+JaUv#%FuSxNGy&BY&O#{8(y^yU^ zc&vG=(F#=%>vs;i@u04^Ae%1K`(C)mx(SWbFew3PZ(tA#!jBP!2HEfd8l&Vy{nZwO6l`9p>5;f71KH_<4XCF< z)wxPvD@`=PfLiF5kSgh=80$M?N+BVCd76TA^qUfL=>gjxZC#qI2 zWW%h?<(!cBWvC_HMf!&XOjJq@sU!uW;O|BDY>YT)HPuQ`b415M#Td+yTD_otDX{i} zi(uLA^6(8O_@AimaO}6i82CGI&7d#2sQsP1>8PK`ccWA*^+t{PoJ0}%D0-_Y)`ljL z)$b%tf4LZ+Plu=HBZNDazo8Q}6MlHoIqaIhFD@z?(sJ>Ll7py$uXnx5Yy3wJYH8V0p@>a#$3e-<+IWo&5FU zYI;5V%g3|P7=Lf+qfiYOV~!x5|G|NOyRUqRXWfZcA=Z%Z*+I62_3DyG#tJYkLGO%! z?~*F^701Bk?PNPuX*;#`!Um^7x7X4`-GW26TToY|osZXlxgPy;-I22;_yRe;hd}Wg z{{Thumh7|_Bi7ydk0;kZb>uN{$BLE+UEPDtI{TY%a1d+$7=XrOjx4-j z+8J(C)~jl8J@%^4ssYIN;0LU8aL|Dt@+>P3GcsH|Ui4r90T+TA6va6>4$t&~?*McO z6krS>jBC3sEdgmYZ>3++S2W;RX5dli1=g&rUYlmlTre2I^~b9peXq~fhnQ5WY-yay zFMZSKnpzs;l(Tn&W8b{s2Fd6pr&WxW5qtFE!`*N^omNb1Biy%b%_)3a>?7TcZ!fNY zS~WQ8{9hA%+4{2eZ;e#JZrd;nz2_@)A|+9hz1Y2-~{d z3NlEy{f(2INyDFsG)GSazX(+}_$oKxFu5`Cy=$y&8w9!I-yJGzpf8y{&490q#R9JP zf4!%iaL08cFfB~z)(s2n=fu<74=Ljn#R4id};c;4$dtni>aEv<$@cs@9_(bRm zL;!|EEsGisvS}PX>|&>pm-)m=%2hy&z}s-ZLp`umwb#F~bO5%-fWZHbXT<2F_p;=y zlf~IWD_&4nSWPSVT7g#R*f$6;&TS-u_k++}5Q*b(Y!1B<+?Cl{ns*o6kObT=I{Hi^V*CDn1;|?;_Q+pN79bC^P>wic3_!xVjxr$LepcR`;v8 zK3{)nTz{A>jrjlZ%osne=J(^(B>rsr(fDpS8eSe<4^NDDlWFwK`0c~w_JgtfFn^rh z8MFDycpDk_V+)@92>+pGC&}ow5258Sm!P>HN3J?EUj3 zSNwnS@cm+Ze?MMO5zF+iuVY5KUwt&@3;v1!)kp5b zZfX1^ck0pGmQb6`5~dUY@@aD*UZf;fu4^S2uC% zWH!7y9hJOzeWrSRa{7bn@o~(tqiZFd^ApwMm=CJQ=a;Ide^WocQr7TFnfK!Suj+aq zoei&!hsAdXe-b!&@ccmirTFy4`T5!KXjG7k^tsgi2Y(j}`QPH7|16bxs_d!w>F8X^ z`}oc2$#8U?NS^YWlDAhEN5{jf?@up;+Wc#=Hdn8X&d!FH%5FROw_^V9E{C!1Q0Gtj zQ|?KD-oJ>Rso_GI{1HuY{$~z7#_RFWEYT9pSj?`j zWab|g6wfH0b6yq(;P7wPiM&a9UtOFHU&XVc^qgth^NVCTRWR;Ol?q!Hg0r)tZlM<3 z94p!&KYTU3{yw&)q^F7C%Fhz5B=@geZY&#@F>8mH!;^FA^Oz~>7boX&3oa8LjBbu! zU!MIKkGRB8kXl4|lgu|8HP%29zoC#RQ%ELX#e zBSqH?&(2OSu1c23klhmP444;03?0`~B zS91&-9WmgE7*0YzeoEz1eJslCc{K!gxOWUM;4*mBc9(nN?pJffl%&Om$Wh<9s-D`L z=6oXZiO7BviT|aP2BSeb-*5ySYmjy|ND&#(^Yo!f8s4POP3U3z+$240dIAxXrUsKf zH|cYWKDX#|i$1sLa|>#m3bjNc77?+Chz(6bAKI9z=&g;nRD?rCIHovdP-X{H1~tl| z4@s{YE`DPMBqAOW@kAmXmFp2Hk1FiZ=N^6T(T6^L=u521GC*f&t|WiC`!;C#33yL?k34ArT3QNJvCN zA`+713}`MM2t>>QRc}DH!GJXUfTpSeY4`yd7z3Kx21JD9$23JEBuFL+l1YMO(&TQM zM1-WsBq=gUicFFs(-Mi0IGH3)CW(_t;$&JxgrvwMDKg1gFkxEQA`ucTlSIqJgoRlc z77+=XNy28@?FS%9rs7Qh1CZ#$dKN1gJlIM^r6jFsks!&K34M|)>YKfeOt4uMoMpT6nQj?JQ_tFjUvxQ3UMP+q;oxwNI9V>fb@#&NRL#cM|Pw~ zYZ8wJq(=kNqcP?=AR@Ab2AfBN%?rQ;B0_4^3-BDng6c_K=sBK9gsM#g(j%4ad8j-+ z_wa;B(cIwB5b<1*2u&m&O(Y&o7@m)&;R(H^dBVdykM8Fi&KrB(!0&E;Q)O{AEiGofv#h|2!SV06y8VqViLZWEej1F#)JE1)2 z@&>Y{h@Cwml~6hyux5rTf!$z{*jskKq)}TEf(=2R=axh~f#wE~g_SMIkL}A{Q{Z-N zL4i3wrAeVqGTvjB+KjOY2a=ot*#xf1j|k#wVj2ako6_#{6A8rUaqGfVb;Rtk6)fhS zmT)>CNw*SyrvgGl#|{ME*d+2kY!xraTL6`i%vJGk;!{AHiKc01Ak3Rq(my8VZi|^c zqVz#-BW>8^l!KXAc4Kjk4ALp*z3VxvoakqA$mQtu?= zG5$^Lb-h#u4jngSDbEy|R2+x0Av38#+lMWZw82eO%^~Y4W|9i+LA5QY8j=T#6btb& zmYKM2hh*IFX)=0vBD_@CG#8>91|+mTI*CSy4dWO@tbwStyo|nM`P}b-`yFP#VYfLp zPvp=dbws7J-~0l=CjDvq#8T>e%ZI8IYl6Xx*#v`{SVtYrMx{;KI~+hzEJ_6%BJZ+v zj5r}GOdNo73j85O?UU7F`>rVW(45p9`p|_g<%#Xb@YD$wYxyxUx*JWq}QSjnW|s9tLE{M1dbaUM?jh6X-2YCK5p; zsZE9@ev?iY1dh}?S;#h-3;w_nWI_;ybd_U@&9Qi9(ojq^B|d>dkAK@zPkZ9Z&t}bW zGg9bpi&)LZxs!>AaTwT44mct%>TsBR=nz4li3NS=tGoL!w8SpnzA z#EebMP)d1`g=;~r0+`jyW?8Pg6aEOsu9v9*UZ+C^Shgp2cRckbIelS5WrN>0?Mwym zq+}Jqx;yR&fw6XgDGH9}07=ZC=jD#7(5UW3uUet||BJF?y z@4|N?E~(Kk{P+i}U9yB+5-?uxW4)eqx*)N6?_(*CPPe_R(`n$RV;oCx+m@6yN)N=e zwA0y8wS_L`dmr8cC^&Sw9U%3xPKPfc>2#qcFxO~a!H6a`YWlg}cc}?3<;*)>(D-@p z!yCbmR=6Ar&Y{>`4n=iOMn6qXE>+udv-$|W3ZLG(v~G4oU({^i1MviE&`k$>-s!pT z4bqahsd&Z~{8dd|Q^K-7^-&ouT~mTPD!1~ikhAhIj=a3nAtA}oD^8?vYB^Zm!GT6= zN2cJCw&VBA(b}^|++R zU00aBeCl{NAPWmCA%iS@NEjSU2Ip)-Dkxd;Rb`4^&z}^CxIrMwx`K$G*Rw#RFukSa z`rPk;`yDdw6>5Usw+EhF2SumbWzFFgoQ?i+Qfnp|`B-y>S*JUa9qPe&hq;=~5Ntcx zqd|pE_h^8)m{DAzIRVreO*4U&GccfP2Z6XUNck3+gQ8gwSox^&U6Fx_&IvNU1vI7t zQOO2S76k?dp`_qMvp}4T!@(eDV1P7dpi4T-4Z#iA!C0DvVsmJqxlYDF+eMFnAQ_a& zhbAcv6H}l+5HvN|=#w_|2kAsBve7raO#FOiH;V(%%obRwb#FQ;8%<0Aen|G8nHtmJ zo-lh68%--^U|f0GnD)s`@q>I_<%>M={hW;f4gVmqEld-ZA5)lQ?D{Zy1I9gGJ%+Tl z4$10e4h$!?fa5e@n5NrIsnRYnP_WI!#xD#wj9NS4S#0bV+6r5;$ng%gNa;Lw&-<$S|+!_Ar@D} zMz%aeC~5ds-1zj2$bY7Wg|a+9aA>$9aCI-S-Bj# zKD?6Y+*jhW3ImclN1zjUw3aa4jFX2UzXu90DY-^qQxaPe2N^$;;vtDgNKzdJ*_0O> zFedNzlwE7hw+u=)QrJJquo9hBzN8i75$Dr*B*Vb=s`s9bKSZ~`s6(m5J!awnr7&-~ zb&RyZENmoODT7GJQmLxnU>3%?YNy!{H<;moWxK`j-biZ*Zu1!NPkiK4u_4*EuD}!Q zXg1jCl=2AsX>w-8W;R9|BDAu-bHRdvlEQd~axB^Mm$tWsEp1NUaogLdyn#>yWk(A< zG4rZoIDOjEZn>px=-ATE2dvOL^2jyGzT|hQ)4t`b7`XGvw;XROpEa)+|aNTqge3?-yFC!T#7?|mR6?AMqHJF@Kuqaz$c$zu)#Gr>p z!6=9?5xPE5%sYjVi};eX>w~Ocn6`1H<{);{<=E?UY*fz$h4pGd9$a3`EKcyC`O~>T z5VrD3!BETvtm{L`*OSXYs^@bbk}wy5CkS8}NJRXc=U^a4lf_TsP~+$$)r8KpH`j^a z3^QJXES2X1VamvB!Ya(V+u_ohx!7a@+-A-+7Kfd)QIK0UmMw*P^f^`F4mh$_&L2Tl z24YPHnLIFE!F-Jc+W>Y;kj@B#RlqeQv@<3%VGB7!6ht851Cb|1d2m8bW;okG=tq%= z$tfSx=CX0N!64TvATEt!$b+Ez%4`FN>n~S|WelVNm<~e>KzwLR9c}n3eZu-^kaagi zE*;BGF3+lHenB3X+c+0LdHAQ@ZHf_U=y#?=(A}s*$jK+fUNQv*IgtYegzh%;hKSv5 ziKEzlmJWYjpQF2(XmQ;Q167{9T+ZyYOqocvBV3+l@~wQS%#47Rx_^y)A@@1f%=7j*y-s| z6`RBLKC21z8#Q?TOdgKi})C2|( zGjBNk=5vZPkj!#FmsmfazL}`AwR%7!#K1nl#`R|Z( zM1&&of_+jfT_t|Dz`YXtL?FT#$UiBqiGl+@SFUBM>nSzoFt^Im<(pM_($KbdI5y^H zo~1gv9I*2iw8TayZV z%ypSR5&1-9mxx%1&So*%iNGUJ%pp79M_4gpumU_WDHX`W!KR z!nv&=joTB5P?!-drG5I`$B7tPUR9<1&V6m>#zYX7h^-kDdpd0Qr#uzbr*)Y%5kUYM zpC$_~zKhM=47O-`wcsJg0-RhE2ym2BjtCwel1rqR+Boonlz3%f-(LzK#d2wlw1kLB zv97ks8>QHJu@!022S_P9Yh+;v&;;Qi{Fwqkal`?xJZZ;=`~waGkGK?Oj}>4Bw4~G) zw@46W;?lHUOdZ;KM#?`o#n>hbjv#W=p>tVE`-8$0N*x+yj(Gf+J){}drrFk}--r{% z6Ly#s@uTd7rce`?4SbYNtP698Gfs-6`yF}eh%QZsJtS2_QD{(5h@cfz7MJ?sK1*3P zK81sk{icG%b4*$MR-Pgtm7R$Jf5;3&*fmbhI&!R}n`Prub}E)g+0?Bz5iy}c#j~+C zG1h@e%mUX)a%jl2ltukh>LFZMu#|+%h14U@4^l?N3D|EzJ>q1H&6Q|!DgSw1E9nS@ z%Ne5VzyxK+K`@>m0@ql;zPOi-_bR_iOoMjkcLmH39+Pz!1f17@s{RFaYFY^ zlujvP>K%*@n#!4V4L+dLsZbF|198JH=~b6Bxl2AyN2;}K=+;%rKm3UY$X14Xv# zly44d0!>0{$7kVglv1M*V(8Lz=K6Tj+`Hh_7|iAV`h~j^Tr`KKZC|hTX-92SnuK+=Jt1Jn=+rk7M$|04chX z);_c%_R-yJ7!pA&pv2QuE;~UFv3H-P;o3OJ@8j4Lg9{*12x}I_-nYRM%1kBtETWg1 zhSEdG2{=Q16V5Zn50h*-@Zj@U1VA3Z=_T-iJGSqOr&c{0bU4c65@UU8nh&%A8ZRs+ z9v}uZS0*9d0ugE{t@~V@_s0OFpb^)FG6X>yI~b(CAZ!2x@JSspJP(pdAEqX1h_QpN zhk_F04{`7VXbgyUb%DUZfIx^d4DbQX!9rU?2*TcR`?NnIY2-|r3N{-Vy_~Orr96?s z6D5&#(oaM_5&1-8Wf<>{fg%oi5#tw@#BgkRJn<=4U$L}~=g$qClhg#VDw?6R$4cRjIJEiD7#Ex#_t znFxbhVgm&Xi|azFB*K^5Xc)4fHPL#+Nrci*%HKBPiOg{MZ3z(=|LJc}{;+E0>gWL~K(`)8~$x zro0%t;wwIF*qp@czA>JBBC;h24fqrB0zgLq1hYK}Zh$`Yu(?kkl2;@--@8#cF-U1w5J^l0sysUyop0F5 zDR0P0uOxzQ`P9}xVjYJ0Mr_0$3cSJbbBTyS=d0^DkQ|dPDh*{#k`6_;(jEbvq9p1z z`#n%M$6%AAW47<3lA0v$dbukt#gll%iLOz$)q?0~Kjiq}?1WOv>I16)+Qu5>&-wHD zS-&9Qg#4=so|!B&p^z5k#0?dh>uPBFg_@KNv4p)=mZk@?(o~QWh?ZCi-&3`WO+QHw zf5~Z1Fnba@3L+4mFb#Uln_~;VlRRF|JrU#EWTy;FsYHwB7o-ki`>~aYc&$*OA9TFnQP=x9s{ss_g3;JTu?HTgfY%jZTBivG z_$;*fVgm*&R1vY%#yJZ?#D0A?6D3+sTuA|Xi5sCw1}&-}C7z@Wi6Ag0uSsECTO51w zM2hzD1E~%PprER5mV@n7mA0>_aC14a>xO($%WYFp7nP(zu)USNlfb2JY|3B(v|cWX zR`rD5p?7#^tU;I_7CQ@*|1P?1EfHs`EL&*`0A6wX3DAbTMzz@4bM|4G7b3Y8Smk^$ zfq^HSlcm(pr$t53#0M&%~KT zAQujhQb)5;BGF-MVuj^$oelw@InjiKkc|h`4HO>nB)-K!ww+v$0lXHY2I~=OCTv~X zv6*V+n}ZWlh!DfkCuUB-a)50>&BSRY1f@$Sm}m`X0-YF9bHFTQLFwQIgbhrl-_o&4 zU^pXE9axg=pd}=S>IRr-fLFuha3oJS1Pq2T+~&D~VFELOxdFj&a+yl_xCjfeveX<9 zdnw=nzf01bNM$xfnnqAdI9zOdJ>iDWU>xZQme{bafh&ht4r042?hd#>*P`A*e7J)E z438_m7jkr*@IY+M7haXTRf-0&6qKeoIyp zf`tIe9fWCQ0^gO1XdyI(Vos9yC{sGE;~+4`9LOK~vP%R3Ax@A+vT;Ph0emBfZ%IBx zjE9T(AHci9IpZTZFpcgIJmC~1!$K?|cmX|0Z29b>jUP9oX1?YRY4FR$atvi75i#W;RFS;j()qnO2&bbR>7~b3SmK zgeR&^!}{Gu6If)yz*VJjofXKoKD2!i*|ygRvB1xEUE^vyY05vBi8w(a9&Bftvr!@r zGl4YJ1f&X#m9rJ22pkyaLH<1P@NA1Geh%Us4}qX+X;}`0Y3E_}?b1&~J`wrvKm-9P zID967gW_RONEx_M$y*sNt~{HX_&`w;1}aJVfT7RQ6MzXJP)M2bMDP%54=#LD{#|r~ z8S?!C8w$D%q!jSF@^gWRDnpZ$C&FAulrp$Y^n#WD4&3}Lyq+TVHN*Jf@XT16b!A47 z$2@bCK$s;d&@_>vU+nY=-yD>JY=BKgHa^8$kjXi(JExE1 zZj71qL;xp)YVuhsC?zLg8a7_7?M9UQWR(INogwCJ_2Yfm*OyM;ZQGt zLN|S+IK?*OM2_7O;^!&DtQEVMVR#dJ*}cygfM))Q$*E8Vd?n##xp`&=xMk;cKx%RG zPL>KpR2kGMsU`-IC4z4aFu*PKhu9xxn-4*j8qzHxXb5JRvN|x-ZMU>J451{*Nd>Ny zrloVmN&aszjfb}K8az?rW))JQ^kOREH8ONAE<;01uLd>gN(8LqfAgu5h!Je0Cc96B z7t4+{Q4%RKw(JT2+)xSIhIk^DTeZHd2F#)K5W83W0@mU#P+%KUKm-!jzlUaqg&6-q z>fkW3aSv&~?-1I}Vmp9D3f>ZNzc0lY=NHkK5wkiRGI(UXwf#a((&>|Zo|JNE*>a;2 z@9UxE1$o0oeP`MA9stvGDwvrr<`6PsE%qbF?bSYViq^!w1x4@4X?+>E4Yreyjc z1L^m}#8rD}4|1L`GsrF;RS@s@5~|0tSzh9{WzxH2j(0YTzJP5VOpX52$XAiCsS0@dKC;u51+dwQ%?z5Es6k zYcB?w0OSKEp|rPyT}o+73YUqJ-ooK;n?^7W!Qp+G`H^pMmX>K&Y+XF=bz_OV&8E!B-wb;vfiX)i^D+O=^3H}EI0H3#e# zYzpBjG!_z0MPT#Ll;E9ce})=`v+Myr#LZa@v95Kymv4lo3^+-^F1w~K#$iE(>R?kB z_q@VGFTy8KTz^cN=p$ItAqO@hO#nPh7swNQor%jUED^uN!SN>3F4HB8$7ysuAI)di z(c*qG8&9i@6U-MjmqG`+rKv!qJliKCyGz8YNd+QB{~abo&Qq3M5N2dv8>LHy_lUW9 z%5E}Jr9w^0vt=psQy?{2DmXGs?iK7hH&5AxWj>dJtZ1A7-%@b81$oLNuEU&TP@hU< zb(n}Qm%@X|d1RP}F<_}cB*Gf#mw?{H}#4nPLukJQOiw^DZ4F*PfeBz z9%nq{POtFzfnFiaJd6Sns-$oy9hY(-RG*qMl5$r(ZE7|;Bq&&5`)Mcr#M*^=mQmZ~?cWQ`1uLLn#$p+vPhG=~baz%5Dpyl-(?e zR8$4*x;mt8o)-6>195M-xcdtv^H!-)lcpc?+v=t*sseUL9@0S}4NFsjha$cJ;y+WSwyRDV zP_W`Uszzz~6&UfK)eF(HX!d^fLA?gW>JusNdNga&QX*~APelGuMC@incmZo7Y|?fu zzhJew-&RQ-(iL;*lDha|`IAzf6f^U`MS=nmyQD<^xr$3QHQ^$B7{}09F7`%l4)200 zrhIcmf(pj+PL85ytJuZLJrKS*{3eD|AZ4qF6a|cLNWe9Lud}JD3EvCVzbzFJzFeo| zx2b4aP4Doo7q?K8bb!>1VyEz7k(6@lk8gXK@Qc%mq9%MpyaG>D(o#yq=IUb>n!u+{ zIg#R+Ez>Gic^6lYU%uDEW<-kJDmv{HE;^MeR;Ov*6g(*#t;Muf?2A0H6?G^jQWX25 zq88H@nyoCg%2h#mxf`j8U00K4^=VO)vPsq{uZdGqD^=R4IYpTey|XQ>Jw*YQld~W(KS3qaaddr4&a^MHiQG!z*o?NTg&9`tET?5SPYeHd$RpcaOKx z@pw9YJHGv8`Q)kbUm1}vRv#wI!+%?dS>jde8`1hOzWukH=#wv&t2o=me94oNNG_xM zAI8(iBt$HKa+Q4dCj0#7Z-lS^AvLZ=q2;B17|-se(P(@hEg#0W(eg=YZ4RH9hvw6t zpH^1NYE!AnJLAb@c>@nXMY-0Y6_*>6P&9)+zPXPU@1trGan+xdvpOy08{;2FG+jnQ zS!!x;ey-{}M(~?9{mlr+b*SXA-L2!n?&@xIS``t$U965)tHtE)<0@L_O`Oi>zl=Xb z8GE^qX_Ntvr5M) zaVgTK!DCKZg}!6_T$o+G`;@E_eaqHx$GVRrYg%Q?Ww{C|QEK)4ZRe*<{+0-6Mz%qPHWNA?&0{}oE|(6>;WqMRiS zLPZ`rPfHg%%~~?LGKC`7Ia;~Zq##KYOxeCkr*WsR+wuy}RhpqvHZoP5VPrSvRGK5h zHd0lZ)3H&iE21~85E!wV(kUlU$M%pr#pO!8&066mnk)q$1K1v9(w(AisEO5DNs+9{ z8WT!je0|kE9|zqSF?+K`WK&{oQ!B~lZFsf>9@eKaMpksO8r`))}HkBwH+-3mU&E!xzk&}GXa&sO^5>ouat7XTS67OqxODdMnVmLXoF@ zlC>(XmaCEc_|FFaLUEH_w)m>(yriwGOK)Q=S~T~tP>6?XeR*?gVoqM*6U}WvqzZQm zg*`9?$LhecFNyz0mA3!gvnd79(Za)p zmu2hshJ_YO|0wuH&2dT6VxkDg^)aIl8>wD#e_>4g6n_M0_kA>SZ~FA}erawE97Q5O zA8WZa8jC7CmMOFu5r~?l{b0Yf;J3`CKMMYxr-C!9mcWP|1KM_#lse>(Pk&b`V5567dW8-CNCcOB1-W_HWMh-axjohP-sxEIuR$TRM{=p_r)AB7AGv{pwQSVWc%7aX7hk?v$ z8OQURQQkg0zqRwY(~qx9>ic0HN_xvSHoo>dxCDegt)qxEQpAXQnQoMXtKQEKY zg{R_s?Um#!vbiI2xgOYn`}Ar)@W<5cIjmC^59)tFU&XB%v8woJ4?8e)MpwtjABBw< znFkN5=%uEEljO3|8+TJ_vnBY^t?_qlQoH)-4193QPP1PYlqh_{0)wB5PCs=KrRYSo)M#Gs zCbtjyC`)n1o@6r&U{td(F(V&LShoA~IZzg4OM*nR63u4JGEH-3M?Jq4Y8<2`a6u#9 zm;?eBeVHR!*LBzq_Kd4^&=>aXF`OP&}(RJ!h)GyP_XH zqSLWW;WX^nXL@)%orjw~p9YOI(0{9;iyRv4w5V5V3IU^GZOuu{V0kmu$^$Rvn1Jk9 zFx*y`faq=#?QHHY+HD45ygBr=x!)fX@b}kZ;}8x}fG^I^qqYV_G z0|E1pJ>y0++u8c~hYhDMSI)Iarc-*ieX&a7#+F$k-K3q{N4^K%jz**treSI0nGu?| z@7K8%1e`-gbzUVE*ZE7RaFf=EkOqfSWu~#SSqk03$rFuEYHNBrJKIeQ@ODN0Nr8QI z``$_hwh?bH=D&)|)YAj_1F$t?NQ6IbAAn+cs=YGOVrkK^oz>Nrn)%Vr#?ES!77ad; zRW^E>?C0Qdw%f3pjkTKnwa!=I@LO@&QlZ3c>e$_AduMpivbLv_w@9iYk!n{@>D7}O z+~GE*2g5yW*c$!Y%B&wAcXw_$wfk6OYQ}J_Y@sVzj7#@%JS7y2!e5zLrmHBdDS zIyCx4Rc>5g&~aCwq8sK#|I|FNLNuF1IJq@`haHW;$+ZMb(kPNIk)CF7>&loMoIM(5 z9(-bRRqa5zEB30a1`Enn|N7&qLhY0lz8!tw-qI1KqL&jvq!KyWfy60;B#kv^pT3fZ zn8}52xRNV(7Qy`n01mN{j)}3P`)#v4=+-yBL%<&lzxFKWBQdP32Cy~P@bWB*c!658 zGPL`qiKs~~`s}gX z!1X47R0U6_xn?6kP|vQA;#6J8YIC8LHYzu{sX}}m6??DO<)&R!lrPM0MJ*(pcr4FI z%y`0b)LI%Ic`)WIUZJYf?yo|6S!2umb8#ybhJ&dXZyo$gn{cwY_;6A?BP*ku14nNg zqobv*i-)`N3%VIZ)LP?tazTEJa;kY(QIl3mqd&c+dC!tIMy0Og;+>Bz%wWAJe1oH| zk-u%8O!^Y_cL8-tS&VaDGu`nqT{TE`&A(*n0logIa|Sh`0v5qX|wKv)Nh&=9}{ z&z@bq;}1?S8O>GMjB8@CHoAc`a`zHyLcL+>(;s0q?f&1*PIny?-dwE0W`o^^KzNtA z-5h&1)(HMJ+gzsAk$fv=zc!kSUn(Bh!!S?S%s$Yh+$^=F*qeDSO-q;0BYuxw(Ju?A ztmMydS=Z^W?0_{c3l~tEJJK$Hv@~f`+jXD?C=m-(@1C-tZOFIY6e+j!w>5)HbW(3> z5I48eRjkXDPuJ*KzP*K?F;)BlpDr-T9IM>et?Jl#tm>GYsjyv#w{{lxvm|rrc>eN4 z<oMkzO z+5x=%50y(V#d$cz(nO70kXuR{u!UtZLwuhZDyzIQB84@Bti_6ysajv#!@0{D4BnCj z-E|mp!N8(55NbpIMu(J04MfJIEg4-LMfvG|i*kFabV~K)({dm39~vC>Pz)ekV>drO z?=Q0yHK=3l)U4|19;Z6#U7PZugMHn~VbOy2;=I>TaN8W?t^&3C9UW%jV>@H5={qn! z4+JdS{Ws!+q+ORY{J~1E+G^8k8E8TX*7I*{B03Li;T4WHQMZ@L!mJC5`kvc(qT zlXC4rru0>B5AButcU7re8$|)r&+PYS>-X)b^ZCvhn5V0YvSRG&(++`Br;XOr2#f;bzwLAhBQoX4 zxNR6LFF3T@>`$RaKUQ7_^ZpuhMb25sRmKOLt7)9K)EX=?tkBk*UI%QLh&sGf-@jB5 zG_?DvA1TCP_sE+3e)PN2NS-h0sscOq1)Pv&to;zZp-$+2iKtxwi=edR)Ii2Fqs@(| zQrl>WH1CPASZrJi`L%#Vl(ln$eAL6%rmwv=3oczPH_WMyZn`||H^9W7E>sJ0rcBW8 zv951zD;z1JRVwFm(V;zrn$=e*ElPJC$>A>gdGvO4LCaSO-o4r>gmbQ~pmAhoF%?@L zXb=o7GRtg~q&N6n)Jth@S}PQ*&Ycf_)?gVdnZxNJF#QS)SuJ;gz6_7slAOo!B$5I! z6Cq4!#rXY?gc%_(hV!T!qTFtKo(+yWs++CViM01@7@)nsitjdzIHhZdHNTnM-NLRd zYtwQrrV>8EZ4X-oH|YG(DGA>34>yBCuRHc#qif_b4+E*f)N z`fD^VE*Ql`gI=95t)|u%$l5rlq5-q^?Ryq@=nzy6~~Jq2#Q=u1e9y!MWddPJgQ?I|^r%(7m0# zowO(KV%{4-u5-3f8%?w~|8}ajVR@qOT3qr1YeiRs)PxkM`C!n`ko5{_!CcF0N-Awu&qvD&UN@~ z0(1Lsp@x=bmT#gWmTI0=+gVCHf`SF((xxW9B%{Y)$GDgUXFPV;y37 zV|HI)@z$fJ(RNa2$cYxuKkbT5JRO{Qslbxd7b^y}!2JV+XlC$zI?{MlI_g}_5X@JD z0KgLqrj5*zi-?RF>>oAv+ygjP?ZKAR)yKr~+K;)%nL5$n68u@y)`JO#MqG<-oezrm zw{x?4T#F7JYD$~;$no>maVE};D`<$v45>d5GcUweTh|eo$`gLQ(=Wjw9ha?9AgcIe zH!7xco!;_(>(ze^`i>62LcRC=TrzJAzBh7Mv^$4gx$$KSjh(Hw;hJ?**U)_%IJ38| z`;LxWR2Lh&q$A5(#5dIAYa;VYE=v;4*gM2ipPczqNiT)i&zMSeq)ZNmM~5=fW=rSX zTIi3H;4m0TL7qnnuAwfK5Bt_WzYblvx3Cfa8Ow~rtm6OAJI-n*tFUSxQ!v(Qt#L7& z9t*(11mX0Ts-lCQEjYibQwtHq^LTX|-KnPg#fvF?F|&$R{*`A_=sfC(%-pN@n&4Sf zzN*>#_GP{k*o)%hd(S12lL#6Oi}x%}nYKT?Bu1Sm++s~xRK&QAF5nYF!p4$b84Vrw zQQOJ*M!J!r4&~;?m*tG&X^KEq6P8+>JWb0K9?!@WjLvzQs}z)gN83?P16gOVLK-H5 z>oxBKf0sdv*W6go1-GjbWtv|fi#}f|OM|a$8a`>QJDT9B5g)5D8&+F^+bufH;?BwM2{BG0+7RqmW zDA`Th1K6!*Tf7Dc@a)wdoY{oc@EDdVit51q+`m6MPryU@qT0b@`)@xaCr^;xOfZJx25j@S zBi%D$GbI}V?>(AJ-*ANlm6JcU-kCd_9v^*f8KVDy$s(@xDq98UqEf_F!`gP})ZrG8 zmi1s*EUsHzXtZ;UPyMJYYMHs!POwRon&GfXY7e47QQ2nFEd8RMD}9Y$f=E|b^)+BV zqt1(I6#eHy)xKr^@y=ehz`{I3_nS=jLxeqZNO<`%y{37H;=P)T!9bMG!*N|dPnLXq zIHL7;=t0L;&2ePm@CV0*M{A(?Wx}}4Ai`yvnt4FVh10NR?S^C}ows(LGi~3DjB1b* zZra#P$LZ0z{W5$tYIlOjgacE|w24>~TXF*alyJl*u z&1^=sB~%a5U`x&3G`*e8W%XJbeF=3F*A^RNPc6=~NhW`HPwKxjRQ~O=2!dY8tVMs( z+$Pdx8toM& z87@y*r>N>n#w*kjM-hb><%OsiMMqJxXZOLp1u-@#Y9F_)hRzZv+El}(Q@B zKS%v@pi9ox<|S5oGwBQNt{@6qfJWTRz2g4?60ea8Mo75Y12S7BFw?vqgr(k9M;v)v zVHFo@!#rolYO$y@d@+8^+NrD95oE2TQ5?mP^(W< z*30*%cTJ(nK0kLI4{m&I<94PVeja$)OMP#j3G#P1J|Y84Wutj98-fEET{+*ct=t|` zS58(2kq_EA7slT%(A7&s=H7`gn}^kJI&CQmwC6h4kSi7eiI(5i&Zn0xQ@?P3ZAaaa zS1Ir3TEFWbL@(KoQfa(ceEK*@K77lXCaM<=qswW#!kU=XU(=H>STAY^R;yQij0?p= zmvo$C!3-NLsk00pTh{g)>sEa|8BB$4*w#E_3Ajf#`=VC!*wrOvR(6Av_Zsvud1&hO z!abfCfFOmwG66BHi$Fh4tyyLyYtJQerPPd?3nadbf1;@1E1s$BEibweE)`-y(B)@Z1O#U5vY;cUbH)4lpYZSQ;K zi2Mvn=u6zy`JXoSj@|_n>z2LF<7QR4ZZvN_w})EaIN#5Q7(t^?;Zw4; zPeOOggRJ1hHyKY^XG}I?Pb11h{t?`)HBHnd+T6Ic zNx1YLQEyTUA91X3f<<=nH`SV}kNLZ(v>vDAY7UzROXCc0&2Jr6{;~S}GeQ>1mbCPx zY`pF_^qd0Hozs6BVX{7*TmtLhR7%#MgZ`||&)?}>#&$WQef}?{FWUnR{yjFsd~kp} zlg1T5tTNSxk!pUw{vDN1om7IR25mi-YUGzwQy^i*!)6D>H)Pk%#v9T6zIKs8u`3P? zYk438XKk0xwHe;A{2iTPw(?$-j=5IxcCisr!v;AmGHnZtYf+L9nW_3xBU3i*efe2q zBBsp}x`EnP?_bJjW0!U3^38Ej`$!5b3qNg(KuF5to9GpkNGXn-V=&U`p2mwpvB**z z-Ttq@c?r2|1Frk#f(#!4X@r2;*VOB7xHXtF zo!8e`OE~^6_##6WQ`bjZyOGuOOS>U=)1}NYvp#pTX4m$kCZmOu_C?>lO}qZ)+4KA= zqPz8Bq_LB(E;j_N1!?bG?b@2LvXVM~8ATnvTy|@sqr4nNr76Zvns`}j{YHhDvjeXy2j0!6FcvHXJj1GR_@72yGjt`d_31(E;C6Vj){KZY+eHk6p9lwyg zfBE=+bN}(V`+CY9oV+W=A1{p@Pqn50C_TJ0_vI#w872RbLHaqldpdgkyLL6EVQQ18 zo3OTj?g%KJcP_Q`hp_`sIC@TfcapG_E8p$Ygu~|SMMFc!!TC=F505)5u7fcf6LJM( z%9&Lbj}r&(sK80oiJ+E7Id0%E!X-(09q{I1i4LVjQ1fxl+tb*9iM4b;%41SR4VLdV z!5I_@s=~`1YZ#TqQlK7Xs_S3K1g0C6HarN);Bij`9CzoxkU3FTjB-y5e!J!8xnMNP zU(UN_EH9>QT|deCCoCo^1$%+^;^9jAY^7dWZTCpKV5F%VN5bwuP{jsqo^;~n0NKI)=wn^>G zIV11~F#QtM)aSI)g`-o0dBTbq;I!#X85n*T9&vjQuQtov5tJIri}9IhO$Ukye4Oym zC21MX+Ersr0f8rflVY^N6W>l*w|-X&Benp;aVHGyurUAI^{xN8Ds!MLFJJ2rU<9XL zQ&Ed=w;3fcA-&%VQa7SNHWvOvKKW7YG;}wnSO_yjIH&2j{QyIv(89`{vu}AKUw7im z9+pm9@WI6#*TS~Pw=$Q2tS$mAW~3?d>f<&SUa~tT+KjXbTy(~wv0AFfuf!cud#clM z9eO;s;(-t-7Q~)opk3Nrh8ijlMW^yD)(UewjgcGcjN1c2$2M|DI^93ev7DYL!VCg? z!GMK+6ZiL6uP>p}S`8RHYwOO==~-q12j73Ohck%P&aD+TT81-paHanMM>2YcCOqrG zyTfnLHc8!HS{z+XG3&NC`uFzt#Aqlyx5?R959W~fR(7pn6k1r+!&#O?2tmQ4a?u93 z+iiGg=$t_24yF)kE6D1#f;=Z%wD+}2*>gkWyeQQVT1y8H9~B&!l|y%~+^@RsC)C8t z4oRWa{rNyk;$TFT^#UcOR~uqExw$1l#g-rR-{Qa@TBL)C!*Hq4*3fmWPukI(N6uE( zZ=0|?P;4z;_i*~Mk~S9`>wSHa*g?4JyCZ_(!#XZo#j;k0U*63*82*8qMj$X$T|8SH z{qFc5tH_pKSQ|b{{$;7kB?Ymve(Cy%118I%nNRdFG;iAXK^&oQ3@&CPx~Z@qQx=sj zJmM{1Jr>@{EPvmlw)f_6M`ZHrqEeIabApPcpnPYcvk z!=o3&Dk(_`#-wj7)`A~9hra*exNNc|9N)ZAx49pyJXf(Ue3E5P&rB$A%|&m{i#eD$ z%w)CDF1YAwY^`4}lk}u-?)VsW6a4nuRRuYZje0orr(_F@709oUqv(2l;obD@`q__M zd!2}uU=D-XHqJSK4Wy$AJh$|cQh+w z!=HS3vS)lVrg*q#9g2TU>3L~JTwM>qlq_^~G07xz`mHUmt_s{xF-VngFzNyiLPa8YF z_FTC1shCGz)Nk&|Q`@xF_=o&|Jvy~$M_McCzrTZ%zf+g%C2SNG)OyvYeWgrR9x7#B zZBG_d4?Zf#f26BwY1yB95*kZ(WRDv!?l#N^9M%FEYK%S@bf@2>{CUMj7CEPdq((X5KyC7>eOa+y^Z> zdw#atee7MFvmKN&#<7Ev_f6nk3*RnjFnfD7iUV7xJTSnQ5>gg#FWg67%yaGx7{4Eb zn2dkC|8V=h9W~y|o>TwqzyJ3xxy;Mmk%u$I2h+#ZiL9p`=lksG>`3mdL7}g|5rpwz z?Tx*3RMeFHB=!8oxBO$z%!%mR&fcA~15MZ4my$r$DXb0Pe&K`Pb1O8^yK7& zsz6|G3YM4s^ZPm3Rkl=!YH48xzD{nrPHvV@sfTx#!sV%k`pjGSxw8bs(#3=1(nfEY zt}dmfTk({q{kN%eXY5Rf>geFPErc%u#eZoo&;O;l>_vWdvwTAQAW;7g&4p^oy#lBF z@#<7d{NpioA#v}N^MLz^owZj-8wVG@w&!m*g2uzm(y~@JCnp!S4pr#YE^ozKZ#zy& zgJ3o!X46njh!t58(9qR4>;#^QMdntAPgLA0_;9L~Z&_%%I%vNeWiTsJ^H3X5{AlR!OdZ=Q(<5BvubCNl(6sttqm9eK>0_ zAObK9^+O$|>0@h-rqAHEW^X-bz@^{WoJd_H{uP(j3W2mpNf;N z-tRrzzmn;?xp9jN6enE2tc3wM7tfsW|BZ7Y@A(73xx|;218^?l0GtbD>VI%98jAIj zJ(9-FpZA}fsQ9%kCaVsrqOTw+_x$CY6#F?RIx;JtN}2}XT=wym zL1!tJ{?Jn++r6eX_i5-k4Er} z(d)w2_DWk*o>`By-FHe+jUQ02WZsV$ORVo5-5zSabCX8AhbBHWL8M~Bim;E?($DtD znrfL)i2W_lZID7r{2!dl_oH&f-|yG=!%t4nltU}3SkwRqrTp3PGh@=prQ3ZmMwY?G z#)ZgA#r$Xp-SG3DoBiD0Fkc?TA1|u!H*CN-Li+ivd_95J#q$#P<*BX-3o15o7Ek(O zcQY}T?BAwT9plWktw5N3IsLQ0{qeXxt-vmax<4-&+pwm7Zk(&BA~s9m!dGrs!Icu} zk8vBUrlaEXo^oFN%#rj5QUhvpZ>}ELhb9bwH13vnwhrwiE*YYwQ;Qj~>Fs=IkDCp? zbR|6NO`11q5m zukptymB6h>2!*mQLqJam;&IBaAfURVR^F3G&7rM;nYiRPmMi6ck2C+vtw@+B%NGo4 zKnS#iEhi7e%8@q<^3I(HFZj+-l7>?062sfv=A4|4OQ|K3l>rm6ABh;XR5A< z3e!N6_eVs<_&??-s=QC_QbuYzvOF#gD*XSMa7XZ>NC*MKXTJ<~f(<=BBp*HtOMpdC zkf^Zc3r6@^ZBc_{OpuN;LMC1-+O*DuBBW~wkF?q+%4{2R84?J~wlW~kTpcHKX~3ll zY8xY?YZ%w4)7NM-ARN+Qt51Oq2BU?E3`?6PGiluVMvmiHc(#%#Co+)Cw8G#rmgzy* zSIBHzBomx`-sc3sTyD6PXx9AFC}U2#>L*2hX*%)q&XOhU&l5z=vq8U>A9!lvNj*X+UOIfVp5#ZHSz zhGZmTeIpuPSMuL;qms+BStMjQC2%LGzQ@flFIuYF{oT0~=a}=7MmV#Vxk3JY!kPI% zu=Ijt?8HNdXL{o$d`5Ck5^#dKq%d@Zw8UV`W2&)w3iungM9YcoG3K~qtkw}XrkdcTZuTu!+iU04z z1beJ`zR;$j-`-uNE()fC2_pGrn*vCZgyF?;WM-!YcaPh{*i=*pS4uwlfd+&uhyodq zgm*5d`Ic^iy?|cxJ6G=|5m51@`BoR@j0vX;r-4WL-a6?9hr&d4|WR4BeVbCmWSkVxz(f}ocZNC^85A*q#?A9F6#8Z00sbSakaSjPNTt^Vtym3=5gJ88CCAxSqUqo* z`TmVDrV_4w?;C7tIwny#oI|&8bDRY!LUbj+emg33?Glk^dq)tue%wMeIo^e)%A}gu zQ+dw_F@uj2qS=`bm>LegM7NDh7J+<#uI~(L75B8WXflA~nG4Y)MeBR!#l=$9pCVqk zA##qP8zg=i0$!%ivMC0KfZ=i;up#}YE@#7td5xj2FZrI&I6HKSnt^FLuzEa6(*gnqhl z>ewoVP>x?+81gxg!tDVu_hRI2Y6kL(*=Y|@tZ6F&`qC{XrVs0mR?BQTbw>0ElB;$< z!bSVQwK&-c$giaSbuzb5K6ZCj5Wu_)Y+~crhgNYCn(<^!3imkVClF*cb%(cR2BSux z!)i->XW?W%$@m6D&7z<~6-ZVDw+g4>6GOD^TGI%uiUY{fmixa)VDYLT6);I<53Azt z6f@=gL|Yca*8JiRiK7oX7*}G(YN+^zNgP8XU|(ZcRV%2OkfGDzY4Yf- z!Xi(tYcqRrq0G`^8ssl@p8^Y@6x;N(AE?2gq$v|am_xIMU&YpQHDke->5jk%Vusf8 z!Dv@T4Zml0sja|IX0>Id6i-EQ-VMYgO5ZDwtj7uT^@Pzit4I?)C@$@Gnf*@N2&)JiKt^AG@KN=e^&aTh6)#JDgF+xOtWoN4W(Zz+1hr(-Py$cM{$rv#oY_i*>j zn4PCu;5zeff%lGNGxcpqn)?OiT7=W(l8XJP+!yBBJgVp>6`O9(8h4uw0(CHT>q zxI-v3=^y_Z-Ff~zf)`8ruX%l;n{(3ncg?iA;HU2?rE8UIVg4} z4AoXR!7JvW?0^3AGz+g@9noJ{O->E23M|3^aq~PcWt=_aS7UM?tMJqEBfU~GwHJCI z8epPPz-~rF#gng>ub(NO*+&q>M3cgc7o{dkA9H0Oix@7D^*3}785w(ygcGR)wVopD z%+oo9bR-W!XQ7eqWe|#v$&gLcfE6OdMm2)@bZEzjtAhSakOg+w<{%jj)cZF@?gbH; zw;2Tb1YB0zS9>qsXJz5ud@Ass(v20oe;?aC{{U~kpG4r7Ti9C95k zrr?PwZ4E(0M%Jn(6+l+R859lc`D>Iqo-70cnvSvITfmK%n8sENF~nUEtQ5zEUkv=u z=6%`~b>P`Ro>|%OCG{L%>@G-%H#|CoR(lI#=dBJx>K*$Xpp#;z)?iFNjW`K{7ebDG=H`M;I$15L9kUlB#oNz87%yy0&p(G zlWhFH?cd{!{_-hU6Yy~z!=de>t^fGU(eAau=q$?^CKi$RYxv3L=98-2MpSLK|0OLH zG~~OSDlh6~WLAv#)SLe-lx&@{Fi-ouUc@cfuGRkiPTTx0gX2XxU<%7h3P8TqK}{k& zl_*8fb*}<#LUjTiJyLiSQhs7yqt+Nn(fe-D>m!1RqX(^YL3>kPa5LsAz6$ODN6$Wb z(TV^L7NA1$n}he9t%zhqe9KGrQ;(1)Wh4>$2Yo~ri-0r$>^KpJux3cz=6W<1HmgtI zJ;=BF`40w!lDvw+^)TIXp$d_Rt1fpkSkbt;TCHonF-_4VLS2iu6U?^CA_E;{S}|(c zKJ(7bSdhq-W9|fD&#RsvQ)Pgb!ws4=FY} zH;}hmL9YRUN*2qYwhAma?$cBYXyVl;9Sylp?(Dq|Hy((wrrv=@bf${<)JsOC|DV z9XTi-QB0I!6ZXX*3H00GywWLcW(w1|!E$*rRbg#{vZy*MD)dy-y&(SKPdY($_l%~I zCXEz?35}*|i^CupaR?FoDFQRh7+9!D34~aiarmesa9~~(D?c_rSRwvt09vpQo(_E( zX;LAz8E~oQRqa0Mn%K1h@lRFqT(tsUS_MBhr+{HZuY)O9HpD*cQnLNKpBIvM!=ViK zw3k#Mex{CIL@iXHI)T}O3c|*BS!yP~awljbV;6u0=p! z#dzLf=u9TXn%nPtl9X3}Y2Vk;D+M72z+Nr?KJw^KKiz(C`E5i=sCoH2LF2oC7FLQ! zhcObL+oLj+Iw0(FJ{S+`kg18*vpg~y9V-W`-7*tKUG%iv;KbAl2|_fId=&d=2;MqV zmTkH*>PCM8SuFM?IY=S)S@0eKkmJuj@ej^=Kb7*d=x{84X%<>cEGSCL_-$1wW66lH zkvL^qixFNIas1rOkOHGg^~w-@t2M%^&Z1;A=mFsTX>z@CEg+;u{fxjRu=^CNkyUyW z(-eXvw>b!r`=u(lOu~t)&@kz9W_eyr&uSd7R@mZLH_;&uk`K!T| zyzr9qLE53 zRue<{?K3ma%jF@3{UKbh@-W9g!K0-Bq4PeRPehHZxIUk5h~8K@#`hN& z2}RCQxty4HO95X=ody&lww4tO6S~1R+f48&^&d2lljfF+a?%NKb|<-r2}s9O)tuvR zy4L$`fpnM#fx~A?4QdxK2`JrEir9v)DvGtNv|BOtjVP2>Yi)?*K;f! z6myySIw|23-|gMwB-fDF%k~1G4XEGk&qCAKW%MJGU>5LO~FggH0Lre%srJi4->T1OeNjgoT^0K$P zKx8CD^J=olle&`I6bq=1)b_D}H;4rREho~0-)rE2mn-TL5EY|J-8TY}nfeDLkM>Pl z`iY?0;9gH%8g?z{R2do}bowhJpH7I8kHn7RS2h#@o4MAQG$O-J5(6jqy&xzG;=cZK zl%f#Fzkz_P@mIv?tguLsdQ9@9lL%m(6|(oX%U|Gt!k$6S<}qzRYGD@nd0JWgzt2?t zxP^@TgimEi@PP8l;1|bA>umqx)W`PK%gYBlQ$ShVbE+t2x&9uP&Yu}v2*Rx{T8mh> zE~9POLD-aVf;PiCE@y}Y89A@v96n(IyCoAy9WGSyi_{k;{7ygHymt&jm^5!D<#}oU z$9AJGkEn2%G&3t?oCG(CV29Gj4K=~W5QQi|0@W;-a{okxE2OXjY+ngH>aW%MnPoiq zMj|&p%}disj22*}WrCvtCuRj6wop=z9`lCLmQ51%=KFwG{kW`_} zFxWdReOY)~Sb2;e8%Q1=cpD0Ot|$k3G$GpHk{Wn{FC+tg+9*zuY*{3J4r7i+77^y-uFNx7YCz z*sw87YluS%Jrrls#iS0j+Vc{UY${<=xmV4Hj)b|;b4~*ocZZ9{%yda|G&i6eDDYgn z#hjYn9pV{Eiapa40&zeWPT%g)#yyC-{XHl|%=)nUnYmnW_ULSeqw~Tmp_i!U6rdj} z-ev>nlb)(kX=qV|!%Gx_V&$4z50PB8S_WJOUg+F^#6VnFdbgWa$+>Of|E3U3i$r>bYC6z0wqf>j}zG)HW5Xl;c)e|^uGG)#Z-FiY= zRK4Ej%i61mJ?M595FI6`oCchrnbRllfhf1!2_D{E)wLj8mpW->u&c@1)#rP}E_s7@ z&GeYdk9p+2P?0?RY7@?I=VH|~s0Z0LUY8RaVQ?u;!Y42eX;EqS5*q=B{AiE!rX$3%cEh8iaktfIL=){m z`WXAsu)-Kc37atp3F#U)ou27GJdS1rL8d;D7Dxnjh+qA39%YS(0{wJ#l3Zjpv{&^e zxgcmrdBrenL2GP*1(q;7G5ND9EpE?|hU|)BBGyD$gYiXoz-lCU{bL=!>{2ud7@?*_ za`iM}HGK{-AVwgx3h_X=3-6%hvh!m8!sz-{d!d9St^2KGX29ODy|H!63EbqvzBdsQ z4T3CEOBRR!vQqy|nNF66-gK6sQy6#~vY+1n9ceB|=mq{1RZ-IK9Y}J{;mVYWkU91gP{8Es zMURBF8A*l)a_{6%Kh{#03BFG5Ps!g2O#ct057z^COtJ4Fejdia@6QZckOCW>{Th`R zo@l_`3zzq{zEcL1sZkVVbWoO;q+cn{k#Mp3VG?clz4SxCml!-}Al86Mx_Q(uO_b4j z&m5+jHXu{MQ(@HdeUAZVo+-_X+l16ukC`dT0cPfkoZ~>*OrDTDz(TiN8wVOqF2VVyqDtFL8hb*1bB7 z*s>s^H&g zTLcNwf*H{ZcmD{i9IC4{Vl`vPbR3MQ@SzzR@->vBK=4Kq_s+lAL^KbO%P8?`E(z73 zgT(*^&&14wW--7(d_kF$(sOY`j;2!Jwddl1)+3u?qc4)o=%f~YG0X>M z^07OV1umVLd(`jAsQi>ySMne*VOX88ib$kd9LJF1Hri+BJ8g`2V-DK80A zh%o%^kn(yt5`hyGuqj@rOP1oIxdy=7#ZE#q8Bx=-7g<9&kMzD|NSqNoLNy)C7IEy? z_UnwHeF_RFaz?}RW;ldJo)fV9e-jv74Uqc{693~z1kV6)`NPKt1%CnEX>k%8HkwiIg9hn? z9;xioT{>Lb5w=Vtbbvf-p#|hFOZ-qm)%&4rB>;P>M4dlkP7l@uqm&b@y=pWRAh3m; za6i%!#jP;NQg+C$x>3mr*F#oHK&8n9c`0h;{*BW&Hn%tc|BZGjO%z5FF4@~bBEA{{ zBG$DJPD+Q)PrTNx(T6#rti-?FxKl{vT7s8~Fh@6sN0C z2T@joB-3;&O8SRxH{Ae)0shT1*G`;WPW~8 zl-K+i4KCl#Txgp%xZ0!D1p-(^-wb2{nK0&_m9`uYF$wCZmlw`?c)V`ZGW6uCF!z6! zl2wVRiZn-9j^x)<1ENDE@JR4y`6g>4f+;2SU&{GeI!>Q~0*5qv0CAWwy zlP((J*>*kizl&J}Pzzq@`+mdG>xQF)nNU^^3sFS%R!94NSH!Y=pWOU zt}ZHX!xOV@6R^_klBMrkQd*;FAv9EHJMJK{fGJYKGl&A?87f!Hoj&E;M~IkghS)XA zN5E!NgB-IHbL${B&lTx?B^1>?i_46q5cTm2y^lVuZtmpNIp=(t|>bq}G8t zJBXk=MuEyX3Jnk7cXt{VMc|06pCwLd7a#&n0a?o#zC{MJD*=&*!qeJcP0O>H$VXS= z89bT6l}pd|>x+%!A#|k9T+y0%_#FsC%U`xB6|(BLCc;SoixC_q=%PN+4C;T)SWS$; zOkc7n@XlRw2el`Hyo%>s91y00@VO0Dgh@v-nZ_VpZVjg<-vrgieVPRF6cmk(q@q;^ zHG@@$ti105LEml`-K0iDyf+C?#Te9+Dw?L$Vtzjha+c`RAKJp1P&6;&lC=Od521%h;e_+nhMIU;)3nxQ2Gx}h(%^;)3nUKQd z`|q%EMaOL~D@-x{XpFb09-)QGJ*iyp?>Bv)8_oyU0+jf!hZEO_J?6R_=`t zA&hM^<1j8H1IX|f)U#r$Kv5F?(8<(P2g+&Pyk|Z_6c3+KAf9=19P9jF8j?^a0GV>r zd`yIQ;Z$$lUJk#&GjJ={Pugd*tG^VcKUESFtr=-IMG`Z@?zXC|0A0Eb3-g{rPkK5U z&V{%W4fs&C2xtYjDT4M42X#Xc9YZ8ikq1QJcigrY)wY_(2H0r)j$QETzO}U#G5QI( zpU{kr5=E(z54~vmgy57&kgZ)XyW8re99Y%0L$qjw^dx_?T~pk4q*?HrB*UK-JwKwx zNZ`K8M;K~hkvmbgA`HaPkD+8}d0j9)Y9$6ySMEv;-%IC z*T^a;&ZY=SH}H}XN3Z<~7;V}nhGpILS@*pGbx5c5x~fl!I%EA_^4tdY&Dl|J7ki=Y zRy5imgKerEI)vP#SmxnF&+~n(MF?;cDPqx=YI!EE_Y#?1tkbt?NqG08`}YU_GIy8t zap9kBTE=ISz+z@9T#$|W^{{DKW603Tx4{J0z#OY2x)^bkUb;9^e|btZFW|HD&d)f7 zipnCPlkGIU3VS8Hq?KOJ>KtkiG;<-JW{Hg`Tu2q}6%D&DUASk4scLfJy=xF4C#IIX z!YHJd1vaNan>H@r{uf>E7+qNte*1Qkj@cdCww-ir+qP}nwr$(CjU9H39i!u$_kZpg z@il(nUy!YVj+^!6HnIU?fpdf!BFMI?i;vNP zZl`Tg5dZ3NE113SYJ%t(`sjD|`7+)?ah0q?doa(le+w};bAL%kb0BO$c#xJ=fF?<9 z7ie_0oLeJNDvUkrFS?(m*m26gY;Q)rVT#M0G6xu44;$Hnf4RCKAqwI|y4(L&AVik> zi@R(L^V&Z%IX$AB4NihFPlZ!5x${$5Jb0c{ty2-3f8b}~T!W9W((c$SEr7PzM$|KQ z_(LMh=I9r=y&$*(`6ZP_H^^IiGG#y{z-la z4)0t3U7WTKiz~07Pix4G2zjkt+{_NuZz{Kb7)+%<)@09z*hciW2a}0_A<&tFHF<<>;5YCBSzDQ;y{Q02;ri5j-d+8 zRykdVOoOx7B)zr{-Q#5P2wS+UO=umqBcZ+0WM-@Wn;^D$l+&11*%k>U<4r+!8KO@V-MS|(@8 zGM&;t$@Lx!L#fEL)YD^qb_C*iIit#*;;>n|<&4LR{!&FuCTZl6f)U%JE9s7ATX%2U!-S)Qkvemb zvU^WEPtHppPJ~?=P}jo8ZVv5J{~Ynd(_yfu(>)y$j@5(>ng;e2sp54$C{h3NDwPaE zG#TDYclQ6XjSQE1nYmWaVcSo6akO;0suPPPJZ;RerdBE-ecZ@g!lg7O*pdICN9sl$ z9}jbaPfVA>Ho-xU3BXVS#+tdt&y+-ZL8w$HmA=bnCB0SuY#qZHAS1o~0hp>N9%&6L z*?C8D4QcRGlK2Hk*ySM&jZh}!br```Op_Zi$`vHsl5<&;Lows0wVkSLtWwTmQe%_K zLZ366xEwk!^4yL_WmYVVsZXqxvx5Cz)aVY?RKfv$NZx@i-D5qs9HGt^u={E^?~^+! z&5{(wo64UtN*=Zp#hPjW9!2M{G9hITWHp#H^S=~KOa?--YFqisqaTYPcmc4U$k{#R#Y(oxdpDh^)*BCyQQ zXLFsROsfX%qjO4z#Vq^i2m^PoFz}wn%6?B)|A>zI-)c>6;UKbxnv?oA{DMn+8`+ zRiu2XU}&x$4?AlXysS2Pcfr zifJokXe}yzJ*9MNc~THQwgeJq&a7;TX=YWqP&-cSMCv!T5oKJ~gp+wuH%@FsT06E9 zWo6fllbQWr%dPKGx9`#I@5yaMS^t+35NUn)E!F)!+3tJt|G9ks9`*Yk-Tj{YE%kpc zDc2*dVZNmTYsO3UsT==S*(BD6x`ARX!UnFDATyw9tknKp+KRA+e3$$GpArB~@Zam- z;)CC>n}5H)80|9kA126c0=sBxl*lu zYv)0dna4)VYlWW3R?l-qjGe-B1*>C&(2(W4i1Hl#8xzzfC12`w`h+m)tR?hN$mdxW z%RTBA^Q$_`FoJKgx|Dh-?;4%ooBi7jV^=njbTkAws)TI=$g$7&@M$*TXElpCj`}2* z-A>L7N7ZR`fT)NK^zFu$RUN!+e;8}R%v; zI%EvCll!(wLm%dAUpo&MUM>&lEvwB>)LW4!6{Pj4WoI=|FE80WR``6F06lu{iCCiR z`;)a@JvckjleF(lJv@QT@edY#5|{I`VV+5x*`oTiEh8DN$^uB)uE~{VXBfwC1Mrjz z`lzQhL?dM8Q_}Ry|87B~ZL!3Xb*vdXDXO|CT5yr7DWxg3`?jsWHNTSUpkW%|cSvQd z5Le8;H9IJVh6zkH!@u2Vln(Vpz@WCKr!| zKJ#U6|9dP*NUtPSFYc3r>+8PUt7w(HgA&$mS2%`j!i8kIuK&ygkp-R$c}K{rzBHyq zD|xwjC0f35?RH+L#JFy$G)`1Psa1w|@mn}w>amo8 z#Fvz^VqGzzuCdgrIufh*!WG)l=&6UrYF#5dDU~^-qsxfByIRO$>zP%*rh0qeYWy(2 zG@@!WtXnTj^L>k^C_%fS4Oeun1G{f|-)2kxSbn@?u3RQAl-%gC2b*5|bk`!*vD`I9 z3Ezg5>(}(rp7s+|pD|?AvVu`Jp9lhujWE}9$PJimzVC>nI1l| zb19R4skam@7@7)XHKUtEB|>scJ?nBrqe5$0Lj-Q8Zat+;^2hzyM6=THBm#|)XF)5A z%d7DY(^rH*=Zr_$P_|p=tcOG1-R*Hng?U-p{m4ubJ0xbH6JR-ffTUtDv&U*KiZYFk z=?ZYaSnJVNfsa4Rd;ATfHc)a* zmN@0#|3BXy@@R`gXJ77(bIBU@THEI#P^-%|YfUDL-9bms4cx4&%sqRfnybtc?IT+V zT5{h9x_3u2{ye|=$?|%!>CJUOQ+#fomQ3z?Z3+U3E@xr07_`7`h-kXdM>FXv4pbGt z55y(U5v-Xiko!?HG5KwdugwOl3MTEA>%&eSx=t0V%?H2OY#j2?UTkYnufp92-N z{a}}O>S*UBSBVyf-*2#?!>kN$b$=wv;5?2usLbRrn6SoA_INCICLp)u`6eP@wcSp#)ZOX*D!nHn&9f_>ekeW4w6(Zr=3HI}z1!Q5$UWCAV4somJ|!+~`Jla7Jhhm}(9bW5g0p?Q7if2A(IlJB|I{OeJ_+32 zQvqcm$x#J=khwiC{Up=6K-YZ+f%XF5eYgp@g|#cxKk#UX4zxM2u*CG`(jtv|wo#W9 z;48%)i{RwzRNy^Dm0mpv=8=0W%!^4zrgZGVklW1O^$A?0I5tP7Yu3H#hJk_8 zj9k+`cQQPGxmPD+ekY(Er(Kkv7-4*)PTDmGIjksR?Rh2uhg}t+M9%-bLypXL?cfQr=5>5?FpGhcLZ@Na(*t9Ul zyXJ{qo6YX5ujZCm6btqO3M$G}^kk8&=oGeAYU<=G%?L0%LMf+>_dytw7|EwuM`eFB z;gh%G|9V^m_7BHZNN%NW;_3uT)<9pL5~;A&{sO%9f=F#^pl2!=G~3!JjWdQixbxVC z4BBw#?LP|SX#33#GD0wg^R*F)+lg;-_Qbz?GALrh+8mVe4rK(9!J3M#vb|dk&p3S#YjSf!223Q~~xcTL6!jEz~x<{Fz&eBRdzPu2xi?+lJgq znN?r_U~KQ|$f}jjC0D1rJE)Fbu5*}=Wp1VH8u5~B9r4n|*emBZx#JN7#%N5Yw8l-| zdX#1nDqO z4-AQUiSNARM?T`C7f!rJ)GI)^*y)vUku{pvt?LW~x(=RTmNO>Y>7w=1l_$q^P0h9# ztP>WX3MPjRFO}5e{E-9v0GK)l6-8MrPo&O=JT7diIympU%#RqB;?nXt-}J_#YP=ii z&&-Sd#r*;8wi+_GLFqK}Gf@^@bUzK77gIz?H|x*x*&?^C&RUZb)(!-6JvT4cSZ4?y zpYMq@CrKMuhpT}~MO1u|nL_%XreAiHb|=eYX0iurb#|s_8(S5uF6Xi{96DQA#LTl8 zi_@t4)+N%5FNPIjYvrT)I$V!7W`-r%zUox8`Dg1Lr|tv&MS2_yTh}t~dR|1aG#C1y ze7o%5p?%n3QXT5k*GVIlCfGebq1ZyozjFLmR#oJpOpaO@>ngStxRiz2Kb_Sb5ZMUt zr3oA5=X6P{;_lsM#C3I_jY=4~RX2YXP5~XLI6{@W#tQcSF>Hc(TYRsGBy~*gTLA+y zK+YwH@zo1_x1VL33nH^;#V?+qhZs+&wxGD9FRb}P9Ha9FcbxVQw%&Of{r4J`WJ!QS z9i}cD4Tw#+;d<7jo`#-j(@e~vgsR0$b1qE!tnni^!nEBGZ5@AjFJaFbKPmttL_!mS zK+L^f9(WZ3dM48x+n;8H0yyl<&Qh8_KdM6Br&47xJ8>yy7lYUbw6snnaci$eo9V9h z@2tSYP4+IAg2abvZk;~_GXbm1pEF2Av2>zRTDO31r=^7vv4v_MTu#xbS+#pNs7VXv zR)F0BDq01C!Be%tveuWm9yQCNAbPV%44TvJcP90jgVaoBU}Nd=)cwW&?c+^xiKEPd zy4uT`+qY9JwUX83+u{Db;k!_cw3?KHS0)lee=yNeCNe|6(aqKa+leZQdR7cJ`rayM z%lJySV~qXJUU`ZvfBPjlY7{M>4no?*FMo<}z|@V?CBSs`{O^^uYb~rqlhVBc`o?Iu z@sdd4*`a}tFheH7aUmT>j42Sp+Ylwvsaac=k7Wm=Ug&;FS$;*=Wm9<`mCGli+s;K0 zIQ*iklby{AYdBaTEqQ=tr751^W7WZJ7Sv*|2cdNNGQ9wDowut^l3hRC`MPl1ev$*FuV*sF zG3VGJ>4EZVGgy)qYkJbE{4%K%3)XrR`m4rNl=i*&3zM~U$||%VpG>>xFzJoEFfiIa z+1+|Mq}R{FKQjCG6p{8E@AeOR<@?)b+!((sgUNc3hm0q)JsC4%(DRtA4EgfN z4mNtzl{zs@T7Ir$M`@yC)<_04y@XAC?=;wH^e3|uq3iko=a;gc-3msBgewH&Kl}}y zq%JMUliBZdra@zv%Q+GTlO|M@b@FeT=Ou5$^IKC`VU)KT@C^@Gkp5#QiK~y^i-Ju4 zZMgP&1}~CrN6%&X*#unxJ-mMNk=H5T(ulAU`Wt?utWzx-(g;9@tfZ4SUU*#7m;*S! zm*Q}Cjwc(|X|_C%cA8B85BtV0J0JTZmGeLL4fkS=ivjaR2@KKE|KM*j{I^h`<6|#- z7y8=`Sl_S1dd|8XmZ(hpea`zlrp|r6vuOBbubzW{jKWt{b=^8|dfzyPb=qx3jCT6< zu9s=(ZzVjz4=e#;kujc&8?LU=k<%M*WzEjgngGT-u39^_58CJzEd{W+gKsW`n%L0m zu9aJ?Acc}ezBx2Z$9CX?ix3=l>>&1sPhc7=MNws3@|`0Gbe(^yDt%IXU^dPpKmY{L z%;{^XUD)iPP=}d66ievfudmedT#KYiqf?hQfDijRWkCvppC@y5eSH`^*|D*6x_NNy zd$kN8ftK}S>?cJBG0uQw1EzO?dnfYPuJbLA4E*8Ija;1^Jv(D)=U!o`S2yMAiU=!h zoNa7cRWtp}q_NQ@V2%x|?8tHa6btw}DZRy25W#KX|>DV4m z3?zG=4UYUiEH=$g9t;p}F}YsYs#8*&>9Y<`$7mv=Fc!=75V3ulMyV9}>hk&YMbgI2 zR3n3_yxd?7X2srVGHF?8+mqXp@qm4y#@}Rar0CwES$(|pB8OZ5oU5tl_tD}K|IVX< ztL~>Ss`)BbS@Y%2#nplNdGxU9sq5qC$aP86c*dquwcS?y^cWGn@g-5(7ReM2|(CDH;GMkucxW{lgsbS^<& zw{8v7ShzWz5b;ta(x!dt0wnmM&yr-H`-?l?w0|a<>iLaJdpIQvg;EP}$EI&zQ0208 z?fMK`i+Bh%GF?I>yWwYz^=HtpTX76B zrpDi?7Cv6S9yakzwsE9+bW|&fXS!d$J*5qemC#<dP2|>v*zqM(c)eYi>H~&aNJD z_O#}`Bqz2XI6PBZNmb1zHE15=s>n%QZx(@C-dcS(o!IXNtv@fNH|irAW56&>I~#y( zaxZvtokY|%jV9C5HlT5dd0c1Dr8rs8q~~Gpd^yJGS39OCvH;hvO!`a!&bP;2iDc%aGV|vH(0c_}qM3h! zSWLSEuF3iNxAeTbp9KmoWwU!SICB{v-g|yyOTQ5VJG&-gxK{0x1tOYD_p`$k2!La_bNHY73>A8)$%lpLvj!I*Z5j* zH)h+j(Qh@AaS!No*>%;}3#9Ur!v^i@39UJ&((yi_(^Zl~7t8?g53v2UcjfNYBfGB8 zaZhMW^9*umm%b-eoABc&X#x~8K4oMqKz_O0zuL0<_dPu9x*BK^=iamq zEG(C2>MSo?T*Ak!Y@F_2+1z778%>Ryp`dSwYJy2dIUGS>Wc@P>g977@V{pGragzJ7 z@0&m?13bsvFno@-Zt(hUJ349;YYpFML)s|B9vm!HE|B38_V*yWN!1Y2i{Y2HjXSA0 z{Mxr>qSksf_qGLP=-7NpOFARlwC$hKv3Z*?ZU`vFwpUThnhjLO>wARAo>^JdqaS^j z=pM7`0SOaod8|uZ5ksJVyVbPoH_1=0ukMzK-|g@0+YFda>6(s5WnTc35ejd+lRa*e zm+h3ziUDVFp&zQDE~<5~ep!(AW~RHl8a8{&f`rW4IJndeUCQXLcF-BGigK@R^JRiy zm(GkQ8N%}r{*L2yyZBeiMi?Ui<;K5ox6UVRRNlWGSIEP4Z{xDG%`<)F`<=X(A-2BV zWQEOpPtf(|VpC)Wr{|_uXY=6f;QIWzDJqA4;kNr-Mi0PWU$n&JGV1U9^t3K`!MX4E zbhIuoL(p~mt+9EI%7;JSY>Lid=-%#pYhr@Y?R0%>8tsjEx&5bk^S0jFn$sMpUmA-QzgcXfYP1?A9NJ^JiuAENg~ukXJfGiIOZt$n!UGS;7e zboI?Lhr0BHjnz5-YQQdY#@4JgL)h{t6V!GFiGSv{J^KZc&K(?k3d&%$`kAh#^Efycwm+^Rw|oWzw>jUX_pU1dJ%jyHfmetDYan*bhUVb`#RBuTNKoKskK*8aBE zYH45XZ9!Pa`nFeeZnwRFOV`m^Vx)BLm3xNH5EquZR`^scj9(0vU{(4YR4wJNRkkFOKWliSq=E72Bla(408Ly}@YXC{(v(3rW? zsVcqDS5A7NF9zKrWh$)g`*3xc{H2}E2qsf?Vw7DP7H!R+kxzCD=evXWvEd0QO zf8wcOiAGelan;Gv50+QDq9ymeo!hjQZt?uPM-n`N)m0OxcvN&Uz)Q=W_Gf zoo5F*>$uQac0p*X{G;PPOP4_2OBZXJMch~N#Og953yrG7AHqjDWbSgR4!o zlGb(~E5t;5Sgw|lezaG+oEcnb!<6zS(qNq(oTft=SIez@1>Ha+Zy`3zlcI~m??>$w zGJBX3fT!!9-BTi@Mt0{-s|Wiv-%TqcTxKU$4L^}d-s;YwTAu5VZ3 z$C3w^6ybn6Lrg+L=9sHBI%Vdk#P!EcuCWsfWz;WQ(=+%b2-ccLXpP2oP#b25PkCsB zNm4#J@L7dT?+;w>_iYM~s7&U8FH__Iudhpx55*dqQ8eUrvs4^8rl`>V?WThvp)YiV zeL>mNn~6*})uswlgP1-VQ%7nfsz1}9Ttf*c@flJr#z4}LehEysr(ZAZ zbUs=!0c%RC7fdx55ny+y#G;c!i;(w}23z{^FwkQ!b*)wp$6vxd?ayy3;b6(FA`lRz zF*gRFX6GhO)J(cESMvU;jk5kavj)Rg`RJ!gC&+iU@EFXl=qF!BN~uZ$kMNjeGSJIv zGYQa5;K|dE`I9UG`8s}%I??q_09@8N+P4wW&QMg_tbUD7^t7;??@V>HQmT!i&0WVV z(l8-#5xki@!|yN{+*%j~4W&shA{Zb?Z@bHXsUHWM1roGpmfG`?k=+{sw{ zD>dwi7>?R<=J1To8)Pse&kNM~M=3P1ff<{NYE<}_X+bes#yhx_xfAVVu<}rgr|=mO z)#;cnC2ngLi%?3^m~6ODq!XWhV$1|%@ep|hPTY9*l5^4A3kv! zZvytSeOD`9`2!wDOZsB0C5nY~m}f;vF%CWlBOSMudY1a&(YP)`_vQR9@hy0}gaVqU zBoh~_--JAw#WjlztQIW(wq@y)%BJ^Glb$Whk5p^Xb9-X$Z*1`rz=|YsFo2)ipaj|@gKL+;OCj>Iv3Iw;em~u1YATgX%$`t~fvxSzKJwYm>Q8n09IzTsk zx$wx3xpo47NHQkt4`T-BR6cb(zi>1vAZ)q|kJrZP8hZ@m^+&v$s zz!4DH+pY*C)AQoB4WFT83;imW81zI?BUHc~{

5Rp}91;vN2k~?r0+u0hkcKi>@_s;oam+%&((nU`0P<560`Q&VMEvUVHh@b zwj;Q4)Tn0qrfoakw00pY1lVui)XVJRd8YQF7sKMZe$@GpbLY>gyqhflvRp=wPc6)s zB<`c`+&7`-Ai;zp0GF>#krzQrS8EvFN+cOmQB)IsAsX7dgqD(N%wbEiim=d5$>R|m zPAB;{MhHSld7dR8Xa%j=(=XzR=!;go)T&QKZN)-BF~v%ht0O#<8Wlf@ft7?Ac`n8_ z!JYCCW5$W-A|qI?1!9D&gY*R4%l{>h4gXF33}l0avF{5o8y6YbFJ*N4Xo~;~i~<78 z8wCT|%@!Gsh2)Y;NW?8-f5?&{e+lds6OJ-=2+rM?B6E39bRQCDGydpESOs-J@l;;e z&=}b;(>)pXB=TQv!A|i9P(tJw4^TiAUf0o;?e=^DACJ1&4Ujsj;=~l}eX;aL?>umD zMfUH5>{(j5hT!SG6i*^ucwB=QnRVqlzv^qkWUA6vs~Ugw!LY%il&n*(v~8pbR+=S$ zV-wt3g@0CMlV!&AOg8)!o^QZWH2VEa`~gL}XgX75%Z?A>T7`-9FAid({*SU43Ddf5 z;d*Mb4^M0n2UncQ10fn?pGA^TE-x|eLOLV`+USBqmf*WttH3Ar#8#qIBYoN-v*XK1 z2F>IfZiF-M#LtT(mWipBPQjyvh6_=dylyHN6Kwcq3(L)*0v8vKRjsWZgvZcZNS%8v z`>LI0!x$HQp`17fD|w+DGSL>G}VYY&>N&J@ZQeQc-(IYt9WLOApE1} z$jSLfzz*rt0q=3C%2QlBtC>Y4WJBpP+%jnYounx#g5o$_oEMbqBpw#gqfB}=GK--E z_&XZn7{nMM5etb4xVDxH%9W^_eoLRw8}gdsO@5c<`#+bX(U2tAhk?pq?zVSkASWj@ zZ!gA2>Ojor>Usg+=lpi65528toGmaYF0((^@bGfUbrC@|4QkD+x{p&nF$I?Qc6}-P zv>q3FOgMEtD~d{w3$Yx}W)-q!n>aHq3ReQ&+Q2KtnhEPEETxUCXpjY#+Hj0OmrJJR ziqXShN95*37;%6DbTI>>K@{X?HRm=@ zz?C)WIBL&pihE63V|9I2%9?AiC@wPv#m83dx;Tzm-r)n{O!+%X*FME-3FEWTf6?;$fzDB3aEanFfmrXMd-NB7GB`U)!HIhW@XPbyO3chBo!|M6(Qz+&{4j-;?Fz=c{<~M_bPag{ z)8VN}U>*fJyqsxrT$?R<&zc(fx~)IG+_s@!do#Sn z8z+B9P?;w2L|H7rymOdoBy5pY>&z*8uD|Z_lsYOjIdzm?UUlLs(nM{b4;(H982^E~ zGsr1+8kIBGK74n$dG;UAYpc^cp!Sd<%U%eC7K|`C7M-}Xl7{|p5#iKHw9YBT4v@8u z9x{gd`}1qsPNG3yRZj=rY$VgH#Ec@g-O7=0#L(G%$60KuZ)9!dl}yIav1|4((FAi; z?0mv6PV=QYRYd;HuxQ@qz2;aUVSe~dN+p!HGezl^o1j4uTQdKOJH>{xqn`;0R=Xu4 zRZohA3_fS$;)$ryyP-MxK`XFD2x(_!+o+MA43Sc!y<~f<(#PtD z-!we7r@S6V4q9j`U{|mLG4bQ-^;$+oZ%0HaJ4h3L@lu5Vo&GgcrZfzlE45&eTH>FD zLogM15%T^P>S{5PQCJM%I1ld1MvdiIEZh;QN;0DwTDE?4o7=Oqmay@2mt^+-#DsJu zDNja3axOGj;nQKiGAVyAN+Prxl1d18JRZ;P*sWwfL)h+;z4;2X>nz z!i@8E^ifD4Z&a8|URiXS;%*Iqj~$cEDe>^x9{y|Yka5yX4wIbZ^dS*aF3{sz2b0m& zEw(Ra`9c1}&auGbUrb43b5u|e&50CdW8b=3JoShW&6ZN`d{#0c?haL-0K0Xs`zqU8 zWeWt_gv}PUVGGzvEH}&}?I4$wc)Jmpah`V(XFHKiBE0go6Ok$?H`qjcb#;h(cK(%sj@vp?Rp3 zaz|^*kw0TNPn$iLmxY-FpilHkxr~H|nj&KQE~An$f!>L-f1vBnOJI_ea0gO%baXv} z;5v!N5Qa5-S{$&jnC}_e9fj%YXn>B}(W9`OY594|`Gua@4)zIoT`vr_gPPMix&tIa z`<+W7yuVUaA=L9YNCLf)L!L-D_$oIrS-uu8S7~e(B#gw9Z(>J9_pC3FpSc=X)wJ;# zaL8rzRd)WJgXWVjw(UhA{4sHGYeG>RN{&+0^2#g!QwVdCV*n~B%PD@I)2)_egC6m3 z-)!0xBgcJ6h~sY}M(dp+dvem^9)~PUB1Fy({hPENUn+@c2>0ta>}#szLWw zbzOfr4FZkw>rnGqoZ?-zgB*mWJQLKsP)||)>9b`S$^Puu^Gy8c)e2oX<4^h;K;gMe zs7{kXl{3ef3B-~BhI;WT$}D)*MiMMqvk<2|^ZFN=2~* zXuQ=ItX`=L^jk`=_NP%zh_Rm?%$@lo$ZGEI(!V}>ZLA?0v{c8DrTW58;W;Qxc-JP{ zHGk&%gU~lL1gs!zsO|_=fV<>b^n26*?7{lFUKrK%1bkmv2SjpbZ|h^V46+=}YG(wk z)A||qsnIu1jY2;o1?7HHwToM9w(dN9!nl ziw%}c4i+9oy8H#~xmcz39K2vsh74OO7B?oRmTIq$*)_A|!O9@SA55Wmcy_w`)@$yzid|;qPe8}- z-~<;Er#9y-2;gH>R9a8~8tbO$AyiXk26Ur14|R(W)rYkujJ7y+PQkzl$c+mtPAEB? z0ZsBCX!LPEYHBDFP6TTr>bWEK@|fwV=3+fsrAWOxEYR5Y;FEc`Q-uma$h{PEHPFS- zNMQYB@oE@Tjc{8k$^oC869tz8>>b)1(xNV+ErviLOvLAX*(@%67(yD_pgpgl<~ZxE zafUn79yM2{OOYw8ait?k)J`MAtyrH#&@}8~gMaqKCj@I=ir^79{Kq{D7k=or%SY!B zpFp*q?k?5Ht#RgT+P!tNcq71=)A#w)G?DboV8Y?MGkc4Pc`?PT%3-ON9Skk4FVKrS zZ`N~bVTN$0yDfc9ry8zf><1o>Q)FBjhI!Vx-ke8ho8k>T^(w`V0xK*wO2|0UI)u{% z^+rfH$3^)btRBPb&M>j6BE_oTiiF0UL8o}?nR8;cf`2`m)l~WCY z@2$A2AJ&Q)%2*!50BN;M36*MqX#ohqZpjdIQednBIRQ^bjpnMP6IX*9*+F} zLONLCIPz@U=a+>YmQ0^%@DndvD2Pq^Ur{k#obUApKPDO`F#}RodY(-5&@;y*Mx5KC z6Rxanh8AiiD~ScB3Xwtq1S8@vqtljkyU@x%j3?@c{vl!{K*S8O>jH2(xJ`MCxUsz% z^F)0j9(S)Gu=JZy(cCD%Jf036o$T}H9ZiRYX%~xjj`Jrvz(r;JN;g{!%ir_|Owk+y zjMJ}B2GIL1#T|(5MRSd#sIa>mRugr$*y)G{K^zD<^+K}w+HkZDK?4)R*h*oyYL!kS z!ByyS;#pjrjC}>@b_%Q`jjGu5nRkJdc1*b5mbbQ8Ix)3G2M{SZD7c~%+uh?+DsXFS zZv&Q$6F!x0Y6+n53ZJ-G7i*k)&hnd<7CKV0(%BwW?A0k1N_)11t2CU?om%VHvuWK8rsGX{ z+M+9gZDt;=O67Lt2?5LS4a4Q6TJ5^*t3`@JMGVF0(5rB#)t(#;j!lm~ib|u*MvU5- z-s!cfnu_atk1Ifdm%b)LwCFLeJ|!6E*Zqhn|C*J`9{PTH`>Z8(_i9P20QbgLWQh`$ zh|1{k8nfd4(emfcsBj2R&ftbgM`vu?zu3E{(0sXcW!FngNZZ%i48`v7OY;O6c6_rK zask46C;chI_STB~st8_Hv;eS!wtd(H6Vf*~W`{&I>={h2`R> z+@0`glQoam3xp4~*!(r1)cyJcTqeH3@+TpRh*#fVG)gw1@kB0YiKckRsE2`-t}2G2 zJ8v+J)ORmuQ_zNve>}O=z1=DDduO85TPi814^nj@kB?`c8|lX6tA@A^a7X4PikmEC zCE0He1c^sOWc-TLGx;?i3^WlS7a-Q4++ncD-$^9zG>ke7cU>c3lFZLOMwYqZ)d7Lp zT)0l2Tfu%i&!Yef+Oh5PPq-~j7IhIKpAggR@OqvhyS8Vk)E5@fu={LnyY=*u_P1-B zyc;85kdQ0`HEigEXdXAB~Hk)XBc{lvpohdvRkyXR(>({VW@GaM8M#X(V_ zIJ!6P24c+$madr<0&3VBHHniWDxKsP4oG41LXYbR#q!+fgk%ok9l^Zjmm0o}2`dBoCl-K631-27nRaTBqzxb!5;1jpcTVMT5!8wS4Wos)|WyTqPwo9AH=SG_#%=Elvh`$g13_L3;cv2|DD2F=TBaqW+SkH zGc}t6y6tq}R4s$G7x>WdGjb+$H~kpkubMG8pw&J-5jkf8b{W)_@>Sq;WsqaH;=t~6 zc|Nl>jaw7fU<)b$C;avSgH9Q1C2#o~L^6e}lc-Rn*91Xz6QHx7CvJhi9E?WoLSmG@$uKtoUKnRYjb|^vLLrReESO9^nZm`i|E6Lu81^ zyCBWjtuy~^f+vtmqL5{z{T0>jN-w)a@Oar&*KM9S8;bhjCj#Q?Ny4@5738)$!1nv9 z$>&*38Xa35;j-9cyE+L?V3BSfR3Ok0-!;fTl_E<$14W!lwtlA1&3z%HbJ$Vqp}@C+ z)*;mC7;Y~5;g)IlFn*qcI8jtm3hhGdBT=b^Co4yeEZe$bQbKy)HEH*EMfq@5yC!9O zs-k%QT;`qdz*<+JRcp!G9ODctviF@2=)Z}Qd6rd{fak^Le1IKCD76Ii&X2(YM}){4PANSMJ+OeSpAgH#PJe485AtsCHUb4grEc$iF9aF- za6$bFOazKa=>3>#vjzs{9_121(V=-){$d~11LV(ye*78>NoJws?R|;(2K^DS8b>P~ ztZ-`3#HVU6Vl5lTLadef;j_neM+ebShw% zrlqsgwHLAQ(5*3~6qe@Q3>JoWYbvb@?b09e-*DWgo`-`5*nOB-D&1q7n!-#)m9~Y2 zcCmfqx)`kRlvtdo^|(VGVOL-tN{eZ$gDP=IRzeOwJNtiq2{G9{B*>=69Uh%`XxVqvVl+ zmXC!^91{9UO8S&I_6UR$lQWu6x-D)m!Q`{ea22*6cHwsfQ0Gw#>FUNKt59-OhpFi| zfR1*7t}7}QGHN~E)dTp|#TxmNgFAXBG3uf@jPUxU7%auG6r_!;h>@E*Ymz($Bx;1w z;wpG)LhuFoL?82|uor(0RoJIz)imk6+*9iYBA63QC5}Qm4tCy_$yhS4S@r0@Kc5TZ zIdV65Kld_)088wmtUPHw+=_*S<&of%(hC34#Yut6A@!a zJxPKBQEMEj_g`d2W<=t8BTuCyzOdy}{E5FrPJ<`VE?$*SeEU2=Lv~%U*=1b-zY!cf z0$>X%{ij%NdEOPR6lLjrcbh7h4P}-42!{kn(5zy1jHV` z>BNwz*+(zqhF3;~v6!NgqWd6&t#7oYJ{>m*;OfObeSHm^*TBk zI3{h9PdtnFUpW#ZkiR~G`ehhe1g0qJnKPuBX^}Tq)PC%4FWSwZuz7PzhIr*^Q{M#C z`{13;TJL5H5tYeg06PO#We5M|-VwIgV``}~Nuni=ZT%Bla2;({%o*wm*jL6NzeR&) zFJ7g)O^n;Nhl7^f@OIcafl(B5T5azV_l;qZvu|TCWxDx4b~@KBv_t1DKujwv^}G_t zSzOUaaP*nS`Ax; z6POSUaEgsa!SAM$)QRFWgxj8T`F8_P7>*}wPK*3WL}rcChaVUrGPd;LicvNc9}IHs z$A1n!@)qNiD1Ql-Sfx2ru-XY0W%OR!BuEJME1#vCqiW@~`qOP9?`$z4L_4|W!9v*! zHtkvmIF1&I+q4-ks#GpBZC<2G1mn_@hN|c^-;bbXH=-Q#Xb5J8%XbJ+ou$S#EbG>s zO&R)L7_ItSCJ0bK)Xn%ps+iLREK1Q9`Q51>=AiI%+x8wBzy~9O zO#a}U$5#(-3l@&B7O$mEI}Hm~bVejP;F%CFs=E(rWGodSLZMYx=+_UMKXlB7N-sw& zxgt}D_92C0i2Uf(r8m31&>oqi0KFTyv*Ke%#t%7qGSWQip$Q5D54mIoUw~rqdWeoQV%!BN6TvfE zgwilPBmBLD%#EcWEx9FLW6T?wFv}l+%wURBI~eoJv(J*9~n* zvK@Q{^*9Y)&Xe4YBUn$n`lq`OsM6WJhUJWav;T#-W{NSL` z_NsoXLa3!+RpUdK{$EJ{<#hJp_mk;pGCn*St?AVzQ}m ztG#J6@u6Pva~28w$|{^EQIy<$*Hy?A_53(RSd!_tsK6I5nk(=XTzX`xbc&Xb26nCtV)k#Wwi`=atATq!R6?q zhp7VB>5XEY;w0=t7FUb4=MEbJSM;owqf|Gd9Wj0%E`o0tWUc*Yl%Eu3#fu$L?tpZ? zv%WXw9&#ZePU3;p0dt?qPAir)^-}jBCdR)r7OA$AG9hp^Ep$yHD)iHe#(IxZVrN|@ zboQo(1TXg8C`k)}&Chz9_mxJ<&sn^U-MCy`vB{Q&Y~DvEKpjDYxA`_$*a$8&uhvDlz9lcuuwCIm-y-r z=TxUj?CV)9p~)==C7I6!333)Mun&oDnbd)3wDbSUgzA$jcPvc1(9=(o!2l>K&%zWm zUX+RO7Tu<$WD=B1(Rwxp4u0%fn41P~?;)Vxzs$_Yr@b~4ADtC)De}hgm`V#eBrNpP z4WNnB2zB$%Tkl%BH2G*U{S~}yv#@3*CCiLs8maEQeHm}VZt)WxE}U)H?!%zStv)D; ze(9OJ?%K*d+nm>5Y)-yqgHbD+HnL{3-P=Q^HLVA-+Kt+FvUkuqx_ST4SGLjjn4@~_ zltuczT2RRmU=r{a`Tb*^ZPlzUu4;X){<3e$(kfG#w|*s6)n0~aZ4QJ|FjhkxDd~|x%dN*R19hxSiFvhW_%1cUB zP6#^1;yi~N(o-3vAMfNt?@CK6yOda|O(KlTJzN-6%oxCa1Mjq^UHOsN=g{}5^9xc+ zy7Wt9NMclzh15+qnd?-WhY>bJw*~(qpRL!!`OXhp{{V$m!EV|>5WVvib3g(j2LEmEF=JTO-gS4^5R~TM`(|xyLy*eF_U_v^Z{ExfU%wUGg4Ud5%JI+# zr<1S@hl2g>m(i@(Gb(3asD$ZpTRbY~*)4vWz|N=)+okVrJlHkQF03tnycG`U>D5(_ zuIPEIJsGSMoP>+pu~m61Minr^2)4{W|rA~#SxXs&X{<|Mq-4m zEjL@)K14PJ(b1*oLB?ta^Y%JKNPb;8>kCdal8!;7l#R`S^TImiG#G-F0I(ODK}=p5 zKFPAm{b=U>u|)Wo_A0H9;=fvDjGX3h_`9r1y@}rfo3)P__uhMiA8JqcJLM=g#N2IO zUTNM~1x^7K)q#rWvH_*z9mZk41no?6H3f&w9c1bKKN(s_}w zh&i@nil+ZW*q|&DTZvmRKN{im1y`FVnpvvD0C_g-rRI`bnv5DgX{;i+2l?{K|rTioy}I@ zX%RY*R;-}To$UZ)3WBNaldX>v6FnU7dYL+#qbbF(VSDTPrdsM|-LLxQw%MHA#g$fs z%oGPJDxiin$|Q`AX-d9`jlb+TG@a5frnNPLP@l&IRiTbHxs$0Xw^E8nTXwkem}e@^ z0&yR=!uh!5z1|oqjs8<&nn|;Eg9ze${K@E)aiB4`_682Q!pc+>MP6LiDdxw<$hDWb z6Satj>xLPVwseNz2zk!ZwjHBmjZsxs9&@V8+%9yQ@syz6uRF8l+i;jS{Wcsmhenr5 z-qaeWo-yQxBf62fE`Js8=a~$o36>Y<)!={RPvuJF#X%8+R9ER!jF*Ai{q?8;}1pGHt33Vg&PF4MBB7! zN~0vdV9kHu9YxuCp`8LNFafq{^6vQD@wwya^0#;vL&yWkH20HKiy*yEw=qu!y>`FV zQf$eSm<1eeXYno53D;lWsFZ8PBrZQYJ#E1$yjjMQFS$w+NM{`0ZMjY$6q5-sIgPYP zXUlVxBT=(<2E%O16^GB~aB{8S1NiT6+D3zGu5h=V9xxSxK*KAh1xrPwlJgTXbX`b@ zfI;uP2Y&C@UtYE^;Kk3q?u(Z%iw$213m5-9YoVV>0yk!();}%4C)Q%cQVyO-hJRUtRV%b##Z0p$1WZacmiv8RSl5I# z`U8oWDwbxN!z5Dy&HElZ18>}h3m8X{w1%JM=(DjD!A=zJ?*j}`s)Dvl0b_%ZNo%IOYkBYLK=am`1(K;nAU8Y3x3dI zD)3zLIky}dg7^3-i|iyd$0#Xtm_wxB=*|qQz>da>{P6dP&PuzMBPB(W`d+Fr3-A~= z_}R88UU>k6A}pUsz|RdC6aAe9i_~iH4cSTwY|ZQ$G}IqEhcgf=kXb0y6izgcC7L^d zDCXKGOD$?|Fef2F(wa1jCWvi`j4o+_NMI648LfE;$GB1e6q5LB5M>J4%}Q+bmZgPpWr1yo_zF5WF3qoScGQEx z6+FKyO&f00QfYD$Y4E)eXP@^0e=i5dER8#zGQ7P7JT(+r^(#xcodvFRy%4n*#!^1& z4B$oG6g^^+s|<`1eEVkp{xl#(c=81I7CBYI4&Y;HD{W4rBvYgFR##FAw3di8HEJO;`9^?tlAHI@8e_sCaxGZUP>g zd-mxcvna#5qoNdMERMN)`bfr=Yq?D_iw%pO!DoKAyA(W>jG8BzOb;eYk&ecA8#&N3 z*>h#nsM~F%&dOX-CV#xJ79x{3IhD5k>Y4qh9Pwh!S8r*XMU&wNv!krlZD>`I8ri>W zCK1air)HDB|1pE*~Bq@|*@;B+rPFH@R`M8yr`7lVt7PhW0__iu;8TjVIE z8wSlL9FE#e&Z0!uF}tnLJ~$36Gza$Fg>;O~>*A<|W&r++#~+99KKwZ>`>Zl4zsuhP zxPHt@T;JT}P>vshBizlAtwSb}?-3Zj(qQM813BEc*?T^JW9Uk*rqu1*RxH`~VjXI) zOwYuc4atF~snp?k)HEFKfT|5mql0iYBer0X-D(5D*QTAS7A-F*)hnY@FKEKv{(_1~ zKm*6sPnw_bMU?WF#v@PMb+72vwC~`5AxwqJNk}JktOI$2QEbvA1-?x;?T?*}}u-@0`Wrm)Z5AQp8Hiz6T~U7QFOk03C|F{fH9j9F92 zy}8pCrhtKKq?=*S$)YS-6ro2A8aC;&vspgUN;zIQdjI$6t{=gzlD&|OT#b_ z#^3W-+`}HWGMUrII^D2+7%D3wf*_QbUTGjrLy}HK_P={+i_|H4Z@J%nU%tDGD^nRL zP$+J3>b#Z0=lOGlWioCZ+UKqIXf;=a7g59@g0&o4^jI+Rat;z% zmZ`#;eK4RBjdmU$p0YH*Nz)8ga2g+j`}A)2m=aq4K$|3?{@E{*>~?b8VGr_>ZRj=IYzu{jUfMuQFG&cq zvK)&#vXSJ3rOkh@Mjwv7yWI^53A8@=LmIt#qj`FM|Dml~C}mw$T?$sS2sCLbFpp~XvI}ku9Wo?B9?xt7Bf4+@t($bGDYP|92zv*^< z36p>V-yA?KJSH?6P-|R6Q^q8=0V7cJ3Z&Wqqg=RhOWiez`IloFCs1~ZTiGZ^Swqeo zPGHqE^(I9vY^N1OddsGB)oxX4E3sK?1UUB3wp-Pb_i0_MDp)A>=z(#hOH4w&VXx_u zC9pTrT>0_1GS3GAzTCj;6wbrj<-DK1&-&NNZD_8GQ{oQB9cPKde6YZ3ycMLExPDjSs&!19BN`y3a2Eqm=nP7z^; z@KO(KCCzLx(ru5;;sGLWVF_w1%>?6jEs^i34|KY}sU>+-*!us}XH-|$p5vhBz#KE0 zARADPa$ZAoha2uKeUHz)j=yaER{kB6Ip8q^IeL?k22l0#ewNF;uFdRH-4WbXk`inc z6;Yq1%EMl?&x6Loepw^B&;9_NkWWj*Fc8J>`4n^5L$?PPue*xw(TgmycoC78aB7S$%{6Q>I&|C)I%zOFG+}yd&fx_l22`kT}8-C-9Lw|d{-U(r3kKV}!;n2B* zB##tSZ5XMY)JLoENOHuf^H5~*At1a>UB?PF?3MB$Vbor;rK>EL?!A*F`xy3|CSa9E zp$Ke2DwQ3ZSl#e`)(y0SX;@n`_49P~Thz4A4C@JdJ7OSo(GTqL5H|3|2D&xA!J zFJN0R!R%r1+MIwp4ACd;!@a+u{Q~vNE38t&{zu^4LC6D{VksnQhOxLaXH%6t>Dx7I zQ^rnwiZ88H(QeZ)6n)QE+=od^s;JX|YEnuB2s$BA)@tyA)~Rxxo5mt_EZbRELH`{) zaY~xDV+ihxW8dR*?>UbB`i;m0BuH~2(N|hBs^@wmP{o(Q(DOK1p%R25OfxYhQlT`f z2CWp-(`!O?AvfL+4@}U4D-F}z(e>zdKK(eof*3A`M^gindeKfzZpPo5Jui|`|t(Pt-V{AgEz+* zMe}*(xGbsm1H-i}SIBkOCW*R~ydnH*ZQVECAup;?l#85ENJ~y_WuVn@`PSvi-q6W+ zUc_LX37wFRh8XVd1BjZ^^*?8WrQlbN#&PVJf>ye+W5QfsDZ z27c9MmyQyJpfFGO{)%W1W5bzci`HGwKAXd3B1ix30Boa$G-OI5-77 zD01Htds4~ZzbiS}U{}dW$$z6{cNd?d=7wuYGPa8)Re&<)5A_R6s5~b}E zsYxifDpCrOap?m=)_8Y}M_JEoXJ#QN;=lLIZM|1t0;r*7AHd$7b3f-hb7uX^yL6gD zOrwNI+EH4vNRRYwN>%So_wB|8Co`&25>fa#O+ON;sKmRtS}8aYF&#>BP0d|kvoxVI z%5~+zG1pX1ki*8;4Z!R5ix>7kyny40U3$(G(?ag;QM1(C>2yI-ok_0X==5Yb8V(N5 z`-8Lo=@&DwNrIm=j45cZQVbIzf$&?n zc9PXA&mwU84WFxQtmxmF;S`oZQ9;XDY4aC(MH7L@PL?g5p9pAln($QxR9(=k0GYwJaA+{BgO74Q9Zg|HtWhe{^zs)OYcBVbN2f zK}6{A+)~CdSU{vCx4Xc!Qx%nzbSAD%kffN|DA^^e=1wj4RpUeO1EV0WEeDDQ_28%V z0^d?ze-1E>hNFX%qwlWNJZE2MM8OSBlEAI*-HKmxzBb-dQWoHIazPd@_Y=n8=Xng^ z{WU4o*2N{92OT`;R0>TaEF0L$)$75cS}#1dbuB5i4O1O>)y85Ft9bIY`w=ZdTf1b z7OL-RcvTC~-IPRA=u}KG*}lbiOus;H-v(9E;Fco2x!45BODmw)>otlCSH>09Rhbt~ z;AQu1ZT%Rv{9L|$w^9C7_jKq0D#um>A{JC2Q;c6(K#}x{DXhzRBx-`@sa% z8#NE@%l$DmZ1Z00m23*RcU#V;J(?SJ5~p$Sh;@CC_1G4cHxmzQpcm&T+X2Ju6xcOQ zZu6Y*TZsjU>X^EZ2zr6AMo~yql%%pm+fJM3QD=s^hJY_5yJDOquJK}tb9#e&PueZ# zaNY-MX>9x6Tr-o%_FEGcnFTNRuc$uD#%9rp840jcm^hm8pz8iD<<>!O8$7XHSICVJ z>rYILh|3>O)Evy5V@vV{;yPAYIBY1%CNbt}z_xP2*l$3wnjO-5%@}r2!Xql&o~zM{ zp!A{HPvO1^&B3lq>(aKY79PHj9qxmvi;4@)wMv;C=dEKw7qEgGN^ZVSTHxm3>T2<} z2@30jz!ltAcBQqIa+OIsplO2Rr5Qa3lqkW;IGHQEo2$~Sb08RL&F1QCxQ=~|ZMwN0YZ{svbg_<0 z#OtXPHx{)&eGpeH>VJu7Y7n}!kjz{=^)Zgx(S;-ocTFV8sBIdzDTN()1qj^cb11d$ zLIDekx0TETu*5LyTC&9xxuRxJyTiES66Du{iOAW`1sGuJZKc4{!|pZ~J+x;n0TvZ{`U8WQGX7PWR%^ zre?&wqJv;7@02cx2FBe=i=oynUr~vBh%bE*}(*N-uQR zz@nOV7ncvK*!PQ*Mn~IM)=}y{=xN@?I*9>2-OmAvvj!KC2;6X*7u#v-ei*UZxHXuc z|L4D-Dd&YLH%j8?p{r`wQyRLOpoq7<{Adrx&aro^#lUguP}GDfWsFBclwKlyg(EkGTam$x zDfwl&nW=Hkjr%uOvWNK8&u2*@Z1NGvK& zEsAl@&&^HED*?&^brlyYxa21*q*j!q=A{%X#9%1ns^+TY0swtd&riZI6u$4Tcn1!H z1c_G>#hBpDcrad+kgj`^#?mhB8<80PcVFqiF&maZmiBw!ueaO#dR;?_QVWN zXjh}3T@R;OX2b@4EhNIrx_%MPqx*QaCB7-I$T~(ezJE7OoVECef+d6`o|}wD8I0g{ ztvqbwEl6RYK;ZEb$U>z|34(vpYK@XWXbpzhJa|FMS36}s!P^ajbc)a^Yd8zPY?NV& zViyzy^JqR}cC8B`zpnUnl5t}1VZjni(%J+3CN!mogyrlf1Af>x%(o)4i9#b&oUsS) z0IZ!Q_RKa0QU9?8OwW0O)cX<^w&9>LT!JCo2Bhca4tGtVm4vD>l0xd$N?OB48%g=e zSxd);S8%W-}LPe@R89Cy}1YfKb=7&}fMf&hPT;E);@R;3Kb z#j$lIx;}g!QHiEn#3WhCC(`0nTRwyvR&-+5DWT;(cG2m$le$k^U}YV?I;V&wk3H{$;YPZwVfT|$x4ds!wOPkEV?a!iv zKf3+JNc-#;y;*H<+cpsX?q9(c!6FAvf_-)7rbf_o1y(ytoDD-$1hhoQ1Qf}W=(xd> z|Gv8uC7mQ%erdNNKrQij_uMN_$6wAD^MweMAId~|sY$eN?#=T;rGuZlXPr(YA62@L zz7kjS#g$A_mE4WuK>eXpZQ=wdmMLHRkR);PtBitB!D4l71iUWd$f$3ou>>q#@9sW) zTQvFL0y0~>aCf;3!{^_ZGSoAz0w>*#d33_CnhmF54Cw<&2W*q30{LF6G!CCsB0vQd z1@N-Dq4Q5iz`xU@Bk}%8CW2{=zjgE=eEWEGN~DVqxZo~?3^PMpdziU2Vi^T0S*ge{ zz$Xk5SGxoPsv?f-!oY+R(lDnFz}m<3>qLyvFDspb;Uz;;m>v<8_;s2=KM`K0J;C&4 z6vYPhN{uwy2UVU+|0c>;8p4UQFS5TT06?T-nL>V@bZZWIzmSQ16ub_+M39Z*K(SZZ zx|nBAwY@S)^r>2!ztBOBjeRU%Mj9 zTl{xm<~luo$C43usuj;=ugdxSoCvt=yU9F>SCH>eM{AtjAv!1!eK~Ye9DYSP6u=FZ zl^Elk_(H}2125bE+Q`9=$~02XmaBT|y-$=`CJ{GEtB)R(;r8o_ex){+=C^#CUZ{Ys zv!AM2oTy16p+2X|vo5AAZTIc*J4lCwuu-gg%wHA?Mop`5$bFTdi9ITUB$i9nGvU!o zNNJE3`6`|XJb~^CvG<&QOQggyBVnLlg@OoKFY-2R3PamTe=c&Ca4x2pqb9B z5(@6_Xvof=p?QsihI@o~c@d3m_+bIt;uOT~vSkP-{3=(z*to_B->uhG5-(I@p0}wh zSj}3B3NAO|a{@0tzJKrXhwazKoT4TztJm~%x5Ur3?17LRcSAkz1vI_8xI5dGyWvt9 zf4*CQL0pn;cHTNttNUH(KNZjSYs0dz4!D9oY8jK!xhp)M8%hp|`g#k=NmJyCOlaY~T9*$zN9=?k{gg7n4up(cYSr zq1mWl-v#VqJi3_-N0VL8t1UV{gLJw3@weOmxY8N`v~{P(Nd|I(t#uE?t%_H!OruDSaN`gl{#ELxqs+h*(y-o~+8g46HzWI_t32=J#u1 zwOXyAB0}Tm=%H)bJt&jWb_z1coeW;NSl&THuOTA-!;k}?eU5nXe&FyPC zI_B4U)gTC2!JwawLQ8L3`!hzt3o45el9a{nWK*A4l6Bidys>xVM8kE;Ri`=bzQL)L zTLO*vA(iAbBxGyOt$n)P9BD+C5xW4ojlfYqMis8uccZ&0%`r2%`$8G@y0QmZNzJ3ggx=w$bjgKAg2vqj6svvHsD+Ij8#3yqXd zkJ>O0#qaqPbKnq=wy4)l_YbN{FI9_Jw5LkQF_Xn=up@hd7H#?N9mfeIskJCvocm^!jb(w0sYy1S3lEJ?IDpsR#LSnaEounz6d?`DV3$|*9ID{42s z%OYnRD~{+t#V%XeB4>ReiJ|k^EP)wp_R7IA+=3Juas+PQ0U0Qi=J!4FgLMR&Ip72- zSDci70cQ>f(keo$jOGdX;h;44<|mI9+*k4$W6LrZ^4AAGohO`wbFlQtB?~aAH3#@g zsCNz`hLg7h_{FB-@hAdP7}l2FuIlAnFMl}5AET2gwkHd3BKn8Cj$#IfJp4-4QfZuXpXou3oc5Dy zb-KW=d*~%IhUHiod-*-2!dh{HiMQrrOX!%KzjxiPxF;S?-w{O3SvA%hP9rr?`g_r_ zFF_3KR3bR2~JILT~;`a7w^JBH$tQXH;)=!IX*N*eM37nHZZBWZj z12GJ|=PP`u)Q2b)=cS;EJL&;(LPFWB+l|;dA$BS%)PKk6c11z;!LjU_iO2Vkv5nB6 z>ukaaOY%1Fw(EeDz+kC?&eKQfN&smQLh@Trc0go4F$k>a;&m3hRmr0I(t3vd zSz614pV=pDicrL~326r0fkrdnNb1KQr;i3U@7_rlrx;3cXkwk=AE=aCq zp-z8$XSk=NJ?J8D?V@P3+Tl0%$5~pF%Xk&{dJ$iPiFp9*dKF)DZ9xCj>m{agfA>*^ zaCh|(+=ajdj$_QI|>KGo!>Da4&eqyU{lKcmo@!=(lu?$`>ykg3zoyg+he(06pJ&Z2c< zEJmY#xBy%McN@+A_D6pt5?zm|r~v z5Yq?rU8jglSgIKca$Yc1B~YxT^o9^a6awZE?{yMcu?EWRLM#)VNkzqZyg$vVSfvfZQ0K=jQL|UJbU}ZzFCVTxzk9=^!mK(k$2}MKqfjZ``>V(BinZ8KC-(DT7XsMs zB;Z<}t`U2KnWd(!EA}!+7nyjz>ehLe_EmdRVS_^i7^b71&GI*gvgau_kn2dD3{`-p zt=E)3O8;76xI}~>*DiI3mi-)a&DRJnCH2oEm2*uXsMSe^iAA?r8TL30ZZel5Kvs$Z zS339iE^;~v>>$@#r*P^zYsk_R(bcCOI-k{v)~vt0EOZVi>8wviSMlgdn<#?zMjGs` zq3hXI83AHZWEJ+8({Mgpg1yE2!SGvMaGvd94Sy zMkN~eTeruc{{<=09=PEmO+3XvS*{qy>{`P{sKgA0hj!xzW)yM|mZ~lB+A6SduZXcn z&?$7uZ4X)Jsz%?)8o~VV+2PM#Ueg5*9tln;Lh|sN!Q*5(R0rku>eUE-{C0 zV{bP!b-*{sLKsKfIHgz%>mW@-ZzswR;<$#j?+{3V#iLV)4aJtvGy}# zP;{dn{@(D6!2Womh2;T^pB<%qTST(8gQoY^;gbk7Wrzx~9Fu9E(*qpZey;=ow>RK4 zE@tr&7S_1Y8P=yybz@_h9+EhpeTAbcDYYG^pR z(9|Bqd5!{mYp_qb1QWoXjYue&Q4$umoqZa2d)!{#QGEmu8k*p6grc)e!6gn=*@T-N zce2;l_rJaReE;r-EgYp8SmOvN0`r7qldbJUmP$A}JL-tb#tdq)T-nAEqH@>^_)0WIQ=!my)R_13dIOQORMl^rL;W{gborxXSZ&i&SzY_ zrNy6ry&)w$+)$R-8VQTu4y1%7#+nY6=??}J^ODyjn^tpNde_(G6X$vP$ZUnJ(B2a4 zr_Agdu@rJJJS+iH$)2A+f7y~dIb^4d9e=M6xF^MW?818V$NIAi>ra2IQ|DxxkEi}V zK6YT?2=0q@dD(%5W$%l1(G{-?|9FkNu*Uva(`ko~xPSO!&ARNG`P((?vTNpV*VH-L z>SN7LUXO(g(vC$G!ho` zPW|lcS$Flwx%EU0!{^_5J~sQq7Lq zFc7}yDMmf*Rw?cFRJA9Q7_b!L)OMg8Lt=KVk{Bh16>s0M$+B##swxLCp7HlLli0(# zH;+#a?&^E^{ORH01Acvh?HO|O)3^!>d$6ZT6iM4^2(1J3deHqzH+U^{V+Plo?a>+A zLDe;I95k2?27Byl9d5R!tNJtSY~KzsJRA1}whzDd=%Us(W@qZk1H@4E8V44;O9NORW*R!y~wF;qoF+x4o$cU zWqQnNYfrv3W)VODI_pfWW9%>k>=Dny+>&<9Z;Ft#-dCp8{p4>-kntvs7bR%3Iik9& zm{G!2(*KJY5nd(1XtuHSvDKZcUIz9NXJN6@Lt8oBn`%E?b01N{$im|rGgpra3tiRf zkhAYXU6(G~4+whp>S3$>W}r$7x@)kaaS29zq-(9yaLEBTtU(>PV6el&#q(fy?%6NL zxHd2xbnW-%3Ss zSxSWjlBal^E5W9v;zCC6h{TugLV@HPpg#&hr35a3EsKmH7@`Z3D@J7uEKjmBW%)b? z1c02YC}T^euubtekpB4$_zad*Bn$jYrYvJ>6ZmFK<(_NCMMR(=Lb0UGh=8IL1(y`O zt(3_mBWy|239=(2&=t)U$OXx=w=N^T&Z+RyZ!N-}rI(B`$Z{$bQ>CIX=R6HL zODa|@q4FDKT!yepN#iIbiUeYWz@)H@=V>Wf$c*KR3Q-n{@%$dgyT(*dBf+O>2$$#H zD((p7V&g%51|jnC^PBh0^AeHF6xV_O5cAvOZnR_%Gr^Tk#N90AE1n|4U-tL+2X8!YZx2oq#cop$ zf1VIEteBj|#WD{DkQF*FG-z3fi0LE~J<*0ZQF+SNGg1>Rk~EfFpoZ`@%Ks64%rtv6 zEzk90L+qvKqhL47xirYs(0YZwnbtD7Ei_jHIE0)@#ox<2bSRT|D`WI4I6(_RWHDE8 zyM~z0S&?dZwdYY3_%he)rtm5XjkU=Xh5O_w|Bdl_&1isBJZh2Mf8=Q%?0hbi29@(D znXiFqNIAoWOmHBM(ayjK+D-WbmndBDdl)bBF&Q9lKGEvU>9R;s|B43_zfe4WU)k!z z;So%XMqg(o zOiezl_t22U1jlSP5@F)sCwdX))&6woSsNwSdOenj&<+IS=I+gvW+G-X#thoklC5~@ zo<8d9&2B(CD%$Xf#qsY6V#s9B=PGw@&e@V*a+RgXMd@1g9-COs#-X%C<17V+(sV5! z)Bo@g_M0taH$p{-xzj@C_cFl{UR|G@US1Ai2l>!}$3$y5ZUiN#=`g@k#Tyby`-|;; z%cX(x&Z2-gL!(5d!3Y@Dx;7tN*TL(?B34P)AcNqJ>sgdxutbI9M>f_t4jM*!m1Fx! zBzcr!WY+$)iLGZEW5gXKBhKYR5IWU8R>=QDAJ0)-fA=zDWrP!VEUM82!vV69SrNkj@5cK>IWofY#VIt<4KkY=U z|pi|KHT(hBY5;+j=P&rW_17bdKfQ%Lyl+8XoGBbt^OX;D((3sW? z2F2Cjv3)wssTDs5m+jU0s}Sbsb5caY3%C z97jwuJX^1?|H7}c^XqN!aH4uPx_T^hz^gV(7df>{d!&T|k2m!k2<4d=gOT7kC+Z?^ z9J!lE2ex`-p5uf|FkDsK?*w&4QxzYZB0j?!ZXU>;EqM778N;ImQ}trdneKHVg`vXs zU26ZMC8gD_dR@;cAgGSCrkT}DYFiXdvVIGFuiJIok>xYZsCjNSNK2A;V0qwx9xlFI z58>_GxA;B&a_xN~hzE4h3Qa$TN!_8Q=1hN0w+(x?(q5pT_N@P$a4zbuC{`e9fL``I=qKc&B7{|_ zR}xhA`;X+FafSGiJ@E(#qt)b91I#W`9Oe)%vLN(>2_N}8ds94s{pMVN%cx1 zjB%zJE6XS=#?AO=Z25wzM+rza(5}@D8yd^IAl?O5TPF$Z-4>Gyb1cU?@VwIpw#;!7 zHGFk)hcRXZ`jZ~aP0_rP*d&s&kr+bW$PPuhx*XDf0c8wS>2k~tYnq_}cE=KdN$-_4 zNpj12He*Fq$FH%3_w60EY9#I3wQ}5(vA0a7R$O_1X)M$e5v^94*Po8)J~wCB?}i(Yu6oiXkr-P1UHZ*(-y zFmDlvxqXtkCf({$p;a5@y%CvVzWBE1_y?}7xU<{|SL?M#m#*=qsjILxpg9$H@i-N? z#5@T=J$pH|e|?PhTE>%9S98@PR8+K2($JoroCcmdB=)qoHyuUA?**RGT3uCbF|t{-&L8-5ygJdLiKPktC#nJ3fZnRKPH?QcEW7T|ei=E};6 z+G3k9Aj@1=o1RsLalMHyr`2eSPH!aBiF#3xHDY_nY#ffFo2hmJe^LNReCWOtrQxsN zcfS(_pAnB%m!-;u&I!^Lm!%U$Wg)Giqd4I7tjP3uAsiIciAYSUgv@2Oa6~&#qnXTg zQDuOdybDJh9-f<|nyI|xEipD$Kzv8vzw1679^T!iCW*bAccKNtqf8w!o~`m+=M!OA z9&vIEVc&WXNlc(^W!l7bKhO8wC(rSH`~-GY?y90Nwp8gpo*%j&zQXez@f;|)+$tA! z!Xle1F_W<7IKV_<&0MD{6{CeH$s?JDqwGRRtNKwS4mp?`CS+01!&_SC;3;z zgAoRb%{ntF1#*LarJTtsR@00{E@#RWG66yU$|x5wY9(tF*a^X!mqI;}OcY%njWZAU ztX-I3Sual=lvd*B}tWK?2|gW zDh{dJ#LVa}+hr=5sIuOqtk$L,tRX!eV##I;cWsWhzU^9ne3PQC7@&5+6 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

p}1S$`G{X*{em>D{NxVwD5vi`^ac)@BBHa zkU_s)*}4|N0Cb%bP(^8#f8dBtii(Vs!mH8n9xQ+BEoSvikuwqq3TX&sME+#l+ccq( zO_UN&{m9yOzB;(#K%WGyi@;)FMB)|bJ0@NlS^tP=qPd{^7SYf* zIz^s-)`#{IjT3c&#$^FS>;?0jAjZn-APdL&j9PXgg~r8!fY-2e%%$KMU8aWx=YpS{ zScE=_Ll4qj$U^Ep)m~WN?}Am>)i*p>&&w`kH(X=y<^5=-(Aqt|m|Q@*ClbTQ1$#9A zXukF1OOuJUZA1?_1iQi%q@T0Sn~CD$axs*GKXrc=MUO>kfN9n~ypN6}fAjL5)UsA+ zJMnHB+o!c}U(@$~0-c`r_3Z;6b5F-EV_(A_6yD!XQr#FANqk?6DA?mc}TBV9+|IR zA8uYqb3m*k!URe(Eg6>%`P=fC8hZwkPJiIu&&x`RB*K+#4Jy{5l+5||-Dv%*m+QFA zutwSx3i2C_X5O06hopf#GFEqN{DY6W$UHc4dZcLGt{PWgN6+2!L|CDUF-W0iNRpz7 zps1t6k%P8lf+z;_Oe)9=39w@Me=u$K8Kx6$N{d_hXY!MXS2<1CmRlfL}jQJ#a$ zk6;o=?Js5J&%wrA!iGSq$TntHECC<#<5JqTQ=BK46OBWK@Z$j94;oZoKTpo*i*@5+av`(>(CQbYjIU-$W#O4ManYd*MV_uo8OWKDKe}P2_PD8egJhcNjbL`}54< zN&99cw)=RxPT!{!^VqY;Sm4hf3Ss(ZCd%YwA0F)`q>^d8Os66xg(vVj=F=GhlkqZ> z`Gl~xrg=Xgf>-Qz9W4ZEn{5g|z|~)(K$yc~2%(q49L6D_eS@rmb8c6KB#(AN(7uLP z%GQQsHvuKWo8;@b`9&jT&2M*ej7(3N7)pW^iOBG7*Yh%jYgxMWb7$5I7nFz-&*aS2!fkw9TR8{G*pf`2hL0! zy!OG426|;q3EA>-o$>%uBrK?9!F@A)yE}$I&UJ?>VFRHdQf&kICT&3kx-o9Phi)V`Cs-g@OAlzSAT+QfBZi6RGseo3 z(&^O(y3PEYg$(Tm4;k)GVeOH%2}!JlXc!Wn%0crOyIq-NFyd+YN%X^dI=g3f{o9u7 zO8c6NyZ>IodH}{a(Igt@eRuO2O3t))8H`*W=Enep8g9sMbz}MM6DO@DO-{Kkes@F| zZ;Qj^=5*k*HyuQcre>GFFMThD@S(@e!%TYMC5#K@h_W^31&?t{G9q*ZYjUTgV)(Ty#v3`57AwUDg_(o|8U!Tl^@ zQE0)((h5uK;|4xxs*d0E6U~A1suz*q$4S~v)*{&yd_0q;#O2B^wLb@qU%Wg>&_YZhbPW z0pTyzAXAZ=BuI=W?NiC5G^6e9hLl}5IL}X$Y&SMo0pjs<}RTH44|?($d%T zi5fV^Y)*4o-#HbrPH415bCAmAqgz}rab>`+wd zwWVY}m#aGq%XMmTDPrTRfR{jO`&p+*-i<9}Orseo8hpI;GzMAV@T~s|T zk`88eNBCNiHrJ{N87*rq`KS!j*34-1F)hfId*gq6u&Uo^32&om+kM32@ z%-qbaWlXnbtsY7gW&ixr^12Bj&B;*Hv?0xf-dWa)h8%XRN6O zyqcGTqn_Kv=xnf*?4H<}0_Y^)9Zk70)oVouvMtc%kaZGc!zO!=i?1tZ%k@5W_P#L1 zXIfj+mqZhbXqOAq)*|QDXd}>AiH=S!ppE)iun1`P)k*v@WN{zb#7bWbvblO!&>q2e z`o5N3r-xV8$T=Of@AGsUt2m=Z|DbG>Arf1~23H z;Qj$;K$6$tgXGuvO^=+1zJW%+3*4^f%1dA1$l>P8#sj!^UdiU;%Z>fZgMtt6xFq*= z);#y^h0z_Z$G|tovS`Cw!bLW-<0#~%Jennct;luNX97Aiecd=-Z|p#w>$i;U#}96EZmx4AXT^T&a(*qD zfcDHc3y#-SJJ9a>?UNlSasBqP{aC?m?!k2~_q_P>vRGhK?!7ki&4}am&<-@VeyiVp zTFZ#@@wSC>V|dU$E|GT0OkxU{@{W3fbPjtWyKy{_7^g`iVaYY| z?e&g$`f_7=U_Nf1mdlcB>f7TT^F(#yaiBhqo2JjAZxWNv$c&oC$U-x&dq8%Bec*FY zK5m~@&D>=Q=;1X2jAVU#NMkwB9_P9tzDeUU%3*p)k6h;+xV&Xz;V+R$zveh++O_r! z#1oiP9)C>BF+6xFIZWfaJcc!!bn^^PzsYh<=ju9EHJh~d%uc__*f2TpE^bcainZ(? zf5_c11N6z}lsu%3T;4*mcx3Y%QRmLljPE&uqS9aF^qCTykLk>SY|(y3t+JSJX^*lG z>EUCy3^zOnN$H%j&Stj?G~*}yOB4I~>pDt@zz-~U46)40i$G46J9>q0h3%ql;TIU| zRBbXpQjfmQ=ob8!1x*qvfQ)zQ!X5s0KorT|Q&s^LW3sBPwDZwjJ%hNFI&ZS^fhZ_?txi%#ooi-tj4K+XK&>TytuYo5=A!!^y+!#4xU>Ea%S2 zkzK;~8-j72k{e={#Y6AdbRTAO{qbwQp$EcEXYZ+hC-(zcKFl<+&i`Ehy$d|D%lW>K z_i1Gukd`>b^=vfwmbL3P2uRy?i`n!T9N+B&r|`iYe|f;={YvkyqfsM(v*#wnk8>6a z`)u5^+Z)JBKiu~hP6NU1*IEO8`W6A4voP3)p}zvZb`2_y_dD#fK@Y#y^gHaUzJnkA z5(mINDwI=u&ZT5V6tr#Gk|8TM{mR`=uRfNQG3)Hfgd4^fQFfc{5}U74t^LxTVK&|F`( zl5O4u*B?x&d*@&aKvX>P(#g9IAUEy6`(x+Y4}@1gdRqfFBc_@UZmO2PTeB}jAUE#Z zR7oC15SR`OYCSzko<$&c8UdlnsNm{iBQTuss9gSFJ!w86uHj5< z&EC6mIfYznMo|G4yBI@so?n;11eL(>{LuU#5!eRq969uSr+KYjezZ2vL0jCjp9t01 z^_viOzZ@5KS0G-vJ?8T$ZGmK88^(S%>JzVOL1$l^#(p;L3$0orA+S4(c&#-wR=;)W zL)N<%t?f}4^W#`M!hT)fsxIgvz|k4N9E8io_StaQRp)iIxze7wL?!@`GZJ{KuL)u+ z7-0KUA9;yw(oMD(T>f_s(wljR0I1(~{v!=rhiv}SBJcVq0NmnLf2=(6D$)n){(B(# zCBff8$UfD>@1f6y1@8nP{h2W2*XpD9&^Ps4W07|{P**;<8tC%$d&Halk)N0!`)$|1 zg_R&bcX*DB^H(1&hWhAT_jhjduROjUKM!8YY;yPtfB@Ie(+||^jJjh-5RJr_mI)Cc-v0B$>viv;w3i_OV@BM1HkdnnL!mSsFrqwO;B%_OV`S zMt-$gsz&y)y4u|8>hTMDhkHkUBY5F>wEsUMTyM^9raZTq3N)`xF+8{I^V=}F_Pma zM``^gF)=dZ+eg3p=cDCi#+QyN`bDEBWyYtD3i=zOzRHXb9!2z1Mpa4O^0$%A0843R zjx7`ldKC2ws%MD8UBw?L+dlEdxdRI&Fcf@mMS&_nS)dM37~`xXp(CX~A%HUeBh_;P zM?!OgTS7c#vPpu@w-i~*kl@#6Q!8Jko5YOV`Ilb@G;9K8Pf`;K|G$vTe81f!rss~o zm>kfs2&6xaj4S-lrT2E!MsusF`J6I7Wv}9U+4J-jmj8@!Xf^dGr<_mStLk3oymiI7 z@qZ#%Q@GjgRYk8g#<#OOEs9^P4C@lKT2pWcv_6eYDA@Tr-6Uq_uD$FX(EJx98=VXmo1PgzJ_dqcYTWVP*SdKt8x;&v8=e_o zKBn|XMNbTZYmPfoGP@XO$M^&j3M8kc)TRva3&-Swe`Ok%#w27zj8xQCHW-7kl+{#b zHWhP@^iovCrWN~+QZ&DFZO+Tjef{0E$>rrBIB95VHct)) z$T`-^m$ktV0W};D?XBuj`Lud|wXl8&0MQ5g|3L_3suP$ivF7yZ`C$BDBWyB6fB(YCkC(2O#Tg}-| z?r)5(0>n2(Qeml#Bs_qKlYR_+F&DVMfDv9@!0nq71IFjS?F~t9>^~lK*QzRq+5PH@ z+3|ltWv9GUo*Jytq(0LAW=Z)A@nBH?8@!FTz3Zr-L1_Nq-EoFgcp(5ZYy;5)ZavU?`@=w=EYyj@biB$>}lj+cPnl$VXtPdZtv$WIxgB) z@>;oTRVfK4IVT+_T_<5D5ho=l<(+R)UI}vv+6gQPd?T7tlw35&GHdDAwj;3N+CR4B zf36omy9uA+5Vc?$H6L|nqqU2{Uj#2Pa68cS+sy>1XIYQRTQZ#plY51ZTRl-@hI82p>F#w1tQDfjN(G5Wu)x?_uEIzM($!QXps zRU^Z>x^^$x1=WF%==i5z5+ubYbpQo;-dYk>i{3V=Aa$IPKF$tsDV`olq=R&^Y8I!|h zM=rM|74!10zkz0BCp-W@BRBsE@Baw2k%V4^XPFtqijq~w8-Z$(o=>TM2o4uF~nPj%gX$Zk|OO0WvdDO_4*k>J^J6< z>0kPEKHP0A{s(!F+N%i84M`yu*Dvx(zE@pQx6}{tfxX9GQaAXQ1T|OlzsHaSj7dOU z4D9DXN&6I=ZGuGf4&1pjXUMOYqT9OHdFXhY3KxD(^``cV%HwyecYYjyJAJUnH!4xzP z&QfGIcR=UIGk1e(C?52s({6b<9C%mS8X)pWaDj0T@Gb@9{?kZR{7+1cUpl-Y2uSAGvW(HxNfNuDms?0ofnUgHTW-fpa^-R`)5sHUkX{>t^_MW!pCZH4L?0t$6<;=(+sQW8y3XCgP zjUo6O+(WlxEM<0A!QHdhSO;_>op~A*cH6YHet|71S zHGmIzeN5jj@w-oahtk%&p7{Dno7ZM0XoB8myHBc6wzxI^BM81TJfK8Iv-%w z0&{FYqEM{q2qt3V-QNNQ@%^6<>Nr>ggffPma|&8dy)wioH=ZthF7vx{p9e0zPkC~^ zflnM=&z)0Uug4tx?=J+K?_~=7uebH~-uK5-@4f$+n*uk9C-y5RsjDaUt0(F!CzmTH z>Z>Q2ws+RHcMrCAr?z*fws!=!ca=?`i6+oc69`O7nn34Gpu;9mb`vPI3AEk>T5JM! zHi2BVUwyS-wY6V`w0%k{-)bt~IxF8wEBWoq1?33zYE7yas{@ zU1WW7+7x^Oxbp#$e0cy-zFz>@3DDaW;vL;d`MiB;wQ|Y4*F2s}Dt8G$h_7H_GmX38 zYpK^fye*&4+(KfXEnm-rNf>@tqOO&;e8bJ{XSQ=5K6$xz`58X32ds7F9}559lDRbeO=WL|YrcU8tp6MN^U$++ zpNI!aJ<6UrXKC{hZ=O23$7?e`%E>M^TbcZ-#6o0#lzG#_@?&C}?X>AGa47SxbcR`E zY8;=B<#v3UMPw>!-RM3pV?Vd{g{AoE43=%qgFVj-e@ah@#m8KB2ygBOdx06(VfCu# zr00ZY_0vqO)q?#bXhOkTWscu@#oQNE2%=|eUwq+ZYyXpVms|gKGd6!Fep5bw#(#4< zzgT+BY~GxHsa)SaZdrnN&Qp?o&@e}+@9aHs%{H|753wxaI%oYy&vMO}lXv!>yyp71 z=DPbv2{HIa^3E%kF`HbzhiAn%QTTr?%{$$OyTEm)9=p~&Kb+esurGMkWzeisqy6=t z>y}@@CG4(q&!Y|#KW@c);B~8k_t#IkNP~xgZ`xofY6{#dB=GfU=-;BYyuhJbUf@B# zxR1J9ZULMBf-rr>jT!^@fnnFa=TUp>RD{HEOazL(gNk4y0ogu0pDHxvla`Ui|40sf zgv2L-fm?W61^yh3qC4Xf1>xrW7;?P3A38)&#wDDFzhR|FW}_!i$-SyxBKWhsMSZF5 zI42S8o2`|JN_lvN9?##0h9pl#F@hVzxMm4#_TI^)<{B$`L;i|%VlHaG{6I6@o1mBL zSf@L?TAw*@?B~w}7X27;RolCuS`Q_M*OYUkHKP2?c zYJ;n6MK<&4qupG7!lfI$8$#;XWxa|yza!eUo^S=lxN0Q6xzUegTvcn_ zVvlIe_|o+PcAOf>E$OlcNvm~q zVSmwbvdu7iv(cRp`jc*SkpxwvuD)aGldoOLZmRYJ;IdV&o?EANELp+??P`cifE81-a)c?k)f`OR! zZw@d}l7J)r2}?+g_&W{^BMM@F^MYZo3_R+-<*%kbu${kG@qNaRYG^FtjgAXX#pW~B z&_qO{$cRhT&ffPrL)BaBkx-SHYO0&A0)3e(3hc$8gx9L@khR7}iI<q=qCrTT4<+M zU^~@L%+0u~7?GKHDIJlR=qMc#neZ;X)@MPr@?O04i{8xet-jWr+XNe=pw|C_SNeb1 ztA_k+x7K~UR!38zPjl0;$T!9L@AwBYB3*3biJ@;+X(Y(6^IKhHjQ=OC(*N*Z2|#W^ zvB=MJp&p%v0xL|p9A^Rq2iKvmW_>T~(_pLHPvqVH2yEMO+=AU(f*1R%uAcuYSy(&_ zY}!v%1!wai=6_oSj{QdVSOR%_6SnMUw3Cr&=ceAQrf6S=cG&p%P6lcFYBrJyXm6sD zsN1y0+78bxJPi5RjrrJ!0Ga^$ld0O1k=no}s(0;!sT8o2`eJ(=#&BaX=HVzq+W@cs{F*8$(8Ar^_%*@Qp%rJrxj+mKQBi3m9 zcmHdLufz6w9bU(NxL-0(ovJudon76P=Q){g_N+VUZzioUd^Vf;+3_&hPu!&Wt+URy z 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

&C&|`tgm&)ygBDI?hllmHZDn8JERvZ9 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 literal 0 HcmV?d00001 From 6adf19c6bf490992e4750228b2d69fcf194b15b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 10 May 2020 19:12:25 +0200 Subject: [PATCH 018/305] Fix: Rename data providers --- test/Integration/AbstractTestCase.php | 8 ++++---- test/Integration/Classes/FinalRuleTest.php | 4 ++-- .../Classes/FinalRuleWithAbstractClassesAllowedTest.php | 4 ++-- .../Classes/FinalRuleWithExcludedClassNamesTest.php | 4 ++-- test/Integration/Classes/NoExtendsRuleTest.php | 4 ++-- .../NoExtendsRuleWithClassesAllowedToBeExtendedTest.php | 4 ++-- .../Closures/NoNullableReturnTypeDeclarationRuleTest.php | 4 ++-- .../Closures/NoParameterWithNullDefaultValueRuleTest.php | 4 ++-- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 4 ++-- test/Integration/Expressions/NoCompactRuleTest.php | 4 ++-- test/Integration/Expressions/NoEmptyRuleTest.php | 4 ++-- .../Expressions/NoErrorSuppressionRuleTest.php | 4 ++-- test/Integration/Expressions/NoEvalRuleTest.php | 4 ++-- test/Integration/Expressions/NoIssetRuleTest.php | 4 ++-- test/Integration/Files/DeclareStrictTypesRuleTest.php | 4 ++-- .../Functions/NoNullableReturnTypeDeclarationRuleTest.php | 4 ++-- .../Functions/NoParameterWithNullDefaultValueRuleTest.php | 4 ++-- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 4 ++-- test/Integration/Methods/FinalInAbstractClassRuleTest.php | 4 ++-- .../NoConstructorParameterWithDefaultValueRuleTest.php | 4 ++-- .../Methods/NoNullableReturnTypeDeclarationRuleTest.php | 4 ++-- .../NoParameterWithContainerTypeDeclarationRuleTest.php | 4 ++-- .../Methods/NoParameterWithNullDefaultValueRuleTest.php | 4 ++-- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 4 ++-- test/Integration/Methods/PrivateInFinalClassRuleTest.php | 4 ++-- test/Integration/Statements/NoSwitchRuleTest.php | 4 ++-- 26 files changed, 54 insertions(+), 54 deletions(-) diff --git a/test/Integration/AbstractTestCase.php b/test/Integration/AbstractTestCase.php index 69d073ed..ccecf400 100644 --- a/test/Integration/AbstractTestCase.php +++ b/test/Integration/AbstractTestCase.php @@ -21,7 +21,7 @@ abstract class AbstractTestCase extends RuleTestCase { /** - * @dataProvider providerAnalysisSucceeds + * @dataProvider provideCasesWhereAnalysisShouldSucceed * * @param string $path */ @@ -36,7 +36,7 @@ final public function testAnalysisSucceeds(string $path): void } /** - * @dataProvider providerAnalysisFails + * @dataProvider provideCasesWhereAnalysisShouldFail * * @param string $path * @param array $error @@ -53,7 +53,7 @@ final public function testAnalysisFails(string $path, array $error): void ); } - abstract public function providerAnalysisSucceeds(): iterable; + abstract public function provideCasesWhereAnalysisShouldSucceed(): iterable; - abstract public function providerAnalysisFails(): iterable; + abstract public function provideCasesWhereAnalysisShouldFail(): iterable; } diff --git a/test/Integration/Classes/FinalRuleTest.php b/test/Integration/Classes/FinalRuleTest.php index 1bf16ffa..1f197c61 100644 --- a/test/Integration/Classes/FinalRuleTest.php +++ b/test/Integration/Classes/FinalRuleTest.php @@ -25,7 +25,7 @@ */ final class FinalRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'final-class' => __DIR__ . '/../../Fixture/Classes/FinalRule/Success/FinalClass.php', @@ -49,7 +49,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'abstract-class' => [ diff --git a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php index 701680dc..750e3705 100644 --- a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php +++ b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php @@ -25,7 +25,7 @@ */ final class FinalRuleWithAbstractClassesAllowedTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'abstract-class' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithAbstractClassesAllowed/Failure/AbstractClass.php', @@ -44,7 +44,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'neither-abstract-nor-final-class' => [ diff --git a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php index 08586d17..90614265 100644 --- a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php +++ b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php @@ -25,7 +25,7 @@ */ final class FinalRuleWithExcludedClassNamesTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'class-neither-abstract-nor-final-but-whitelisted' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithExcludedClassNames/Success/NeitherAbstractNorFinalClassButWhitelisted.php', @@ -44,7 +44,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'abstract-class' => [ diff --git a/test/Integration/Classes/NoExtendsRuleTest.php b/test/Integration/Classes/NoExtendsRuleTest.php index 16c7cfe8..527c375f 100644 --- a/test/Integration/Classes/NoExtendsRuleTest.php +++ b/test/Integration/Classes/NoExtendsRuleTest.php @@ -25,7 +25,7 @@ */ final class NoExtendsRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'class' => __DIR__ . '/../../Fixture/Classes/NoExtendsRule/Success/ExampleClass.php', @@ -42,7 +42,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'class-extending-other-class' => [ diff --git a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php index 95fccfcd..8f3cc6f1 100644 --- a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php +++ b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php @@ -25,7 +25,7 @@ */ final class NoExtendsRuleWithClassesAllowedToBeExtendedTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'class' => __DIR__ . '/../../Fixture/Classes/NoExtendsRuleWithClassesAllowedToBeExtended/Success/ExampleClass.php', @@ -44,7 +44,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'class-extending-other-class' => [ diff --git a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php index acbc803a..92fe728b 100644 --- a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php @@ -24,7 +24,7 @@ */ final class NoNullableReturnTypeDeclarationRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'closure-with-return-type-declaration' => __DIR__ . '/../../Fixture/Closures/NoNullableReturnTypeDeclarationRule/Success/closure-with-return-type-declaration.php', @@ -38,7 +38,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'closure-with-nullable-return-type-declaration' => [ diff --git a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php index 71a33a3c..c0de9ca1 100644 --- a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php @@ -24,7 +24,7 @@ */ final class NoParameterWithNullDefaultValueRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'closure-with-parameter-with-non-null-default-value' => __DIR__ . '/../../Fixture/Closures/NoParameterWithNullDefaultValueRule/Success/closure-with-parameter-with-non-null-default-value.php', @@ -39,7 +39,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'closure-with-parameter-with-null-default-value' => [ diff --git a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php index c527edcb..13aac582 100644 --- a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -24,7 +24,7 @@ */ final class NoParameterWithNullableTypeDeclarationRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'closure-with-parameter-with-type-declaration' => __DIR__ . '/../../Fixture/Closures/NoParameterWithNullableTypeDeclarationRule/Success/closure-with-parameter-with-type-declaration.php', @@ -39,7 +39,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'closure-with-parameter-with-nullable-type-declaration' => [ diff --git a/test/Integration/Expressions/NoCompactRuleTest.php b/test/Integration/Expressions/NoCompactRuleTest.php index 7361ad9d..9fded84a 100644 --- a/test/Integration/Expressions/NoCompactRuleTest.php +++ b/test/Integration/Expressions/NoCompactRuleTest.php @@ -24,7 +24,7 @@ */ final class NoCompactRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'compact-not-used' => __DIR__ . '/../../Fixture/Expressions/NoCompactRule/Success/compact-not-used.php', @@ -37,7 +37,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'compact-used-with-alias' => [ diff --git a/test/Integration/Expressions/NoEmptyRuleTest.php b/test/Integration/Expressions/NoEmptyRuleTest.php index 8f8534f6..3b776715 100644 --- a/test/Integration/Expressions/NoEmptyRuleTest.php +++ b/test/Integration/Expressions/NoEmptyRuleTest.php @@ -24,7 +24,7 @@ */ final class NoEmptyRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'empty-not-used' => __DIR__ . '/../../Fixture/Expressions/NoEmptyRule/Success/empty-not-used.php', @@ -37,7 +37,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'empty-used-with-correct-case' => [ diff --git a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php index 286f5ba5..fc03209a 100644 --- a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php +++ b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php @@ -24,7 +24,7 @@ */ final class NoErrorSuppressionRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'error-suppression-not-used' => __DIR__ . '/../../Fixture/Expressions/NoErrorSuppressionRule/Success/error-suppression-not-used.php', @@ -37,7 +37,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'error-suppression-used' => [ diff --git a/test/Integration/Expressions/NoEvalRuleTest.php b/test/Integration/Expressions/NoEvalRuleTest.php index 9c1844cc..a1bd3e7b 100644 --- a/test/Integration/Expressions/NoEvalRuleTest.php +++ b/test/Integration/Expressions/NoEvalRuleTest.php @@ -24,7 +24,7 @@ */ final class NoEvalRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'eval-not-used' => __DIR__ . '/../../Fixture/Expressions/NoEvalRule/Success/eval-not-used.php', @@ -37,7 +37,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'eval-used-with-correct-case' => [ diff --git a/test/Integration/Expressions/NoIssetRuleTest.php b/test/Integration/Expressions/NoIssetRuleTest.php index 1a755158..db444309 100644 --- a/test/Integration/Expressions/NoIssetRuleTest.php +++ b/test/Integration/Expressions/NoIssetRuleTest.php @@ -24,7 +24,7 @@ */ final class NoIssetRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'isset-not-used' => __DIR__ . '/../../Fixture/Expressions/NoIssetRule/Success/isset-not-used.php', @@ -37,7 +37,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'isset-used-with-correct-case' => [ diff --git a/test/Integration/Files/DeclareStrictTypesRuleTest.php b/test/Integration/Files/DeclareStrictTypesRuleTest.php index a8fd8e2c..32a82a51 100644 --- a/test/Integration/Files/DeclareStrictTypesRuleTest.php +++ b/test/Integration/Files/DeclareStrictTypesRuleTest.php @@ -24,7 +24,7 @@ */ final class DeclareStrictTypesRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'file-empty' => __DIR__ . '/../../Fixture/Files/DeclareStrictTypesRule/Success/file-empty.php', @@ -50,7 +50,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'file-with-comment-and-declare-strict-types-off' => [ diff --git a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php index 16b75d9a..c0028720 100644 --- a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php @@ -24,7 +24,7 @@ */ final class NoNullableReturnTypeDeclarationRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'function-with-return-type-declaration' => __DIR__ . '/../../Fixture/Functions/NoNullableReturnTypeDeclarationRule/Success/function-with-return-type-declaration.php', @@ -38,7 +38,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'function-with-nullable-return-type-declaration' => [ diff --git a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php index a41fdd46..88923e36 100644 --- a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php @@ -24,7 +24,7 @@ */ final class NoParameterWithNullDefaultValueRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'function-with-parameter-with-non-null-default-value' => __DIR__ . '/../../Fixture/Functions/NoParameterWithNullDefaultValueRule/Success/function-with-parameter-with-non-null-default-value.php', @@ -39,7 +39,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'function-with-parameter-with-null-default-value' => [ diff --git a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php index a11b86b4..f7e3a200 100644 --- a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -24,7 +24,7 @@ */ final class NoParameterWithNullableTypeDeclarationRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'function-with-parameter-with-type-declaration' => __DIR__ . '/../../Fixture/Functions/NoParameterWithNullableTypeDeclarationRule/Success/function-with-parameter-with-type-declaration.php', @@ -39,7 +39,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'function-with-parameter-with-nullable-type-declaration' => [ diff --git a/test/Integration/Methods/FinalInAbstractClassRuleTest.php b/test/Integration/Methods/FinalInAbstractClassRuleTest.php index 02fa1ff7..8c5d9d3e 100644 --- a/test/Integration/Methods/FinalInAbstractClassRuleTest.php +++ b/test/Integration/Methods/FinalInAbstractClassRuleTest.php @@ -25,7 +25,7 @@ */ final class FinalInAbstractClassRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'abstract-class-with-abstract-method' => __DIR__ . '/../../Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithAbstractMethod.php', @@ -42,7 +42,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'abstract-class-with-protected-method' => [ diff --git a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php index f69427a8..56e8bcc0 100644 --- a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php @@ -25,7 +25,7 @@ */ final class NoConstructorParameterWithDefaultValueRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'constructor-in-anonymous-class-with-parameter-without-default-value' => __DIR__ . '/../../Fixture/Methods/NoConstructorParameterWithDefaultValueRule/Success/constructor-in-anonymous-class-with-parameter-without-default-value.php', @@ -49,7 +49,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'constructor-in-anonymous-class-with-parameter-with-default-value' => [ diff --git a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php index e543eefb..05aa287e 100644 --- a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php @@ -25,7 +25,7 @@ */ final class NoNullableReturnTypeDeclarationRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'method-in-anonymous-class-with-return-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoNullableReturnTypeDeclarationRule/Success/MethodInAnonymousClassWithReturnTypeDeclaration.php', @@ -47,7 +47,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'method-in-anonymous-class-with-nullable-return-type-declaration' => [ diff --git a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php index 06c0e746..6c282d9e 100644 --- a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php @@ -27,7 +27,7 @@ */ final class NoParameterWithContainerTypeDeclarationRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'anonymous-class-with-method-with-parameter-with-other-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/anonymous-class-with-method-with-parameter-with-other-type-declaration.php', @@ -45,7 +45,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'anonymous-class-with-method-with-parameter-with-class-implementing-container-interface-as-type-declaration' => [ diff --git a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php index b04200f4..da9a1205 100644 --- a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php @@ -25,7 +25,7 @@ */ final class NoParameterWithNullDefaultValueRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'method-in-anonymous-class-with-parameter-with-non-null-default-value' => __DIR__ . '/../../Fixture/Methods/NoParameterWithNullDefaultValueRule/Success/method-in-anonymous-class-with-parameter-with-non-null-default-value.php', @@ -53,7 +53,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'method-in-anonymous-class-with-parameter-with-null-default-value' => [ diff --git a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php index 77488355..65df833b 100644 --- a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -25,7 +25,7 @@ */ final class NoParameterWithNullableTypeDeclarationRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'method-in-anonymous-class-with-parameter-with-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Success/method-in-anonymous-class-with-parameter-with-type-declaration.php', @@ -50,7 +50,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'method-in-anonymous-class-with-parameter-with-nullable-type-declaration' => [ diff --git a/test/Integration/Methods/PrivateInFinalClassRuleTest.php b/test/Integration/Methods/PrivateInFinalClassRuleTest.php index 2f2b16f1..444cbcde 100644 --- a/test/Integration/Methods/PrivateInFinalClassRuleTest.php +++ b/test/Integration/Methods/PrivateInFinalClassRuleTest.php @@ -25,7 +25,7 @@ */ final class PrivateInFinalClassRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'abstract-class-with-protected-method' => __DIR__ . '/../../Fixture/Methods/PrivateInFinalClassRule/Success/AbstractClassWithProtectedMethod.php', @@ -43,7 +43,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'final-class-with-protected-method' => [ diff --git a/test/Integration/Statements/NoSwitchRuleTest.php b/test/Integration/Statements/NoSwitchRuleTest.php index 0abee3d1..e4577ce8 100644 --- a/test/Integration/Statements/NoSwitchRuleTest.php +++ b/test/Integration/Statements/NoSwitchRuleTest.php @@ -24,7 +24,7 @@ */ final class NoSwitchRuleTest extends AbstractTestCase { - public function providerAnalysisSucceeds(): iterable + public function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'isset-not-used' => __DIR__ . '/../../Fixture/Statements/NoSwitchRule/Success/switch-not-used.php', @@ -37,7 +37,7 @@ public function providerAnalysisSucceeds(): iterable } } - public function providerAnalysisFails(): iterable + public function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'switch-used-with-correct-case' => [ From bdccf2322e4568f28cae5f54aff9aaf72da30316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 10 May 2020 20:33:02 +0200 Subject: [PATCH 019/305] Enhancement: Implement Classes\PHPUnit\Framework\TestCaseWithSuffixRule --- .php_cs.fixture | 1 + CHANGELOG.md | 15 ++- README.md | 4 + phpstan-baseline.neon | 5 + psalm-baseline.xml | 11 ++- rules.neon | 6 ++ .../Framework/TestCaseWithSuffixRule.php | 99 +++++++++++++++++++ .../Failure/AbstractTestCase.php | 14 +++ ...ndingAbstractTestCaseWithoutTestSuffix.php | 14 +++ .../ConcreteTestCaseWithoutTestSuffix.php | 20 ++++ .../ConcreteTestCaseWithSuffixTest.php | 20 ++++ .../Success/ExplicitlyAbstractTestCase.php | 14 +++ .../Success/ImplicitlyAbstractTestCase.php | 17 ++++ .../Framework/TestCaseWithSuffixRuleTest.php | 83 ++++++++++++++++ 14 files changed, 320 insertions(+), 3 deletions(-) create mode 100644 src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php create mode 100644 test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Failure/AbstractTestCase.php create mode 100644 test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Failure/ConcreteTestCaseExtendingAbstractTestCaseWithoutTestSuffix.php create mode 100644 test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Failure/ConcreteTestCaseWithoutTestSuffix.php create mode 100644 test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ConcreteTestCaseWithSuffixTest.php create mode 100644 test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ExplicitlyAbstractTestCase.php create mode 100644 test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ImplicitlyAbstractTestCase.php create mode 100644 test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php diff --git a/.php_cs.fixture b/.php_cs.fixture index 8dc99b0d..159087bf 100644 --- a/.php_cs.fixture +++ b/.php_cs.fixture @@ -18,6 +18,7 @@ $config = Config\Factory::fromRuleSet(new Config\RuleSet\Php71(''), [ 'declare_strict_types' => false, 'error_suppression' => false, 'final_class' => false, + 'final_internal_class' => false, 'final_public_method_for_abstract_class' => false, 'header_comment' => false, 'lowercase_constants' => false, diff --git a/CHANGELOG.md b/CHANGELOG.md index af2f1300..c7f35cf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased -For a full diff see [`0.14.4...master`][0.14.4...master]. +For a full diff see [`0.15.0...master`][0.15.0...master]. + +## [`0.15.0`][0.15.0] + +For a full diff see [`0.14.4...0.15.0`][0.14.4...0.15.0]. + +### Added + +* Added `Classes\PHPUnit\Framework\TestCaseWithSuffixRule`, which reports an error when a concrete class extending `PHPUnit\Framework\TestCase` does not have a `Test` suffix ([#225], by [@localheinz] ## [`0.14.4`][0.14.4] @@ -314,6 +322,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.14.2]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.14.2 [0.14.3]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.14.3 [0.14.4]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.14.4 +[0.15.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.0 [362c7ea...0.1.0]: https://github.com/ergebnis/phpstan-rules/compare/362c7ea...0.1.0 [0.1.0...0.2.0]: https://github.com/ergebnis/phpstan-rules/compare/0.1.0...0.2.0 @@ -338,7 +347,8 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.14.1...0.14.2]: https://github.com/ergebnis/phpstan-rules/compare/0.14.1...0.14.2 [0.14.2...0.14.3]: https://github.com/ergebnis/phpstan-rules/compare/0.14.2...0.14.3 [0.14.3...0.14.4]: https://github.com/ergebnis/phpstan-rules/compare/0.14.3...0.14.4 -[0.14.4...master]: https://github.com/ergebnis/phpstan-rules/compare/0.14.4...master +[0.14.4...0.15.0]: https://github.com/ergebnis/phpstan-rules/compare/0.14.4...0.15.0 +[0.15.0...master]: https://github.com/ergebnis/phpstan-rules/compare/0.15.0...master [#1]: https://github.com/ergebnis/phpstan-rules/pull/1 [#4]: https://github.com/ergebnis/phpstan-rules/pull/4 @@ -387,6 +397,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#166]: https://github.com/ergebnis/phpstan-rules/pull/166 [#186]: https://github.com/ergebnis/phpstan-rules/pull/186 [#202]: https://github.com/ergebnis/phpstan-rules/pull/202 +[#225]: https://github.com/ergebnis/phpstan-rules/pull/225 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique diff --git a/README.md b/README.md index ddac00bc..378f25a5 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ This package provides the following rules for use with [`phpstan/phpstan`](https * [`Ergebnis\PHPStan\Rules\Classes\FinalRule`](https://github.com/ergebnis/phpstan-rules#classesfinalrule) * [`Ergebnis\PHPStan\Rules\Classes\NoExtendsRule`](https://github.com/ergebnis/phpstan-rules#classesnoextendsrule) +* [`Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule`](https://github.com/ergebnis/phpstan-rules#classesphpunitframeworktestcasewithsuffixrule) * [`Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#closuresnonullablereturntypedeclarationrule) * [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnullabletypedeclarationrule) * [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnulldefaultvaluerule) @@ -118,6 +119,9 @@ parameters: - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase - PHPStan\Testing\RuleTestCase ``` +#### `Classes\PHPUnit\Framework\TestCaseWithSuffixRule` + +This rule reports an error when a concrete class is a sub-class of `PHPUnit\Framework\TestCase` but does not have a `Test` suffix. ### Closures diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index bfbdb127..bf9b5964 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -22,6 +22,11 @@ parameters: count: 1 path: src/Classes/NoExtendsRule.php + - + message: "#^Language construct isset\\(\\) should not be used\\.$#" + count: 1 + path: src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php + - message: "#^Language construct isset\\(\\) should not be used\\.$#" count: 1 diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 223e9ba0..3c41905a 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + $node->namespacedName @@ -20,6 +20,15 @@ + + + $node->namespacedName->toString() + $node->namespacedName + + + toString + + $node->namespacedName diff --git a/rules.neon b/rules.neon index c7b93c4c..4a16b9ed 100644 --- a/rules.neon +++ b/rules.neon @@ -42,6 +42,7 @@ services: classesNotRequiredToBeAbstractOrFinal: %ergebnis.classesNotRequiredToBeAbstractOrFinal% tags: - phpstan.rules.rule + - class: Ergebnis\PHPStan\Rules\Classes\NoExtendsRule arguments: @@ -49,6 +50,11 @@ services: tags: - phpstan.rules.rule + - + class: Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule + tags: + - phpstan.rules.rule + - class: Ergebnis\PHPStan\Rules\Methods\NoParameterWithContainerTypeDeclarationRule arguments: diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php new file mode 100644 index 00000000..ccfaa66e --- /dev/null +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -0,0 +1,99 @@ +broker = $broker; + } + + public function getNodeType(): string + { + return Node\Stmt\Class_::class; + } + + public function processNode(Node $node, Analyser\Scope $scope): array + { + if (!$node instanceof Node\Stmt\Class_) { + throw new ShouldNotHappenException(\sprintf( + 'Expected node to be instance of "%s", but got instance of "%s" instead.', + Node\Stmt\Class_::class, + \get_class($node) + )); + } + + if ($node->isAbstract()) { + return []; + } + + if (!$node->extends instanceof Node\Name) { + return []; + } + + if (!isset($node->namespacedName)) { + return []; + } + + /** @var string $fullyQualifiedClassName */ + $fullyQualifiedClassName = $node->namespacedName->toString(); + + $classReflection = $this->broker->getClass($fullyQualifiedClassName); + + $extendedPhpunitTestCaseClassName = ''; + + foreach (self::$phpunitTestCaseClassNames as $phpunitTestCaseClassName) { + if ($classReflection->isSubclassOf($phpunitTestCaseClassName)) { + $extendedPhpunitTestCaseClassName = $phpunitTestCaseClassName; + + break; + } + } + + if ('' === $extendedPhpunitTestCaseClassName) { + return []; + } + + if (1 === \preg_match('/Test$/', $fullyQualifiedClassName)) { + return []; + } + + return [ + \sprintf( + 'Class %s extends %s, is concrete, but does not have a Test suffix.', + $fullyQualifiedClassName, + $extendedPhpunitTestCaseClassName + ), + ]; + } +} diff --git a/test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Failure/AbstractTestCase.php b/test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Failure/AbstractTestCase.php new file mode 100644 index 00000000..2ca8b4d9 --- /dev/null +++ b/test/Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Failure/AbstractTestCase.php @@ -0,0 +1,14 @@ + __DIR__ . '/../../../../Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ConcreteTestCaseWithSuffixTest.php', + 'explicitly-abstract-test-case' => __DIR__ . '/../../../../Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ExplicitlyAbstractTestCase.php', + 'implicitly-abstract-test-case' => __DIR__ . '/../../../../Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ExplicitlyAbstractTestCase.php', + ]; + + foreach ($paths as $description => $path) { + yield $description => [ + $path, + ]; + } + } + + public function provideCasesWhereAnalysisShouldFail(): iterable + { + $paths = [ + 'concrete-test-case-extending-abstract-test-case-without-test-suffix' => [ + __DIR__ . '/../../../../Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Failure/ConcreteTestCaseExtendingAbstractTestCaseWithoutTestSuffix.php', + [ + \sprintf( + 'Class %s extends %s, is concrete, but does not have a Test suffix.', + Fixture\Classes\PHPUnit\Framework\TestCaseWithSuffixRule\Failure\ConcreteTestCaseExtendingAbstractTestCaseWithoutTestSuffix::class, + Framework\TestCase::class + ), + 12, + ], + ], + 'concrete-test-case-without-test-suffix' => [ + __DIR__ . '/../../../../Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Failure/ConcreteTestCaseWithoutTestSuffix.php', + [ + \sprintf( + 'Class %s extends %s, is concrete, but does not have a Test suffix.', + Fixture\Classes\PHPUnit\Framework\TestCaseWithSuffixRule\Failure\ConcreteTestCaseWithoutTestSuffix::class, + Framework\TestCase::class + ), + 14, + ], + ], + ]; + + foreach ($paths as $description => [$path, $error]) { + yield $description => [ + $path, + $error, + ]; + } + } + + protected function getRule(): Rule + { + return new TestCaseWithSuffixRule($this->createBroker()); + } +} From 92d867ec277f05b45bced6bfbbb47fcb69419d91 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 11 May 2020 19:34:32 +0000 Subject: [PATCH 020/305] Build(deps-dev): Bump vimeo/psalm from 3.11.2 to 3.11.4 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.11.2 to 3.11.4. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.11.2...3.11.4) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 97 +++++++++++++++++++++++++-------------------------- 2 files changed, 48 insertions(+), 51 deletions(-) diff --git a/composer.json b/composer.json index e9768738..3a6194fd 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.0", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.11.2", + "vimeo/psalm": "^3.11.4", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 1e353704..a17bc5a3 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": "8f405cb7e4a1a8eb6f1e85845b7adaac", + "content-hash": "1d44991df1f6e02b5fb64c318616c08c", "packages": [ { "name": "composer/xdebug-handler", @@ -950,7 +950,7 @@ }, { "name": "symfony/console", - "version": "v4.4.7", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", @@ -1075,16 +1075,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.15.0", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" + "reference": "a54881ec0ab3b2005c406aed0023c062879031e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", - "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a54881ec0ab3b2005c406aed0023c062879031e7", + "reference": "a54881ec0ab3b2005c406aed0023c062879031e7", "shasum": "" }, "require": { @@ -1096,7 +1096,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -1130,20 +1130,20 @@ "portable", "shim" ], - "time": "2020-03-09T19:04:49+00:00" + "time": "2020-05-08T16:50:20+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.15.0", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7" + "reference": "7e95fe59d12169fcf4041487e4bf34fca37ee0ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", - "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/7e95fe59d12169fcf4041487e4bf34fca37ee0ed", + "reference": "7e95fe59d12169fcf4041487e4bf34fca37ee0ed", "shasum": "" }, "require": { @@ -1152,7 +1152,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -1188,7 +1188,7 @@ "portable", "shim" ], - "time": "2020-02-27T09:26:54+00:00" + "time": "2020-05-02T14:56:09+00:00" }, { "name": "symfony/service-contracts", @@ -1252,16 +1252,16 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.4.2", + "version": "v2.4.4", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "feca077369a47263b22156b3c6389e55f3809f24" + "reference": "1e58d53e4af390efc7813e36cd215bd82cba4b06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/feca077369a47263b22156b3c6389e55f3809f24", - "reference": "feca077369a47263b22156b3c6389e55f3809f24", + "url": "https://api.github.com/repos/amphp/amp/zipball/1e58d53e4af390efc7813e36cd215bd82cba4b06", + "reference": "1e58d53e4af390efc7813e36cd215bd82cba4b06", "shasum": "" }, "require": { @@ -1274,7 +1274,7 @@ "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^6.0.9 | ^7", "react/promise": "^2", - "vimeo/psalm": "^3.9@dev" + "vimeo/psalm": "^3.11@dev" }, "type": "library", "extra": { @@ -1326,7 +1326,7 @@ "non-blocking", "promise" ], - "time": "2020-04-04T15:05:26+00:00" + "time": "2020-04-30T04:54:50+00:00" }, { "name": "amphp/byte-stream", @@ -2622,16 +2622,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v2.0.0", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "e245890383c3ed38b6d202ee373c23ccfebc0f54" + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e245890383c3ed38b6d202ee373c23ccfebc0f54", - "reference": "e245890383c3ed38b6d202ee373c23ccfebc0f54", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", "shasum": "" }, "require": { @@ -2664,7 +2664,7 @@ } ], "description": "Map nested JSON structures onto PHP classes", - "time": "2020-03-04T17:23:33+00:00" + "time": "2020-04-16T18:48:43+00:00" }, { "name": "openlss/lib-array2xml", @@ -3036,24 +3036,21 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b", + "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b", "shasum": "" }, "require": { "php": ">=7.1" }, - "require-dev": { - "phpunit/phpunit": "~6" - }, "type": "library", "extra": { "branch-alias": { @@ -3084,7 +3081,7 @@ "reflection", "static analysis" ], - "time": "2018-08-07T13:53:10+00:00" + "time": "2020-04-27T09:25:28+00:00" }, { "name": "phpdocumentor/reflection-docblock", @@ -4587,16 +4584,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.15.0", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" + "reference": "1aab00e39cebaef4d8652497f46c15c1b7e45294" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", - "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1aab00e39cebaef4d8652497f46c15c1b7e45294", + "reference": "1aab00e39cebaef4d8652497f46c15c1b7e45294", "shasum": "" }, "require": { @@ -4608,7 +4605,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.16-dev" } }, "autoload": { @@ -4641,7 +4638,7 @@ "polyfill", "portable" ], - "time": "2020-02-27T09:26:54+00:00" + "time": "2020-05-08T16:50:20+00:00" }, { "name": "symfony/polyfill-php70", @@ -4957,16 +4954,16 @@ }, { "name": "vimeo/psalm", - "version": "3.11.2", + "version": "3.11.4", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "d470903722cfcbc1cd04744c5491d3e6d13ec3d9" + "reference": "58e1d8e68e5098bf4fbfdfb420c38d563f882549" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d470903722cfcbc1cd04744c5491d3e6d13ec3d9", - "reference": "d470903722cfcbc1cd04744c5491d3e6d13ec3d9", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/58e1d8e68e5098bf4fbfdfb420c38d563f882549", + "reference": "58e1d8e68e5098bf4fbfdfb420c38d563f882549", "shasum": "" }, "require": { @@ -5051,20 +5048,20 @@ "inspection", "php" ], - "time": "2020-04-13T12:47:11+00:00" + "time": "2020-05-11T13:39:25+00:00" }, { "name": "webmozart/assert", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", - "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", + "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", "shasum": "" }, "require": { @@ -5072,7 +5069,7 @@ "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "vimeo/psalm": "<3.6.0" + "vimeo/psalm": "<3.9.1" }, "require-dev": { "phpunit/phpunit": "^4.8.36 || ^7.5.13" @@ -5099,7 +5096,7 @@ "check", "validate" ], - "time": "2020-02-14T12:15:55+00:00" + "time": "2020-04-18T12:12:48+00:00" }, { "name": "webmozart/glob", From bdc6880f33a8adaef3d348f67db0cbf636b494d5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 24 May 2020 21:15:23 +0000 Subject: [PATCH 021/305] Build(deps-dev): Bump psalm/plugin-phpunit from 0.10.0 to 0.10.1 Bumps [psalm/plugin-phpunit](https://github.com/psalm/psalm-plugin-phpunit) from 0.10.0 to 0.10.1. - [Release notes](https://github.com/psalm/psalm-plugin-phpunit/releases) - [Commits](https://github.com/psalm/psalm-plugin-phpunit/compare/0.10.0...0.10.1) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 3a6194fd..33a9e669 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.0", + "psalm/plugin-phpunit": "~0.10.1", "psr/container": "^1.0.0", "vimeo/psalm": "^3.11.4", "zendframework/zend-servicemanager": "^2.0.0" diff --git a/composer.lock b/composer.lock index a17bc5a3..19646e7c 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": "1d44991df1f6e02b5fb64c318616c08c", + "content-hash": "e33903cf8f0a75d4b1fbdaa388f89e39", "packages": [ { "name": "composer/xdebug-handler", @@ -3735,16 +3735,16 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.10.0", + "version": "0.10.1", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "12b3978cea0e9ad3aa3a127a93d3b8a1ce0eb2af" + "reference": "138998ffd32b76a2e69eb1ff94ef2bf110967273" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/12b3978cea0e9ad3aa3a127a93d3b8a1ce0eb2af", - "reference": "12b3978cea0e9ad3aa3a127a93d3b8a1ce0eb2af", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/138998ffd32b76a2e69eb1ff94ef2bf110967273", + "reference": "138998ffd32b76a2e69eb1ff94ef2bf110967273", "shasum": "" }, "require": { @@ -3758,7 +3758,7 @@ "require-dev": { "codeception/codeception": "^4.0.3", "squizlabs/php_codesniffer": "^3.3.1", - "weirdan/codeception-psalm-module": "^0.4.0" + "weirdan/codeception-psalm-module": "^0.7.1" }, "type": "psalm-plugin", "extra": { @@ -3782,7 +3782,7 @@ } ], "description": "Psalm plugin for PHPUnit", - "time": "2020-04-05T22:49:26+00:00" + "time": "2020-05-24T20:30:10+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", From 9ab2dedaae5592014c1e4dd4bb8ab7b4fea0782c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 27 May 2020 18:08:40 +0000 Subject: [PATCH 022/305] Build(deps-dev): Bump vimeo/psalm from 3.11.4 to 3.11.5 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.11.4 to 3.11.5. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.11.4...3.11.5) Signed-off-by: dependabot-preview[bot] --- composer.json | 2 +- composer.lock | 51 +++++++++++++++++++++++++-------------------------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/composer.json b/composer.json index 33a9e669..dd8b862f 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.11.4", + "vimeo/psalm": "^3.11.5", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 19646e7c..f619e27f 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": "e33903cf8f0a75d4b1fbdaa388f89e39", + "content-hash": "fbba63942193f48783a5a5b2385ae53c", "packages": [ { "name": "composer/xdebug-handler", @@ -1075,16 +1075,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.16.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "a54881ec0ab3b2005c406aed0023c062879031e7" + "reference": "fa79b11539418b02fc5e1897267673ba2c19419c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a54881ec0ab3b2005c406aed0023c062879031e7", - "reference": "a54881ec0ab3b2005c406aed0023c062879031e7", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c", + "reference": "fa79b11539418b02fc5e1897267673ba2c19419c", "shasum": "" }, "require": { @@ -1096,7 +1096,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.16-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -1130,20 +1130,20 @@ "portable", "shim" ], - "time": "2020-05-08T16:50:20+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.16.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "7e95fe59d12169fcf4041487e4bf34fca37ee0ed" + "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/7e95fe59d12169fcf4041487e4bf34fca37ee0ed", - "reference": "7e95fe59d12169fcf4041487e4bf34fca37ee0ed", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a760d8964ff79ab9bf057613a5808284ec852ccc", + "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc", "shasum": "" }, "require": { @@ -1152,7 +1152,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.16-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -1188,7 +1188,7 @@ "portable", "shim" ], - "time": "2020-05-02T14:56:09+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/service-contracts", @@ -4584,16 +4584,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.16.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "1aab00e39cebaef4d8652497f46c15c1b7e45294" + "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1aab00e39cebaef4d8652497f46c15c1b7e45294", - "reference": "1aab00e39cebaef4d8652497f46c15c1b7e45294", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9", "shasum": "" }, "require": { @@ -4605,7 +4605,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.16-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -4638,7 +4638,7 @@ "polyfill", "portable" ], - "time": "2020-05-08T16:50:20+00:00" + "time": "2020-05-12T16:14:59+00:00" }, { "name": "symfony/polyfill-php70", @@ -4954,16 +4954,16 @@ }, { "name": "vimeo/psalm", - "version": "3.11.4", + "version": "3.11.5", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "58e1d8e68e5098bf4fbfdfb420c38d563f882549" + "reference": "3c60609c218d4d4b3b257728b8089094e5c6c6c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/58e1d8e68e5098bf4fbfdfb420c38d563f882549", - "reference": "58e1d8e68e5098bf4fbfdfb420c38d563f882549", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/3c60609c218d4d4b3b257728b8089094e5c6c6c2", + "reference": "3c60609c218d4d4b3b257728b8089094e5c6c6c2", "shasum": "" }, "require": { @@ -5025,8 +5025,7 @@ }, "autoload": { "psr-4": { - "Psalm\\Plugin\\": "src/Psalm/Plugin", - "Psalm\\": "src/Psalm" + "Psalm\\": "src/Psalm/" }, "files": [ "src/functions.php", @@ -5048,7 +5047,7 @@ "inspection", "php" ], - "time": "2020-05-11T13:39:25+00:00" + "time": "2020-05-27T15:12:09+00:00" }, { "name": "webmozart/assert", From 5ca61d99d68fb08a7c7fdf2dabd959a67343ab27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Wed, 10 Jun 2020 18:16:20 +0200 Subject: [PATCH 023/305] Fix: Use main as default branch name --- .github/settings.yml | 4 ++-- .github/workflows/integrate.yaml | 2 +- CHANGELOG.md | 4 ++-- README.md | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index 2f4990f1..b1645181 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -1,7 +1,7 @@ # https://github.com/probot/settings branches: - - name: "master" + - name: "main" # https://developer.github.com/v3/repos/branches/#remove-branch-protection # https://developer.github.com/v3/repos/branches/#update-branch-protection @@ -83,7 +83,7 @@ repository: allow_rebase_merge: false allow_squash_merge: false archived: false - default_branch: "master" + default_branch: "main" delete_branch_on_merge: true description: ":eyeglasses: Provides additional rules for phpstan/phpstan." has_downloads: true diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index c14ee572..4f6dc5ac 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -6,7 +6,7 @@ on: # yamllint disable-line rule:truthy pull_request: null push: branches: - - "master" + - "main" env: MIN_COVERED_MSI: 92 diff --git a/CHANGELOG.md b/CHANGELOG.md index c7f35cf5..ec1c4723 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased -For a full diff see [`0.15.0...master`][0.15.0...master]. +For a full diff see [`0.15.0...main`][0.15.0...main]. ## [`0.15.0`][0.15.0] @@ -348,7 +348,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.14.2...0.14.3]: https://github.com/ergebnis/phpstan-rules/compare/0.14.2...0.14.3 [0.14.3...0.14.4]: https://github.com/ergebnis/phpstan-rules/compare/0.14.3...0.14.4 [0.14.4...0.15.0]: https://github.com/ergebnis/phpstan-rules/compare/0.14.4...0.15.0 -[0.15.0...master]: https://github.com/ergebnis/phpstan-rules/compare/0.15.0...master +[0.15.0...main]: https://github.com/ergebnis/phpstan-rules/compare/0.15.0...main [#1]: https://github.com/ergebnis/phpstan-rules/pull/1 [#4]: https://github.com/ergebnis/phpstan-rules/pull/4 diff --git a/README.md b/README.md index 378f25a5..781f25b6 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # phpstan-rules -[![Integrate](https://github.com/ergebnis/phpstan-rules/workflows/Integrate/badge.svg?branch=master)](https://github.com/ergebnis/phpstan-rules/actions) -[![Prune](https://github.com/ergebnis/phpstan-rules/workflows/Prune/badge.svg?branch=master)](https://github.com/ergebnis/phpstan-rules/actions) -[![Release](https://github.com/ergebnis/phpstan-rules/workflows/Release/badge.svg?branch=master)](https://github.com/ergebnis/phpstan-rules/actions) -[![Renew](https://github.com/ergebnis/phpstan-rules/workflows/Renew/badge.svg?branch=master)](https://github.com/ergebnis/phpstan-rules/actions) +[![Integrate](https://github.com/ergebnis/phpstan-rules/workflows/Integrate/badge.svg?branch=main)](https://github.com/ergebnis/phpstan-rules/actions) +[![Prune](https://github.com/ergebnis/phpstan-rules/workflows/Prune/badge.svg?branch=main)](https://github.com/ergebnis/phpstan-rules/actions) +[![Release](https://github.com/ergebnis/phpstan-rules/workflows/Release/badge.svg?branch=main)](https://github.com/ergebnis/phpstan-rules/actions) +[![Renew](https://github.com/ergebnis/phpstan-rules/workflows/Renew/badge.svg?branch=main)](https://github.com/ergebnis/phpstan-rules/actions) -[![Code Coverage](https://codecov.io/gh/ergebnis/phpstan-rules/branch/master/graph/badge.svg)](https://codecov.io/gh/ergebnis/phpstan-rules) +[![Code Coverage](https://codecov.io/gh/ergebnis/phpstan-rules/branch/main/graph/badge.svg)](https://codecov.io/gh/ergebnis/phpstan-rules) [![Type Coverage](https://shepherd.dev/github/ergebnis/phpstan-rules/coverage.svg)](https://shepherd.dev/github/ergebnis/phpstan-rules) [![Latest Stable Version](https://poser.pugx.org/ergebnis/phpstan-rules/v/stable)](https://packagist.org/packages/ergebnis/phpstan-rules) @@ -268,7 +268,7 @@ Please have a look at [`CONTRIBUTING.md`](.github/CONTRIBUTING.md). ## Code of Conduct -Please have a look at [`CODE_OF_CONDUCT.md`](https://github.com/ergebnis/.github/blob/master/CODE_OF_CONDUCT.md). +Please have a look at [`CODE_OF_CONDUCT.md`](https://github.com/ergebnis/.github/blob/main/CODE_OF_CONDUCT.md). ## License From 33296d357b08a4bf0aa4e66359a8f3076e993915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 14 Jun 2020 18:20:31 +0200 Subject: [PATCH 024/305] Enhancement: Synchronize with ergebnis/php-library-template --- .dependabot/config.yaml | 21 --------------------- .gitattributes | 1 - .github/CONTRIBUTING.md | 18 +++++++++--------- .github/dependabot.yml | 26 ++++++++++++++++++++++++++ .github/workflows/integrate.yaml | 28 ++++++++++++++-------------- .github/workflows/prune.yaml | 2 +- .github/workflows/renew.yaml | 4 ++-- .github/workflows/triage.yaml | 7 ++++--- .php_cs | 5 ++--- .php_cs.fixture | 8 +++----- README.md | 2 +- infection.json | 14 +++++++------- 12 files changed, 69 insertions(+), 67 deletions(-) delete mode 100644 .dependabot/config.yaml create mode 100644 .github/dependabot.yml diff --git a/.dependabot/config.yaml b/.dependabot/config.yaml deleted file mode 100644 index 429ce1af..00000000 --- a/.dependabot/config.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# https://dependabot.com/docs/config-file/ - -version: 1 - -update_configs: - - commit_message: - include_scope: true - prefix: "Build" - default_labels: - - "dependency" - directory: "/" - ignored_updates: - - match: - dependency_name: "nikic/php-parser" - - match: - dependency_name: "phpstan/phpstan" - - match: - dependency_name: "zendframework/zend-servicemanager" - package_manager: "php:composer" - update_schedule: "live" - version_requirement_updates: "increase_versions" diff --git a/.gitattributes b/.gitattributes index 48dbf2f4..99692297 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,3 @@ -/.dependabot/ export-ignore /.github/ export-ignore /test/ export-ignore /tools/ export-ignore diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 4a07dd7e..d0d33d0b 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -18,7 +18,7 @@ We are using [`yamllint`](https://github.com/adrienverge/yamllint) to enforce co If you do not have `yamllint` installed yet, run -``` +```sh $ brew install yamllint ``` @@ -28,7 +28,7 @@ We are using [`friendsofphp/php-cs-fixer`](https://github.com/FriendsOfPHP/PHP-C Run -``` +```sh $ make coding-standards ``` @@ -40,7 +40,7 @@ We are using [`maglnet/composer-require-checker`](https://github.com/maglnet/Com Run -``` +```sh $ make dependency-analysis ``` @@ -52,7 +52,7 @@ We are using [`phpstan/phpstan`](https://github.com/phpstan/phpstan) and [`vimeo Run -``` +```sh $ make static-code-analysis ``` @@ -62,7 +62,7 @@ We are also using the baseline features of [`phpstan/phpstan`](https://medium.co Run -``` +```sh $ make static-code-analysis-baseline ``` @@ -76,7 +76,7 @@ We are using [`phpunit/phpunit`](https://github.com/sebastianbergmann/phpunit) t Run -``` +```sh $ make tests ``` @@ -88,7 +88,7 @@ We are using [`infection/infection`](https://github.com/infection/infection) to Enable `pcov` or `Xdebug` and run -``` +```sh $ make mutation-tests ``` @@ -98,7 +98,7 @@ to run mutation tests. Run -``` +```sh $ make ``` @@ -108,7 +108,7 @@ to enforce coding standards, run a static code analysis, and run tests! :bulb: Run -``` +```sh $ make help ``` diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..455760a4 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,26 @@ +# https://help.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#target-branch + +version: 2 + +updates: + - commit-message: + include: "scope" + prefix: "Build" + directory: "/" + labels: + - "dependency" + open-pull-requests-limit: 10 + package-ecosystem: "composer" + schedule: + interval: "daily" + + - commit-message: + include: "scope" + prefix: "Build" + directory: "/" + labels: + - "dependency" + open-pull-requests-limit: 10 + package-ecosystem: "github-actions" + schedule: + interval: "daily" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 4f6dc5ac..da34bea8 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -53,7 +53,7 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -78,7 +78,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('composer.lock') }}" @@ -116,7 +116,7 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -166,7 +166,7 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -188,7 +188,7 @@ jobs: run: "mkdir -p .build/phpstan" - name: "Cache cache directory for phpstan/phpstan" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: ".build/phpstan" key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" @@ -201,7 +201,7 @@ jobs: run: "mkdir -p .build/psalm" - name: "Cache cache directory for vimeo/psalm" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: ".build/psalm" key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" @@ -244,7 +244,7 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -300,7 +300,7 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -358,7 +358,7 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -399,14 +399,14 @@ jobs: github.event.action == 'reopened' || github.event.action == 'synchronize' ) && ( - (github.actor == 'dependabot-preview[bot]' && startsWith(github.event.pull_request.title, 'Build(deps-dev)')) || + (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'Build(deps-dev)')) || (github.actor == 'ergebnis-bot' && github.event.pull_request.title == 'Enhancement: Update license year') || (github.actor == 'localheinz' && contains(github.event.pull_request.labels.*.name, 'merge')) ) steps: - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@0.8.0" + uses: "actions/github-script@v2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -425,7 +425,7 @@ jobs: }) - name: "Assign @ergebnis-bot" - uses: "actions/github-script@0.8.0" + uses: "actions/github-script@v2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -444,7 +444,7 @@ jobs: }) - name: "Approve pull request" - uses: "actions/github-script@0.8.0" + uses: "actions/github-script@v2" if: "github.actor != 'ergebnis-bot'" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" @@ -460,7 +460,7 @@ jobs: }) - name: "Merge pull request" - uses: "actions/github-script@0.8.0" + uses: "actions/github-script@v2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index cea3de47..99a34217 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -14,7 +14,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v2" + uses: "actions/stale@v3" with: days-before-close: 5 days-before-stale: 60 diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index f82995d6..e2da07be 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -42,7 +42,7 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" @@ -64,7 +64,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v1" + uses: "actions/cache@v2" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('**/composer.lock') }}" diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index 09671d06..10688d0a 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -1,7 +1,9 @@ name: "Triage" on: # yamllint disable-line rule:truthy - pull_request: null + pull_request: + types: + - "opened" jobs: label: @@ -11,8 +13,7 @@ jobs: steps: - name: "Add labels based on branch name" - if: "github.event.action == 'opened'" - uses: "actions/github-script@0.8.0" + uses: "actions/github-script@v2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.php_cs b/.php_cs index 518b5a86..6f5e1210 100644 --- a/.php_cs +++ b/.php_cs @@ -12,7 +12,7 @@ declare(strict_types=1); */ use Ergebnis\License; -use Ergebnis\PhpCsFixer\Config; +use Ergebnis\PhpCsFixer; $license = License\Type\MIT::markdown( __DIR__ . '/LICENSE.md', @@ -26,14 +26,13 @@ $license = License\Type\MIT::markdown( $license->save(); -$config = Config\Factory::fromRuleSet(new Config\RuleSet\Php71($license->header())); +$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php71($license->header())); $config->getFinder() ->ignoreDotFiles(false) ->in(__DIR__) ->exclude([ '.build/', - '.dependabot/', '.github/', '.notes/', 'test/Fixture/', diff --git a/.php_cs.fixture b/.php_cs.fixture index 159087bf..06d74e48 100644 --- a/.php_cs.fixture +++ b/.php_cs.fixture @@ -11,9 +11,9 @@ declare(strict_types=1); * @see https://github.com/ergebnis/phpstan-rules */ -use Ergebnis\PhpCsFixer\Config; +use Ergebnis\PhpCsFixer; -$config = Config\Factory::fromRuleSet(new Config\RuleSet\Php71(''), [ +$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php71(''), [ 'constant_case' => false, 'declare_strict_types' => false, 'error_suppression' => false, @@ -30,8 +30,6 @@ $config = Config\Factory::fromRuleSet(new Config\RuleSet\Php71(''), [ $config->getFinder()->in(__DIR__ . '/test/Fixture'); -$directory = \getenv('TRAVIS') ? \getenv('HOME') : __DIR__; - -$config->setCacheFile($directory . '/.build/php-cs-fixer/.php_cs.fixture.cache'); +$config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php_cs.fixture.cache'); return $config; diff --git a/README.md b/README.md index 781f25b6..771a404b 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Provides additional rules for [`phpstan/phpstan`](https://github.com/phpstan/php Run -``` +```sh $ composer require --dev ergebnis/phpstan-rules ``` diff --git a/infection.json b/infection.json index 9d29919c..bd5df9b5 100644 --- a/infection.json +++ b/infection.json @@ -1,14 +1,14 @@ { - "timeout": 10, + "logs": { + "text": ".build/infection/infection-log.txt" + }, + "phpUnit": { + "configDir": "test\/Integration" + }, "source": { "directories": [ "src" ] }, - "phpUnit": { - "configDir": "test\/Integration" - }, - "logs": { - "text": ".build/infection/infection-log.txt" - } + "timeout": 10 } From f0ffddf07349c397d236405d59f857ef53dc3081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 14 Jun 2020 18:27:28 +0200 Subject: [PATCH 025/305] Fix: Restore ignore rules --- .github/dependabot.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 455760a4..de75ec2f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,6 +7,16 @@ updates: include: "scope" prefix: "Build" directory: "/" + ignore: + - dependency-name: "nikic/php-parser" + versions: + - ">= 0" + - dependency-name: "phpstan/phpstan" + versions: + - ">= 0" + - dependency-name: "zendframework/zend-servicemanager" + versions: + - ">= 0" labels: - "dependency" open-pull-requests-limit: 10 From 4885700bb99c966004881a44aca93de83ea07179 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2020 05:39:27 +0000 Subject: [PATCH 026/305] Build(deps): Bump actions/create-release from v1 to v1.1.1 Bumps [actions/create-release](https://github.com/actions/create-release) from v1 to v1.1.1. - [Release notes](https://github.com/actions/create-release/releases) - [Commits](https://github.com/actions/create-release/compare/v1...e9dc4ac22d57910765258fb6b199b62bfe0174da) Signed-off-by: dependabot[bot] --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5cd6d94b..c4b97e21 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -19,7 +19,7 @@ jobs: run: "echo \"::set-output name=tag::${GITHUB_REF#refs/tags/}\"" - name: "Create release" - uses: "actions/create-release@v1" + uses: "actions/create-release@v1.1.1" env: GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" with: From 6dd47c7a7ee24d20793ebf649ab5659fa7272e02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2020 05:39:28 +0000 Subject: [PATCH 027/305] Build(deps): Bump actions/checkout from v2 to v2.3.0 Bumps [actions/checkout](https://github.com/actions/checkout) from v2 to v2.3.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/master/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...b4483adec309c0d01a5435c5e24eb40de5773ad9) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index da34bea8..43a9c133 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -29,7 +29,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2" + uses: "actions/checkout@v2.3.0" - name: "Lint YAML files" uses: "ibiqlik/action-yamllint@v1" @@ -102,7 +102,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2" + uses: "actions/checkout@v2.3.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -152,7 +152,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2" + uses: "actions/checkout@v2.3.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -230,7 +230,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2" + uses: "actions/checkout@v2.3.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -286,7 +286,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2" + uses: "actions/checkout@v2.3.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -344,7 +344,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2" + uses: "actions/checkout@v2.3.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index e2da07be..a3ab9812 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2" + uses: "actions/checkout@v2.3.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" From ce655b8fd51c5df1997a1b59af78a07f776966bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Wed, 17 Jun 2020 22:41:41 +0200 Subject: [PATCH 028/305] Fix: Formatting --- CHANGELOG.md | 80 ++++++++++++++++++++++++++-------------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec1c4723..7a5b2025 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ For a full diff see [`0.14.4...0.15.0`][0.14.4...0.15.0]. ### Added -* Added `Classes\PHPUnit\Framework\TestCaseWithSuffixRule`, which reports an error when a concrete class extending `PHPUnit\Framework\TestCase` does not have a `Test` suffix ([#225], by [@localheinz] +* Added `Classes\PHPUnit\Framework\TestCaseWithSuffixRule`, which reports an error when a concrete class extending `PHPUnit\Framework\TestCase` does not have a `Test` suffix ([#225]), by [@localheinz] ## [`0.14.4`][0.14.4] @@ -119,7 +119,7 @@ For a full diff see [`0.13.0...0.14.0`][0.13.0...0.14.0]. ### Fixed -* Dropped support for PHP 7.1 ([#141], by [@localheinz] +* Dropped support for PHP 7.1 ([#141]), by [@localheinz] ## [`0.13.0`][0.13.0] @@ -127,7 +127,7 @@ For a full diff see [`0.12.2...0.13.0`][0.12.2...0.13.0]. ### Added -* Added `Methods\PrivateInFinalClassRule` which reports an error when a method in a `final` class is `protected` when it could be `private` ([#126], by [@localheinz] +* Added `Methods\PrivateInFinalClassRule` which reports an error when a method in a `final` class is `protected` when it could be `private` ([#126]), by [@localheinz] ## [`0.12.2`][0.12.2] @@ -135,7 +135,7 @@ For a full diff see [`0.12.1...0.12.2`][0.12.1...0.12.2]. ### Fixed -* Started ignoring interfaces from analysis by `Methods\FinalInAbstractClassRule` to avoid inappropriate errors ([#132], by [@localheinz] +* Started ignoring interfaces from analysis by `Methods\FinalInAbstractClassRule` to avoid inappropriate errors ([#132]), by [@localheinz] ## [`0.12.1`][0.12.1] @@ -143,7 +143,7 @@ For a full diff see [`0.12.0...0.12.1`][0.12.0...0.12.1]. ### Fixed -* Started resolving class name in type declaration before attempting to analyze it in the `Methods\NoParameterWithContainerTypeDeclarationRule` to avoid errors where class `self` is not found ([#128], by [@localheinz] +* Started resolving class name in type declaration before attempting to analyze it in the `Methods\NoParameterWithContainerTypeDeclarationRule` to avoid errors where class `self` is not found ([#128]), by [@localheinz] ## [`0.12.0`][0.12.0] @@ -151,8 +151,8 @@ For a full diff see [`0.11.0...0.12.0`][0.11.0...0.12.0]. ### Added -* Added `Methods\NoParameterWithContainerTypeDeclarationRule`, which reports an error when a method has a type declaration that corresponds to a known dependency injection container or service locator ([#122], by [@localheinz] -* Added `Methods\FinalInAbstractClassRule`, which reports an error when a concrete `public` or `protected` method in an `abstract` class is not `final` ([#123], by [@localheinz] +* Added `Methods\NoParameterWithContainerTypeDeclarationRule`, which reports an error when a method has a type declaration that corresponds to a known dependency injection container or service locator ([#122]), by [@localheinz] +* Added `Methods\FinalInAbstractClassRule`, which reports an error when a concrete `public` or `protected` method in an `abstract` class is not `final` ([#123]), by [@localheinz] ## [`0.11.0`][0.11.0] @@ -161,16 +161,16 @@ For a full diff see [`0.10.0...0.11.0`][0.10.0...0.11.0]. ### Added * Added `Files\DeclareStrictTypesRule`, which reports an error when a PHP file does not have a `declare(strict_types=1)` declaration ([#79] -* Added `Expressions\NoEmptyRule`, which reports an error when the language construct `empty()` is used ([#110], by [@localheinz] -* Added `Expressions\NoEvalRule`, which reports an error when the language construct `eval()` is used ([#112], by [@localheinz] -* Added `Expressions\NoErrorSuppressionRule`, which reports an error when `@` is used to suppress errors ([#113], by [@localheinz] -* Added `Expressions\NoCompactRule`, which reports an error when the function `compact()` is used ([#116], by [@localheinz] -* Added `Statements\NoSwitchRule`, which reports an error when the statement `switch()` is used ([#117], by [@localheinz] +* Added `Expressions\NoEmptyRule`, which reports an error when the language construct `empty()` is used ([#110]), by [@localheinz] +* Added `Expressions\NoEvalRule`, which reports an error when the language construct `eval()` is used ([#112]), by [@localheinz] +* Added `Expressions\NoErrorSuppressionRule`, which reports an error when `@` is used to suppress errors ([#113]), by [@localheinz] +* Added `Expressions\NoCompactRule`, which reports an error when the function `compact()` is used ([#116]), by [@localheinz] +* Added `Statements\NoSwitchRule`, which reports an error when the statement `switch()` is used ([#117]), by [@localheinz] ### Changed -* Require at least `nikic/php-parser:^4.2.3` ([#102], by [@localheinz] -* Require at least `phpstan/phpstan:~0.11.15` ([#103], by [@localheinz] +* Require at least `nikic/php-parser:^4.2.3` ([#102]), by [@localheinz] +* Require at least `phpstan/phpstan:~0.11.15` ([#103]), by [@localheinz] ## [`0.10.0`][0.10.0] @@ -178,11 +178,11 @@ For a full diff see [`0.9.1...0.10.0`][0.9.1...0.10.0]. ### Changed -* Require at least `phpstan/phpstan:~0.11.7` ([#91], by [@localheinz] +* Require at least `phpstan/phpstan:~0.11.7` ([#91]), by [@localheinz] ### Fixed -* Added missing `parametersSchema` configuration to `rules.neon`, which is required for use with `bleedingEdge.neon`, see [`phpstan/phpstan@54a125d`](https://github.com/phpstan/phpstan/commit/54a125df47fa097b792cb9a3e70c49f753f66b85) ([#93], by [@localheinz] +* Added missing `parametersSchema` configuration to `rules.neon`, which is required for use with `bleedingEdge.neon`, see [`phpstan/phpstan@54a125d`](https://github.com/phpstan/phpstan/commit/54a125df47fa097b792cb9a3e70c49f753f66b85) ([#93]), by [@localheinz] * ## [`0.9.1`][0.9.1] @@ -190,7 +190,7 @@ For a full diff see [`0.9.0...0.9.1`][0.9.0...0.9.1]. ### Changed -* Allow usage with [`phpstan/extension-installer`](https://github.com/phpstan/extension-installer) ([#89], by [@localheinz] +* Allow usage with [`phpstan/extension-installer`](https://github.com/phpstan/extension-installer) ([#89]), by [@localheinz] ## [`0.9.0`][0.9.0] @@ -198,7 +198,7 @@ For a full diff see [`0.8.1...0.9.0`][0.8.1...0.9.0]. ### Changed -* Adjusted `Classes\FinalRule` to ignore Doctrine entities when they are annotated ([#84], by [@localheinz] +* Adjusted `Classes\FinalRule` to ignore Doctrine entities when they are annotated ([#84]), by [@localheinz] ## [`0.8.1`][0.8.1] @@ -206,7 +206,7 @@ For a full diff see [`0.8.0...0.8.1`][0.8.0...0.8.1]. ### Fixed -* Actually enable `Expressions\NoIssetRule` ([#83], by [@localheinz] +* Actually enable `Expressions\NoIssetRule` ([#83]), by [@localheinz] ## [`0.8.0`][0.8.0] @@ -214,7 +214,7 @@ For a full diff see [`0.7.1...0.8.0`][0.7.1...0.8.0]. ### Added -* Added `Expressions\NoIssetRule`, which reports an error when the language construct `isset()` is used ([#81], by [@localheinz] +* Added `Expressions\NoIssetRule`, which reports an error when the language construct `isset()` is used ([#81]), by [@localheinz] ## [`0.7.1`][0.7.1] @@ -222,7 +222,7 @@ For a full diff see [`0.7.0...0.7.1`][0.7.0...0.7.1]. ### Changed -* Configured `Classes\NoExtendsRule` to allow a set of default classes to be extended ([#73], by [@localheinz] +* Configured `Classes\NoExtendsRule` to allow a set of default classes to be extended ([#73]), by [@localheinz] ## [`0.7.0`][0.7.0] @@ -230,7 +230,7 @@ For a full diff see [`0.6.0...0.7.0`][0.6.0...0.7.0]. ### Added -* Added `Classes\NoExtendsRule`, which reports an error when a class extends a class that is not allowed to be extended ([#68], by [@localheinz] +* Added `Classes\NoExtendsRule`, which reports an error when a class extends a class that is not allowed to be extended ([#68]), by [@localheinz] ## [`0.6.0`][0.6.0] @@ -238,7 +238,7 @@ For a full diff see [`0.5.0...0.6.0`][0.5.0...0.6.0]. ### Added -* Allow installation with `phpstan/phpstan:~0.11.0` ([#65], by [@localheinz] +* Allow installation with `phpstan/phpstan:~0.11.0` ([#65]), by [@localheinz] ## [`0.5.0`][0.5.0] @@ -246,13 +246,13 @@ For a full diff see [`0.4.0...0.5.0`][0.4.0...0.5.0]. ### Added -* Added `Methods\NoConstructorParameterWithDefaultValueRule`, which reports an error when a constructor of an anonymous class or a class has a parameter with a default value ([#45], by [@localheinz] -* Added parameters `$allowAbstractClasses` and `$classesNotRequiredToBeAbstractOrFinal` to allow configuration of `Classes`FinalRule` ([#51], by [@localheinz] +* Added `Methods\NoConstructorParameterWithDefaultValueRule`, which reports an error when a constructor of an anonymous class or a class has a parameter with a default value ([#45]), by [@localheinz] +* Added parameters `$allowAbstractClasses` and `$classesNotRequiredToBeAbstractOrFinal` to allow configuration of `Classes`FinalRule` ([#51]), by [@localheinz] ### Removed -* Removed `Classes\AbstractOrFinalRule` after merging behaviour into `Classes\FinalRule` ([#51], by [@localheinz] -* Removed default values from constructor of `Classes\FinalRule` ([#53], by [@localheinz] +* Removed `Classes\AbstractOrFinalRule` after merging behaviour into `Classes\FinalRule` ([#51]), by [@localheinz] +* Removed default values from constructor of `Classes\FinalRule` ([#53]), by [@localheinz] ## [`0.4.0`][0.4.0] @@ -260,8 +260,8 @@ For a full diff see [`0.3.0...0.4.0`][0.3.0...0.4.0] ### Changed -* Removed double-quotes from error messages to be more consistent with error messages generated by `phpstan/phstan` ([#39], by [@localheinz] -* Modified wording and placement of method, function, and parameter names in error messages to be more consistent with error messages generated by `phpstan/phstan` ([#42], by [@localheinz] +* Removed double-quotes from error messages to be more consistent with error messages generated by `phpstan/phstan` ([#39]), by [@localheinz] +* Modified wording and placement of method, function, and parameter names in error messages to be more consistent with error messages generated by `phpstan/phstan` ([#42]), by [@localheinz] ## [`0.3.0`][0.3.0] @@ -269,15 +269,15 @@ For a full diff see [`0.2.0...0.3.0`][0.2.0...0.3.0] ### Added -* Added `Functions\NoNullableReturnTypeDeclarationRule`, which reports an error when a function has a nullable return type declaration, and `Methods\NoNullableReturnTypeDeclarationRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a nullable return type declaration ([#16], by [@localheinz] -* Added `Closures\NoParameterWithNullDefaultValueRule`, which reports an error when a closure has a parameter with `null` as default value ([#26], by [@localheinz] -* Added `Closures\NoNullableReturnTypeDeclarationRule`, which reports an error when a closure has a nullable return type declaration ([#29], by [@localheinz] -* Added `Functions\NoParameterWithNullDefaultValueRule`, which reports an error when a function has a parameter with `null` as default value ([#31], by [@localheinz] -* Added `Methods\NoParameterWithNullDefaultValueRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with `null` as default value ([#32], by [@localheinz] -* Added `Closures\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a closure has a parameter with a nullable type declaration ([#33], by [@localheinz] -* Added `Functions\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a function has a parameter with a nullable type declaration ([#34], by [@localheinz] -* Added `Methods\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with a nullable type declaration ([#35], by [@localheinz] -* Extracted `rules.neon`, so you can easily enable all rules by including it in your `phpstan.neon` ([#37], by [@localheinz] +* Added `Functions\NoNullableReturnTypeDeclarationRule`, which reports an error when a function has a nullable return type declaration, and `Methods\NoNullableReturnTypeDeclarationRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a nullable return type declaration ([#16]), by [@localheinz] +* Added `Closures\NoParameterWithNullDefaultValueRule`, which reports an error when a closure has a parameter with `null` as default value ([#26]), by [@localheinz] +* Added `Closures\NoNullableReturnTypeDeclarationRule`, which reports an error when a closure has a nullable return type declaration ([#29]), by [@localheinz] +* Added `Functions\NoParameterWithNullDefaultValueRule`, which reports an error when a function has a parameter with `null` as default value ([#31]), by [@localheinz] +* Added `Methods\NoParameterWithNullDefaultValueRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with `null` as default value ([#32]), by [@localheinz] +* Added `Closures\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a closure has a parameter with a nullable type declaration ([#33]), by [@localheinz] +* Added `Functions\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a function has a parameter with a nullable type declaration ([#34]), by [@localheinz] +* Added `Methods\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with a nullable type declaration ([#35]), by [@localheinz] +* Extracted `rules.neon`, so you can easily enable all rules by including it in your `phpstan.neon` ([#37]), by [@localheinz] ## [`0.2.0`][0.2.0] @@ -285,11 +285,11 @@ For a full diff see [`0.1.0...0.2.0`][0.1.0...0.2.0] ### Added -* Added `Classes\FinalRule`, which reports an error when a non-anonymous class is not `final`, ([#4], by [@localheinz] +* Added `Classes\FinalRule`, which reports an error when a non-anonymous class is not `final`, ([#4]), by [@localheinz] ### Changed -* Added an `$excludeClassNames` argument to the constructors of `Classes\AbstractOrFinalRule` and `Classes\FinalRule` to allow whitelisting of classes, ([#11], by [@localheinz] +* Added an `$excludeClassNames` argument to the constructors of `Classes\AbstractOrFinalRule` and `Classes\FinalRule` to allow whitelisting of classes, ([#11]), by [@localheinz] ## [`0.1.0`][0.1.0] From 51641fe01f3dd95c60d548ea5f9224de626645b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2020 05:38:54 +0000 Subject: [PATCH 029/305] Build(deps-dev): Bump vimeo/psalm from 3.11.5 to 3.11.6 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.11.5 to 3.11.6. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.11.5...3.11.6) Signed-off-by: dependabot[bot] --- composer.lock | 97 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 80 insertions(+), 17 deletions(-) diff --git a/composer.lock b/composer.lock index f619e27f..a95c5c6c 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "composer/xdebug-handler", - "version": "1.4.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7" + "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7", - "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", + "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", "shasum": "" }, "require": { @@ -48,7 +48,7 @@ "Xdebug", "performance" ], - "time": "2020-03-01T12:26:26+00:00" + "time": "2020-06-04T11:16:35+00:00" }, { "name": "jean85/pretty-package-versions", @@ -950,22 +950,23 @@ }, { "name": "symfony/console", - "version": "v4.4.8", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" + "reference": "326b064d804043005526f5a0494cfb49edb59bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", - "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "url": "https://api.github.com/repos/symfony/console/zipball/326b064d804043005526f5a0494cfb49edb59bb0", + "reference": "326b064d804043005526f5a0494cfb49edb59bb0", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2" }, "conflict": { @@ -1022,7 +1023,7 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-03-30T11:41:10+00:00" + "time": "2020-05-30T20:06:45+00:00" }, { "name": "symfony/finder", @@ -1190,6 +1191,68 @@ ], "time": "2020-05-12T16:47:27+00:00" }, + { + "name": "symfony/polyfill-php80", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "5e30b2799bc1ad68f7feb62b60a73743589438dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/5e30b2799bc1ad68f7feb62b60a73743589438dd", + "reference": "5e30b2799bc1ad68f7feb62b60a73743589438dd", + "shasum": "" + }, + "require": { + "php": ">=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "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 backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2020-05-12T16:47:27+00:00" + }, { "name": "symfony/service-contracts", "version": "v1.1.8", @@ -4954,22 +5017,22 @@ }, { "name": "vimeo/psalm", - "version": "3.11.5", + "version": "3.11.6", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "3c60609c218d4d4b3b257728b8089094e5c6c6c2" + "reference": "7fc1f50f54bd6b174b1c43a37c1b0b151915d55c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/3c60609c218d4d4b3b257728b8089094e5c6c6c2", - "reference": "3c60609c218d4d4b3b257728b8089094e5c6c6c2", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/7fc1f50f54bd6b174b1c43a37c1b0b151915d55c", + "reference": "7fc1f50f54bd6b174b1c43a37c1b0b151915d55c", "shasum": "" }, "require": { "amphp/amp": "^2.1", "amphp/byte-stream": "^1.5", - "composer/semver": "^1.4", + "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^1.1", "ext-dom": "*", "ext-json": "*", @@ -5047,7 +5110,7 @@ "inspection", "php" ], - "time": "2020-05-27T15:12:09+00:00" + "time": "2020-06-17T20:40:35+00:00" }, { "name": "webmozart/assert", From eebae28d7a1410a407847e46bf445751b879b738 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2020 05:29:09 +0000 Subject: [PATCH 030/305] Build(deps): Bump actions/checkout from v2.3.0 to v2.3.1 Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.0 to v2.3.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/master/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.0...28c7f3d2b5162b5ddd3dfd9a45aa55eaf396478b) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 43a9c133..92e6af37 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -29,7 +29,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.0" + uses: "actions/checkout@v2.3.1" - name: "Lint YAML files" uses: "ibiqlik/action-yamllint@v1" @@ -102,7 +102,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.0" + uses: "actions/checkout@v2.3.1" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -152,7 +152,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.0" + uses: "actions/checkout@v2.3.1" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -230,7 +230,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.0" + uses: "actions/checkout@v2.3.1" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -286,7 +286,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.0" + uses: "actions/checkout@v2.3.1" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -344,7 +344,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.0" + uses: "actions/checkout@v2.3.1" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index a3ab9812..b08941da 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.0" + uses: "actions/checkout@v2.3.1" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" From 65b06dbcf433c8822787152aa889d57c58c707d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2020 05:43:22 +0000 Subject: [PATCH 031/305] Build(deps-dev): Bump vimeo/psalm from 3.11.6 to 3.12.1 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.11.6 to 3.12.1. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.11.6...3.12.1) Signed-off-by: dependabot[bot] --- composer.lock | 343 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 317 insertions(+), 26 deletions(-) diff --git a/composer.lock b/composer.lock index a95c5c6c..2023e831 100644 --- a/composer.lock +++ b/composer.lock @@ -48,6 +48,20 @@ "Xdebug", "performance" ], + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], "time": "2020-06-04T11:16:35+00:00" }, { @@ -1023,6 +1037,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", + "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": "2020-05-30T20:06:45+00:00" }, { @@ -1072,20 +1100,34 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", + "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": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fa79b11539418b02fc5e1897267673ba2c19419c" + "reference": "7110338d81ce1cbc3e273136e4574663627037a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c", - "reference": "fa79b11539418b02fc5e1897267673ba2c19419c", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7110338d81ce1cbc3e273136e4574663627037a7", + "reference": "7110338d81ce1cbc3e273136e4574663627037a7", "shasum": "" }, "require": { @@ -1098,6 +1140,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -1131,20 +1177,34 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "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": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc" + "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a760d8964ff79ab9bf057613a5808284ec852ccc", - "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fa0837fe02d617d31fbb25f990655861bb27bd1a", + "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a", "shasum": "" }, "require": { @@ -1154,6 +1214,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -1189,20 +1253,34 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "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": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "5e30b2799bc1ad68f7feb62b60a73743589438dd" + "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/5e30b2799bc1ad68f7feb62b60a73743589438dd", - "reference": "5e30b2799bc1ad68f7feb62b60a73743589438dd", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4a5b6bba3259902e386eb80dd1956181ee90b5b2", + "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2", "shasum": "" }, "require": { @@ -1212,6 +1290,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -1251,7 +1333,21 @@ "portable", "shim" ], - "time": "2020-05-12T16:47:27+00:00" + "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": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/service-contracts", @@ -1907,6 +2003,24 @@ "normalizer", "plugin" ], + "funding": [ + { + "url": "https://paypal.me/localheinz", + "type": "custom" + }, + { + "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", + "type": "custom" + }, + { + "url": "https://www.buymeacoffee.com/localheinz", + "type": "custom" + }, + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], "time": "2020-05-01T12:02:09+00:00" }, { @@ -1967,6 +2081,24 @@ "json", "normalizer" ], + "funding": [ + { + "url": "https://paypal.me/localheinz", + "type": "custom" + }, + { + "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", + "type": "custom" + }, + { + "url": "https://www.buymeacoffee.com/localheinz", + "type": "custom" + }, + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], "time": "2020-04-19T12:30:41+00:00" }, { @@ -2081,6 +2213,24 @@ "keywords": [ "license" ], + "funding": [ + { + "url": "https://paypal.me/localheinz", + "type": "custom" + }, + { + "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", + "type": "custom" + }, + { + "url": "https://www.buymeacoffee.com/localheinz", + "type": "custom" + }, + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], "time": "2020-05-04T17:36:52+00:00" }, { @@ -2137,6 +2287,24 @@ ], "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", "homepage": "https://github.com/ergebnis/php-cs-fixer-config", + "funding": [ + { + "url": "https://paypal.me/localheinz", + "type": "custom" + }, + { + "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", + "type": "custom" + }, + { + "url": "https://www.buymeacoffee.com/localheinz", + "type": "custom" + }, + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], "time": "2020-04-16T08:02:53+00:00" }, { @@ -2197,6 +2365,20 @@ "phpunit", "test" ], + "funding": [ + { + "url": "http://paypal.me/localheinz", + "type": "custom" + }, + { + "url": "https://www.buymeacoffee.com/localheinz", + "type": "custom" + }, + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], "time": "2020-03-11T11:08:49+00:00" }, { @@ -2376,6 +2558,12 @@ } ], "description": "A tool to automatically fix PHP code style", + "funding": [ + { + "url": "https://github.com/keradus", + "type": "github" + } + ], "time": "2020-04-15T18:51:10+00:00" }, { @@ -4481,6 +4669,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", + "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": "2020-03-27T16:54:36+00:00" }, { @@ -4589,6 +4791,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", + "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": "2020-03-27T16:54:36+00:00" }, { @@ -4643,20 +4859,34 @@ "configuration", "options" ], + "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": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9" + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9", - "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", "shasum": "" }, "require": { @@ -4669,6 +4899,10 @@ "extra": { "branch-alias": { "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -4701,7 +4935,21 @@ "polyfill", "portable" ], - "time": "2020-05-12T16:14:59+00:00" + "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": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-php70", @@ -4815,6 +5063,20 @@ "portable", "shim" ], + "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": "2020-02-27T09:26:54+00:00" }, { @@ -4864,6 +5126,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", + "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": "2020-03-27T16:54:36+00:00" }, { @@ -4914,6 +5190,20 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", + "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": "2020-03-27T16:54:36+00:00" }, { @@ -5017,16 +5307,16 @@ }, { "name": "vimeo/psalm", - "version": "3.11.6", + "version": "3.12.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "7fc1f50f54bd6b174b1c43a37c1b0b151915d55c" + "reference": "9b860214d58c48b5cbe99bdb17914d0eb723c9cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/7fc1f50f54bd6b174b1c43a37c1b0b151915d55c", - "reference": "7fc1f50f54bd6b174b1c43a37c1b0b151915d55c", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/9b860214d58c48b5cbe99bdb17914d0eb723c9cd", + "reference": "9b860214d58c48b5cbe99bdb17914d0eb723c9cd", "shasum": "" }, "require": { @@ -5110,7 +5400,7 @@ "inspection", "php" ], - "time": "2020-06-17T20:40:35+00:00" + "time": "2020-06-23T00:24:34+00:00" }, { "name": "webmozart/assert", @@ -5319,5 +5609,6 @@ "platform-dev": [], "platform-overrides": { "php": "7.1.33" - } + }, + "plugin-api-version": "1.1.0" } From f95d95d3611975b487494c5d3070fa004a16792e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2020 05:45:45 +0000 Subject: [PATCH 032/305] Build(deps-dev): Bump ergebnis/php-cs-fixer-config from 2.1.2 to 2.2.0 Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.1.2 to 2.2.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.1.2...2.2.0) Signed-off-by: dependabot[bot] --- composer.lock | 144 +++++++++++++++++++++++++++++--------------------- 1 file changed, 83 insertions(+), 61 deletions(-) diff --git a/composer.lock b/composer.lock index 2023e831..01786af4 100644 --- a/composer.lock +++ b/composer.lock @@ -1055,7 +1055,7 @@ }, { "name": "symfony/finder", - "version": "v4.4.7", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", @@ -1703,22 +1703,22 @@ }, { "name": "doctrine/annotations", - "version": "1.10.2", + "version": "1.10.3", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "b9d758e831c70751155c698c2f7df4665314a1cb" + "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/b9d758e831c70751155c698c2f7df4665314a1cb", - "reference": "b9d758e831c70751155c698c2f7df4665314a1cb", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5db60a4969eba0e0c197a19c077780aadbc43c5d", + "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d", "shasum": "" }, "require": { "doctrine/lexer": "1.*", "ext-tokenizer": "*", - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/cache": "1.*", @@ -1768,7 +1768,7 @@ "docblock", "parser" ], - "time": "2020-04-20T09:18:32+00:00" + "time": "2020-05-25T17:24:27+00:00" }, { "name": "doctrine/instantiator", @@ -2235,16 +2235,16 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.1.2", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "c811e48e106a6decc20b3e305629e11c515a772c" + "reference": "208b4f0c700c152fdcaf5520fde38947ab1f176c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/c811e48e106a6decc20b3e305629e11c515a772c", - "reference": "c811e48e106a6decc20b3e305629e11c515a772c", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/208b4f0c700c152fdcaf5520fde38947ab1f176c", + "reference": "208b4f0c700c152fdcaf5520fde38947ab1f176c", "shasum": "" }, "require": { @@ -2253,21 +2253,21 @@ "php": "^7.1" }, "require-dev": { - "ergebnis/composer-normalize": "^2.3.2", - "ergebnis/license": "~0.1.0", - "ergebnis/phpstan-rules": "~0.14.4", + "ergebnis/composer-normalize": "^2.5.1", + "ergebnis/license": "~1.0.0", + "ergebnis/phpstan-rules": "~0.15.0", "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", - "jangregor/phpstan-prophecy": "~0.6.2", + "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.18", - "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.7", + "phpstan/phpstan": "~0.12.30", + "phpstan/phpstan-deprecation-rules": "~0.12.4", + "phpstan/phpstan-phpunit": "~0.12.11", "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.0", + "psalm/plugin-phpunit": "~0.10.1", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.11.2" + "vimeo/psalm": "^3.12.1" }, "type": "library", "autoload": { @@ -2288,6 +2288,10 @@ "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", "homepage": "https://github.com/ergebnis/php-cs-fixer-config", "funding": [ + { + "url": "https://cottonbureau.com/people/andreas-moller", + "type": "custom" + }, { "url": "https://paypal.me/localheinz", "type": "custom" @@ -2305,7 +2309,7 @@ "type": "github" } ], - "time": "2020-04-16T08:02:53+00:00" + "time": "2020-06-23T09:27:56+00:00" }, { "name": "ergebnis/test-util", @@ -4603,20 +4607,20 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.7", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed" + "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abc8e3618bfdb55e44c8c6a00abd333f831bbfed", - "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5370aaa7807c7a439b21386661ffccf3dff2866", + "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/event-dispatcher-contracts": "^1.1" }, "conflict": { @@ -4683,7 +4687,7 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:54:36+00:00" + "time": "2020-05-20T08:37:50+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4745,20 +4749,20 @@ }, { "name": "symfony/filesystem", - "version": "v4.4.7", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "fe297193bf2e6866ed900ed2d5869362768df6a7" + "reference": "b27f491309db5757816db672b256ea2e03677d30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/fe297193bf2e6866ed900ed2d5869362768df6a7", - "reference": "fe297193bf2e6866ed900ed2d5869362768df6a7", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b27f491309db5757816db672b256ea2e03677d30", + "reference": "b27f491309db5757816db672b256ea2e03677d30", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/polyfill-ctype": "~1.8" }, "type": "library", @@ -4805,20 +4809,20 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:54:36+00:00" + "time": "2020-05-30T18:50:54+00:00" }, { "name": "symfony/options-resolver", - "version": "v4.4.7", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "9072131b5e6e21203db3249c7db26b52897bc73e" + "reference": "73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9072131b5e6e21203db3249c7db26b52897bc73e", - "reference": "9072131b5e6e21203db3249c7db26b52897bc73e", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05", + "reference": "73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05", "shasum": "" }, "require": { @@ -4873,7 +4877,7 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:54:36+00:00" + "time": "2020-05-23T12:09:32+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4953,16 +4957,16 @@ }, { "name": "symfony/polyfill-php70", - "version": "v1.15.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "2a18e37a489803559284416df58c71ccebe50bf0" + "reference": "471b096aede7025bace8eb356b9ac801aaba7e2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/2a18e37a489803559284416df58c71ccebe50bf0", - "reference": "2a18e37a489803559284416df58c71ccebe50bf0", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/471b096aede7025bace8eb356b9ac801aaba7e2d", + "reference": "471b096aede7025bace8eb356b9ac801aaba7e2d", "shasum": "" }, "require": { @@ -4972,7 +4976,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5008,20 +5016,34 @@ "portable", "shim" ], - "time": "2020-02-27T09:26:54+00:00" + "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": "2020-06-06T08:46:27+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.15.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "37b0976c78b94856543260ce09b460a7bc852747" + "reference": "f048e612a3905f34931127360bdd2def19a5e582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", - "reference": "37b0976c78b94856543260ce09b460a7bc852747", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", + "reference": "f048e612a3905f34931127360bdd2def19a5e582", "shasum": "" }, "require": { @@ -5030,7 +5052,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -5077,20 +5099,20 @@ "type": "tidelift" } ], - "time": "2020-02-27T09:26:54+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/process", - "version": "v4.4.7", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3e40e87a20eaf83a1db825e1fa5097ae89042db3" + "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3e40e87a20eaf83a1db825e1fa5097ae89042db3", - "reference": "3e40e87a20eaf83a1db825e1fa5097ae89042db3", + "url": "https://api.github.com/repos/symfony/process/zipball/c714958428a85c86ab97e3a0c96db4c4f381b7f5", + "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5", "shasum": "" }, "require": { @@ -5140,24 +5162,24 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:54:36+00:00" + "time": "2020-05-30T20:06:45+00:00" }, { "name": "symfony/stopwatch", - "version": "v4.4.7", + "version": "v4.4.10", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "e0324d3560e4128270e3f08617480d9233d81cfc" + "reference": "f51fb90df1154a7f75987198a9689e28f91e6a50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e0324d3560e4128270e3f08617480d9233d81cfc", - "reference": "e0324d3560e4128270e3f08617480d9233d81cfc", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f51fb90df1154a7f75987198a9689e28f91e6a50", + "reference": "f51fb90df1154a7f75987198a9689e28f91e6a50", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/service-contracts": "^1.0|^2" }, "type": "library", @@ -5204,7 +5226,7 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:54:36+00:00" + "time": "2020-05-20T08:37:50+00:00" }, { "name": "symfony/yaml", From 7f03b8b50396cd9e150f8a99c23e35c4383da46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Thu, 25 Jun 2020 10:27:54 +0200 Subject: [PATCH 033/305] Enhancement: Synchronize with ergebnis/php-library-template --- .github/dependabot.yml | 7 ++++--- .github/workflows/integrate.yaml | 13 +++++++------ .github/workflows/renew.yaml | 4 ++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index de75ec2f..e19966ae 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,11 +1,11 @@ -# https://help.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#target-branch +# https://help.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 updates: - commit-message: include: "scope" - prefix: "Build" + prefix: "composer" directory: "/" ignore: - dependency-name: "nikic/php-parser" @@ -23,10 +23,11 @@ updates: package-ecosystem: "composer" schedule: interval: "daily" + versioning-strategy: "increase" - commit-message: include: "scope" - prefix: "Build" + prefix: "github-actions" directory: "/" labels: - "dependency" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 92e6af37..5fe629cf 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -11,7 +11,7 @@ on: # yamllint disable-line rule:truthy env: MIN_COVERED_MSI: 92 MIN_MSI: 83 - REQUIRED_PHP_EXTENSIONS: "mbstring" + PHP_EXTENSIONS: "mbstring" jobs: coding-standards: @@ -42,7 +42,7 @@ jobs: uses: "shivammathur/setup-php@v2" with: coverage: "none" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" + extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - name: "Validate composer.json and composer.lock" @@ -108,7 +108,7 @@ jobs: uses: "shivammathur/setup-php@v2" with: coverage: "none" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" + extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - name: "Determine composer cache directory" @@ -158,7 +158,7 @@ jobs: uses: "shivammathur/setup-php@v2" with: coverage: "none" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" + extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - name: "Determine composer cache directory" @@ -236,7 +236,7 @@ jobs: uses: "shivammathur/setup-php@v2" with: coverage: "none" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" + extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - name: "Determine composer cache directory" @@ -399,7 +399,8 @@ jobs: github.event.action == 'reopened' || github.event.action == 'synchronize' ) && ( - (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'Build(deps-dev)')) || + (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'composer(deps-dev)')) || + (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'github-actions(deps)')) || (github.actor == 'ergebnis-bot' && github.event.pull_request.title == 'Enhancement: Update license year') || (github.actor == 'localheinz' && contains(github.event.pull_request.labels.*.name, 'merge')) ) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index b08941da..0d478096 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -7,7 +7,7 @@ on: # yamllint disable-line rule:truthy - cron: "1 0 1 1 *" env: - REQUIRED_PHP_EXTENSIONS: "mbstring" + PHP_EXTENSIONS: "mbstring" jobs: license: @@ -31,7 +31,7 @@ jobs: uses: "shivammathur/setup-php@v2" with: coverage: "none" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" + extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - name: "Validate composer.json and composer.lock" From 1d9777be6606b2e4f9737f159e3e86ea4c0a209b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 28 Jun 2020 21:24:55 +0000 Subject: [PATCH 034/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.2.0 to 2.2.1. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.2.0...2.2.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index dd8b862f..a4ef29b1 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.5.1", "ergebnis/license": "~1.0.0", - "ergebnis/php-cs-fixer-config": "^2.1.2", + "ergebnis/php-cs-fixer-config": "^2.2.1", "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 01786af4..1240ea2d 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": "fbba63942193f48783a5a5b2385ae53c", + "content-hash": "11886bfe614287377d179d10997c5bcb", "packages": [ { "name": "composer/xdebug-handler", @@ -2235,21 +2235,21 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.2.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "208b4f0c700c152fdcaf5520fde38947ab1f176c" + "reference": "4d98cb5cc9752335bec722d8c42083ca23cb4910" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/208b4f0c700c152fdcaf5520fde38947ab1f176c", - "reference": "208b4f0c700c152fdcaf5520fde38947ab1f176c", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/4d98cb5cc9752335bec722d8c42083ca23cb4910", + "reference": "4d98cb5cc9752335bec722d8c42083ca23cb4910", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.16.3", + "friendsofphp/php-cs-fixer": "~2.16.4", "php": "^7.1" }, "require-dev": { @@ -2260,7 +2260,7 @@ "infection/infection": "~0.13.6", "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.30", + "phpstan/phpstan": "~0.12.31", "phpstan/phpstan-deprecation-rules": "~0.12.4", "phpstan/phpstan-phpunit": "~0.12.11", "phpstan/phpstan-strict-rules": "~0.12.2", @@ -2309,7 +2309,7 @@ "type": "github" } ], - "time": "2020-06-23T09:27:56+00:00" + "time": "2020-06-28T21:17:45+00:00" }, { "name": "ergebnis/test-util", @@ -2475,16 +2475,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.16.3", + "version": "v2.16.4", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "83baf823a33a1cbd5416c8626935cf3f843c10b0" + "reference": "1023c3458137ab052f6ff1e09621a721bfdeca13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/83baf823a33a1cbd5416c8626935cf3f843c10b0", - "reference": "83baf823a33a1cbd5416c8626935cf3f843c10b0", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/1023c3458137ab052f6ff1e09621a721bfdeca13", + "reference": "1023c3458137ab052f6ff1e09621a721bfdeca13", "shasum": "" }, "require": { @@ -2516,12 +2516,12 @@ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1", "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1", "phpunitgoodpractices/traits": "^1.8", - "symfony/phpunit-bridge": "^4.3 || ^5.0", + "symfony/phpunit-bridge": "^5.1", "symfony/yaml": "^3.0 || ^4.0 || ^5.0" }, "suggest": { "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters in cache signature.", + "ext-mbstring": "For handling non-UTF8 characters.", "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." @@ -2568,7 +2568,7 @@ "type": "github" } ], - "time": "2020-04-15T18:51:10+00:00" + "time": "2020-06-27T23:57:46+00:00" }, { "name": "fzaninotto/faker", From 20e1dd8454b8eca824d438bce6d6f1cc6022d185 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2020 05:21:39 +0000 Subject: [PATCH 035/305] composer(deps-dev): bump vimeo/psalm from 3.12.1 to 3.12.2 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.12.1 to 3.12.2. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.12.1...3.12.2) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index a4ef29b1..94f4874a 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.11.5", + "vimeo/psalm": "^3.12.2", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 1240ea2d..4daa361b 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": "11886bfe614287377d179d10997c5bcb", + "content-hash": "537d070a5781816caf3e09ade03b0eb7", "packages": [ { "name": "composer/xdebug-handler", @@ -5329,16 +5329,16 @@ }, { "name": "vimeo/psalm", - "version": "3.12.1", + "version": "3.12.2", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "9b860214d58c48b5cbe99bdb17914d0eb723c9cd" + "reference": "7c7ebd068f8acaba211d4a2c707c4ba90874fa26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/9b860214d58c48b5cbe99bdb17914d0eb723c9cd", - "reference": "9b860214d58c48b5cbe99bdb17914d0eb723c9cd", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/7c7ebd068f8acaba211d4a2c707c4ba90874fa26", + "reference": "7c7ebd068f8acaba211d4a2c707c4ba90874fa26", "shasum": "" }, "require": { @@ -5422,7 +5422,7 @@ "inspection", "php" ], - "time": "2020-06-23T00:24:34+00:00" + "time": "2020-07-03T16:59:07+00:00" }, { "name": "webmozart/assert", From 34fd74c4237cb33f7c6e9b4c48abeda842b6a7b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2020 08:41:07 +0000 Subject: [PATCH 036/305] composer(deps-dev): bump ergebnis/composer-normalize from 2.5.1 to 2.6.1 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.5.1 to 2.6.1. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.5.1...2.6.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 164 +++++++++++++++++++++++++++++++------------------- 2 files changed, 103 insertions(+), 63 deletions(-) diff --git a/composer.json b/composer.json index 94f4874a..c984f07b 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.5.1", + "ergebnis/composer-normalize": "^2.6.1", "ergebnis/license": "~1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", "ergebnis/test-util": "~1.0.0", diff --git a/composer.lock b/composer.lock index 4daa361b..d36f3b7b 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": "537d070a5781816caf3e09ade03b0eb7", + "content-hash": "7f37ba16b75faa2c5a0bb2d7917d5af3", "packages": [ { "name": "composer/xdebug-handler", @@ -1943,38 +1943,39 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.5.1", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "d0faf549e565757a7ffbf1f306a4293080e43bdd" + "reference": "6a8595060dd34b6373ecf7e8d7da56d97a6e0dfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d0faf549e565757a7ffbf1f306a4293080e43bdd", - "reference": "d0faf549e565757a7ffbf1f306a4293080e43bdd", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/6a8595060dd34b6373ecf7e8d7da56d97a6e0dfa", + "reference": "6a8595060dd34b6373ecf7e8d7da56d97a6e0dfa", "shasum": "" }, "require": { "composer-plugin-api": "^1.1.0 || ^2.0.0", - "ergebnis/json-normalizer": "~0.12.0", - "ergebnis/json-printer": "^3.0.2", - "localheinz/diff": "^1.0.1", - "php": "^7.1" + "ergebnis/json-normalizer": "~0.13.0", + "ergebnis/json-printer": "^3.1.0", + "justinrainbow/json-schema": "^5.2.10", + "localheinz/diff": "^1.1.1", + "php": "^7.1 || ^8.0" }, "require-dev": { - "composer/composer": "^1.10.5 || ^2.0.0", - "composer/package-versions-deprecated": "^1.8.0", - "ergebnis/phpstan-rules": "~0.14.4", + "composer/composer": "^1.10.8 || ^2.0.0", + "composer/package-versions-deprecated": "^1.8.1", + "ergebnis/phpstan-rules": "~0.15.0", "ergebnis/test-util": "~1.0.0", - "jangregor/phpstan-prophecy": "~0.6.2", + "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.19", - "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.8", + "phpstan/phpstan": "~0.12.32", + "phpstan/phpstan-deprecation-rules": "~0.12.4", + "phpstan/phpstan-phpunit": "~0.12.11", "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", - "symfony/filesystem": "^4.4.8" + "symfony/filesystem": "^4.4.9" }, "type": "composer-plugin", "extra": { @@ -2004,6 +2005,10 @@ "plugin" ], "funding": [ + { + "url": "https://cottonbureau.com/people/andreas-moller", + "type": "custom" + }, { "url": "https://paypal.me/localheinz", "type": "custom" @@ -2021,43 +2026,43 @@ "type": "github" } ], - "time": "2020-05-01T12:02:09+00:00" + "time": "2020-07-06T06:52:50+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "0.12.0", + "version": "0.13.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "0197447cd5d8f7e82116e904196a3e9f470655db" + "reference": "a532e078c3d77d01f79925bb7507a9b52bf6f9e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/0197447cd5d8f7e82116e904196a3e9f470655db", - "reference": "0197447cd5d8f7e82116e904196a3e9f470655db", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/a532e078c3d77d01f79925bb7507a9b52bf6f9e8", + "reference": "a532e078c3d77d01f79925bb7507a9b52bf6f9e8", "shasum": "" }, "require": { - "ergebnis/json-printer": "^3.0.2", + "ergebnis/json-printer": "^3.1.0", "ext-json": "*", - "justinrainbow/json-schema": "^4.0.0 || ^5.0.0", - "php": "^7.1" + "justinrainbow/json-schema": "^5.2.10", + "php": "^7.1 || ^8.0" }, "require-dev": { - "ergebnis/license": "~0.1.0", - "ergebnis/php-cs-fixer-config": "^2.1.2", - "ergebnis/phpstan-rules": "~0.14.4", + "ergebnis/license": "~1.0.0", + "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/phpstan-rules": "~0.15.0", "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", - "jangregor/phpstan-prophecy": "~0.6.2", + "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.18", - "phpstan/phpstan-deprecation-rules": "~0.12.2", + "phpstan/phpstan": "~0.12.32", + "phpstan/phpstan-deprecation-rules": "~0.12.4", "phpstan/phpstan-phpunit": "~0.12.8", "phpstan/phpstan-strict-rules": "~0.12.2", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.0", - "vimeo/psalm": "^3.11.2" + "psalm/plugin-phpunit": "~0.10.1", + "vimeo/psalm": "^3.12.2" }, "type": "library", "autoload": { @@ -2082,6 +2087,10 @@ "normalizer" ], "funding": [ + { + "url": "https://cottonbureau.com/people/andreas-moller", + "type": "custom" + }, { "url": "https://paypal.me/localheinz", "type": "custom" @@ -2099,38 +2108,41 @@ "type": "github" } ], - "time": "2020-04-19T12:30:41+00:00" + "time": "2020-07-04T21:41:41+00:00" }, { "name": "ergebnis/json-printer", - "version": "3.0.2", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-printer.git", - "reference": "c7985dc4879777f2e4ab689da25bdd49f59dd2cb" + "reference": "776a5c85ce3c67d97c6af08a67c917adbdb4758e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/c7985dc4879777f2e4ab689da25bdd49f59dd2cb", - "reference": "c7985dc4879777f2e4ab689da25bdd49f59dd2cb", + "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/776a5c85ce3c67d97c6af08a67c917adbdb4758e", + "reference": "776a5c85ce3c67d97c6af08a67c917adbdb4758e", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "ergebnis/php-cs-fixer-config": "~1.1.1", - "ergebnis/phpstan-rules": "~0.14.1", - "ergebnis/test-util": "~0.9.0", + "ergebnis/license": "~1.0.0", + "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/phpstan-rules": "~0.15.0", + "ergebnis/test-util": "~1.0.0", "infection/infection": "~0.13.6", - "phpbench/phpbench": "~0.16.10", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.11.19", - "phpstan/phpstan-deprecation-rules": "~0.11.2", - "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^7.5.18" + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.32", + "phpstan/phpstan-deprecation-rules": "~0.12.4", + "phpstan/phpstan-phpunit": "~0.12.11", + "phpstan/phpstan-strict-rules": "~0.12.2", + "phpunit/phpunit": "^7.5.20", + "psalm/plugin-phpunit": "~0.10.1", + "vimeo/psalm": "^3.12.2" }, "type": "library", "autoload": { @@ -2155,7 +2167,29 @@ "json", "printer" ], - "time": "2019-12-19T14:42:54+00:00" + "funding": [ + { + "url": "https://cottonbureau.com/people/andreas-moller", + "type": "custom" + }, + { + "url": "https://paypal.me/localheinz", + "type": "custom" + }, + { + "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", + "type": "custom" + }, + { + "url": "https://www.buymeacoffee.com/localheinz", + "type": "custom" + }, + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], + "time": "2020-07-04T17:09:39+00:00" }, { "name": "ergebnis/license", @@ -2712,16 +2746,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.2.9", + "version": "5.2.10", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "44c6787311242a979fa15c704327c20e7221a0e4" + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4", - "reference": "44c6787311242a979fa15c704327c20e7221a0e4", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", "shasum": "" }, "require": { @@ -2774,28 +2808,28 @@ "json", "schema" ], - "time": "2019-09-25T14:49:45+00:00" + "time": "2020-05-27T16:41:55+00:00" }, { "name": "localheinz/diff", - "version": "1.0.1", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/localheinz/diff.git", - "reference": "bd5661db4bbed26c6f25df8851fd9f4b424a356e" + "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/localheinz/diff/zipball/bd5661db4bbed26c6f25df8851fd9f4b424a356e", - "reference": "bd5661db4bbed26c6f25df8851fd9f4b424a356e", + "url": "https://api.github.com/repos/localheinz/diff/zipball/851bb20ea8358c86f677f5f111c4ab031b1c764c", + "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "symfony/process": "^4.2 || ^5" }, "type": "library", "autoload": { @@ -2818,14 +2852,20 @@ } ], "description": "Fork of sebastian/diff for use with ergebnis/composer-normalize", - "homepage": "https://github.com/sebastianbergmann/diff", + "homepage": "https://github.com/localheinz/diff", "keywords": [ "diff", "udiff", "unidiff", "unified diff" ], - "time": "2019-12-17T07:42:37+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-07-06T04:49:32+00:00" }, { "name": "myclabs/deep-copy", From bd829cd5a7fab7b5824798f4365ccd401e0a7ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Fri, 24 Jul 2020 13:59:47 +0200 Subject: [PATCH 037/305] Fix: Use caret operator --- composer.json | 4 +- composer.lock | 150 ++++++++++++++++++++------------------------------ 2 files changed, 61 insertions(+), 93 deletions(-) diff --git a/composer.json b/composer.json index c984f07b..c7093c91 100644 --- a/composer.json +++ b/composer.json @@ -23,9 +23,9 @@ }, "require-dev": { "ergebnis/composer-normalize": "^2.6.1", - "ergebnis/license": "~1.0.0", + "ergebnis/license": "^1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/test-util": "~1.0.0", + "ergebnis/test-util": "^1.0.0", "infection/infection": "~0.13.6", "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", diff --git a/composer.lock b/composer.lock index d36f3b7b..a4f1f5ac 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": "7f37ba16b75faa2c5a0bb2d7917d5af3", + "content-hash": "b4208bf3d5170f7964b2c8e35d24fcc1", "packages": [ { "name": "composer/xdebug-handler", @@ -88,7 +88,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -158,7 +158,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -224,7 +224,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -292,7 +292,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev" + "dev-main": "2.5-dev" } }, "autoload": { @@ -352,7 +352,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -412,7 +412,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-main": "3.3-dev" } }, "autoload": { @@ -473,7 +473,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -533,7 +533,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "1.0-dev" } }, "autoload": { @@ -598,7 +598,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -670,7 +670,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-main": "4.3-dev" } }, "autoload": { @@ -723,7 +723,7 @@ "extra": { "class": "PackageVersions\\Installer", "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "2.0.x-dev" } }, "autoload": { @@ -774,7 +774,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.3-dev" + "dev-main": "0.3-dev" } }, "autoload": { @@ -849,7 +849,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.11-dev" + "dev-main": "0.11-dev" } }, "autoload": { @@ -886,7 +886,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { @@ -935,7 +935,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-main": "1.1.x-dev" } }, "autoload": { @@ -1373,7 +1373,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "1.1-dev" } }, "autoload": { @@ -1427,7 +1427,7 @@ "php": ">=7" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", + "amphp/php-cs-fixer-config": "dev-main", "amphp/phpunit-util": "^1", "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", @@ -1438,7 +1438,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -1505,7 +1505,7 @@ "amphp/amp": "^2" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", + "amphp/php-cs-fixer-config": "dev-main", "amphp/phpunit-util": "^1", "friendsofphp/php-cs-fixer": "^2.3", "jetbrains/phpstorm-stubs": "^2019.3", @@ -1515,7 +1515,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -1579,7 +1579,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -1631,7 +1631,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -1799,7 +1799,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-main": "1.2.x-dev" } }, "autoload": { @@ -1849,7 +1849,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { @@ -2247,24 +2247,6 @@ "keywords": [ "license" ], - "funding": [ - { - "url": "https://paypal.me/localheinz", - "type": "custom" - }, - { - "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", - "type": "custom" - }, - { - "url": "https://www.buymeacoffee.com/localheinz", - "type": "custom" - }, - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], "time": "2020-05-04T17:36:52+00:00" }, { @@ -2403,20 +2385,6 @@ "phpunit", "test" ], - "funding": [ - { - "url": "http://paypal.me/localheinz", - "type": "custom" - }, - { - "url": "https://www.buymeacoffee.com/localheinz", - "type": "custom" - }, - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], "time": "2020-03-11T11:08:49+00:00" }, { @@ -2629,7 +2597,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-main": "1.9-dev" } }, "autoload": { @@ -3040,7 +3008,7 @@ "bin-links": false }, "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -3103,7 +3071,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "1.0-dev" } }, "autoload": { @@ -3199,7 +3167,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { @@ -3349,7 +3317,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -3407,7 +3375,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-main": "4.x-dev" } }, "autoload": { @@ -3456,7 +3424,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -3505,7 +3473,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10.x-dev" + "dev-main": "1.10.x-dev" } }, "autoload": { @@ -3571,7 +3539,7 @@ "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-master": "0.11-dev" + "dev-main": "0.11-dev" }, "phpstan": { "includes": [ @@ -3622,7 +3590,7 @@ "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-master": "0.11-dev" + "dev-main": "0.11-dev" }, "phpstan": { "includes": [ @@ -3677,7 +3645,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.1-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -3728,7 +3696,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "2.0.x-dev" } }, "autoload": { @@ -3819,7 +3787,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-main": "2.1-dev" } }, "autoload": { @@ -3869,7 +3837,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "3.1-dev" } }, "autoload": { @@ -3950,7 +3918,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "7.5-dev" + "dev-main": "7.5-dev" } }, "autoload": { @@ -4002,7 +3970,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2.x-dev" + "dev-main": "3.2.x-dev" } }, "autoload": { @@ -4048,7 +4016,7 @@ "ocramius/package-versions": "^1.3", "php": "^7.1.3", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.6.2 || dev-master" + "vimeo/psalm": "^3.6.2 || dev-main" }, "require-dev": { "codeception/codeception": "^4.0.3", @@ -4102,7 +4070,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { @@ -4149,7 +4117,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -4212,7 +4180,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -4270,7 +4238,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -4322,7 +4290,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-main": "3.1.x-dev" } }, "autoload": { @@ -4390,7 +4358,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -4440,7 +4408,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-main": "3.0.x-dev" } }, "autoload": { @@ -4485,7 +4453,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "1.1-dev" } }, "autoload": { @@ -4530,7 +4498,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-main": "3.0.x-dev" } }, "autoload": { @@ -4580,7 +4548,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -4622,7 +4590,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "2.0.x-dev" } }, "autoload": { @@ -4753,7 +4721,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "1.1-dev" } }, "autoload": { @@ -5298,7 +5266,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-main": "4.4-dev" } }, "autoload": { @@ -5538,7 +5506,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-main": "4.1-dev" } }, "autoload": { @@ -5584,7 +5552,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-main": "2.3-dev" } }, "autoload": { @@ -5624,7 +5592,7 @@ "php": "^5.5 || ^7.0" }, "require-dev": { - "athletic/athletic": "dev-master", + "athletic/athletic": "dev-main", "fabpot/php-cs-fixer": "1.7.*", "phpunit/phpunit": "~4.0", "zendframework/zend-di": "~2.5", @@ -5637,7 +5605,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", + "dev-main": "2.7-dev", "dev-develop": "3.0-dev" } }, From a5cef37f994f744bfb3145fd61430de31ccdba9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Jul 2020 05:07:06 +0000 Subject: [PATCH 038/305] composer(deps-dev): bump vimeo/psalm from 3.12.2 to 3.13.1 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.12.2 to 3.13.1. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.12.2...3.13.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 409 +++++++++++++++++++++++++++++--------------------- 2 files changed, 243 insertions(+), 168 deletions(-) diff --git a/composer.json b/composer.json index c7093c91..f8ec7ed3 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.12.2", + "vimeo/psalm": "^3.13.1", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index a4f1f5ac..68e09a13 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,77 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b4208bf3d5170f7964b2c8e35d24fcc1", + "content-hash": "6d3ac9e2c0d65558539dfe30d1aac884", "packages": [ + { + "name": "composer/package-versions-deprecated", + "version": "1.10.99", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/dd51b4443d58b34b6d9344cf4c288e621c9a826f", + "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7" + }, + "replace": { + "ocramius/package-versions": "1.10.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-07-15T08:39:18+00:00" + }, { "name": "composer/xdebug-handler", "version": "1.4.2", @@ -88,7 +157,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -158,7 +227,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -224,7 +293,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -292,7 +361,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -352,7 +421,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -412,7 +481,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -473,7 +542,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.2-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -533,7 +602,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.0-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -598,7 +667,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -670,7 +739,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.3-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -694,56 +763,6 @@ ], "time": "2019-11-08T13:50:10+00:00" }, - { - "name": "ocramius/package-versions", - "version": "1.4.2", - "source": { - "type": "git", - "url": "https://github.com/Ocramius/PackageVersions.git", - "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", - "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0.0", - "php": "^7.1.0" - }, - "require-dev": { - "composer/composer": "^1.6.3", - "doctrine/coding-standard": "^5.0.1", - "ext-zip": "*", - "infection/infection": "^0.7.1", - "phpunit/phpunit": "^7.5.17" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-main": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "time": "2019-11-15T16:17:10+00:00" - }, { "name": "phpstan/phpdoc-parser", "version": "0.3.5", @@ -774,7 +793,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.3-dev" + "dev-master": "0.3-dev" } }, "autoload": { @@ -849,7 +868,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.11-dev" + "dev-master": "0.11-dev" } }, "autoload": { @@ -886,7 +905,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -935,7 +954,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -964,16 +983,16 @@ }, { "name": "symfony/console", - "version": "v4.4.10", + "version": "v4.4.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "326b064d804043005526f5a0494cfb49edb59bb0" + "reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/326b064d804043005526f5a0494cfb49edb59bb0", - "reference": "326b064d804043005526f5a0494cfb49edb59bb0", + "url": "https://api.github.com/repos/symfony/console/zipball/55d07021da933dd0d633ffdab6f45d5b230c7e02", + "reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02", "shasum": "" }, "require": { @@ -1051,7 +1070,7 @@ "type": "tidelift" } ], - "time": "2020-05-30T20:06:45+00:00" + "time": "2020-07-06T13:18:39+00:00" }, { "name": "symfony/finder", @@ -1118,16 +1137,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.17.1", + "version": "v1.18.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7110338d81ce1cbc3e273136e4574663627037a7" + "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7110338d81ce1cbc3e273136e4574663627037a7", - "reference": "7110338d81ce1cbc3e273136e4574663627037a7", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a", + "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a", "shasum": "" }, "require": { @@ -1139,7 +1158,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "1.18-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1191,20 +1210,20 @@ "type": "tidelift" } ], - "time": "2020-06-06T08:46:27+00:00" + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.17.1", + "version": "v1.18.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a" + "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fa0837fe02d617d31fbb25f990655861bb27bd1a", - "reference": "fa0837fe02d617d31fbb25f990655861bb27bd1a", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca", + "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca", "shasum": "" }, "require": { @@ -1213,7 +1232,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "1.18-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1267,20 +1286,20 @@ "type": "tidelift" } ], - "time": "2020-06-06T08:46:27+00:00" + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.17.1", + "version": "v1.18.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2" + "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4a5b6bba3259902e386eb80dd1956181ee90b5b2", - "reference": "4a5b6bba3259902e386eb80dd1956181ee90b5b2", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981", + "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981", "shasum": "" }, "require": { @@ -1289,7 +1308,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "1.18-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1347,24 +1366,24 @@ "type": "tidelift" } ], - "time": "2020-06-06T08:46:27+00:00" + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/service-contracts", - "version": "v1.1.8", + "version": "v1.1.9", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf" + "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf", - "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b776d18b303a39f56c63747bcb977ad4b27aca26", + "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "psr/container": "^1.0" }, "suggest": { @@ -1373,7 +1392,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1-dev" + "dev-master": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -1405,40 +1428,54 @@ "interoperability", "standards" ], - "time": "2019-10-14T12:27:06+00:00" + "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": "2020-07-06T13:19:58+00:00" } ], "packages-dev": [ { "name": "amphp/amp", - "version": "v2.4.4", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "1e58d53e4af390efc7813e36cd215bd82cba4b06" + "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/1e58d53e4af390efc7813e36cd215bd82cba4b06", - "reference": "1e58d53e4af390efc7813e36cd215bd82cba4b06", + "url": "https://api.github.com/repos/amphp/amp/zipball/f220a51458bf4dd0dedebb171ac3457813c72bbc", + "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc", "shasum": "" }, "require": { "php": ">=7" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-main", + "amphp/php-cs-fixer-config": "dev-master", "amphp/phpunit-util": "^1", "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^6.0.9 | ^7", - "react/promise": "^2", - "vimeo/psalm": "^3.11@dev" + "psalm/phar": "^3.11@dev", + "react/promise": "^2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -1485,37 +1522,44 @@ "non-blocking", "promise" ], - "time": "2020-04-30T04:54:50+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2020-07-14T21:47:18+00:00" }, { "name": "amphp/byte-stream", - "version": "v1.7.3", + "version": "v1.8.0", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "b867505edb79dda8f253ca3c3a2bbadae4b16592" + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/b867505edb79dda8f253ca3c3a2bbadae4b16592", - "reference": "b867505edb79dda8f253ca3c3a2bbadae4b16592", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", "shasum": "" }, "require": { - "amphp/amp": "^2" + "amphp/amp": "^2", + "php": ">=7.1" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-main", - "amphp/phpunit-util": "^1", + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", "friendsofphp/php-cs-fixer": "^2.3", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^6 || ^7 || ^8", - "vimeo/psalm": "^3.9@dev" + "psalm/phar": "^3.11.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -1550,7 +1594,7 @@ "non-blocking", "stream" ], - "time": "2020-04-04T16:56:54+00:00" + "time": "2020-06-29T18:35:05+00:00" }, { "name": "composer/ca-bundle", @@ -1579,7 +1623,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -1631,7 +1675,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -1799,7 +1843,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.2.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1849,7 +1893,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -2247,6 +2291,24 @@ "keywords": [ "license" ], + "funding": [ + { + "url": "https://paypal.me/localheinz", + "type": "custom" + }, + { + "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", + "type": "custom" + }, + { + "url": "https://www.buymeacoffee.com/localheinz", + "type": "custom" + }, + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], "time": "2020-05-04T17:36:52+00:00" }, { @@ -2385,6 +2447,20 @@ "phpunit", "test" ], + "funding": [ + { + "url": "http://paypal.me/localheinz", + "type": "custom" + }, + { + "url": "https://www.buymeacoffee.com/localheinz", + "type": "custom" + }, + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], "time": "2020-03-11T11:08:49+00:00" }, { @@ -2597,7 +2673,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.9-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -3008,7 +3084,7 @@ "bin-links": false }, "branch-alias": { - "dev-main": "2.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -3071,7 +3147,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.0-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -3167,7 +3243,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -3317,7 +3393,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -3375,7 +3451,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.x-dev" + "dev-master": "4.x-dev" } }, "autoload": { @@ -3424,7 +3500,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -3473,7 +3549,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.10.x-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { @@ -3539,7 +3615,7 @@ "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-main": "0.11-dev" + "dev-master": "0.11-dev" }, "phpstan": { "includes": [ @@ -3590,7 +3666,7 @@ "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-main": "0.11-dev" + "dev-master": "0.11-dev" }, "phpstan": { "includes": [ @@ -3645,7 +3721,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.1-dev" + "dev-master": "6.1-dev" } }, "autoload": { @@ -3696,7 +3772,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3787,7 +3863,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.1-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -3837,7 +3913,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -3918,7 +3994,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "7.5-dev" + "dev-master": "7.5-dev" } }, "autoload": { @@ -3970,7 +4046,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.2.x-dev" + "dev-master": "3.2.x-dev" } }, "autoload": { @@ -4016,7 +4092,7 @@ "ocramius/package-versions": "^1.3", "php": "^7.1.3", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.6.2 || dev-main" + "vimeo/psalm": "^3.6.2 || dev-master" }, "require-dev": { "codeception/codeception": "^4.0.3", @@ -4070,7 +4146,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -4117,7 +4193,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4180,7 +4256,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4238,7 +4314,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.2-dev" + "dev-master": "4.2-dev" } }, "autoload": { @@ -4290,7 +4366,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -4358,7 +4434,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4408,7 +4484,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -4453,7 +4529,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -4498,7 +4574,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -4548,7 +4624,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4590,7 +4666,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -4721,7 +4797,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -4889,16 +4965,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.17.1", + "version": "v1.18.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d" + "reference": "1c302646f6efc070cd46856e600e5e0684d6b454" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", - "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454", + "reference": "1c302646f6efc070cd46856e600e5e0684d6b454", "shasum": "" }, "require": { @@ -4910,7 +4986,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "1.18-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4961,7 +5037,7 @@ "type": "tidelift" } ], - "time": "2020-06-06T08:46:27+00:00" + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/polyfill-php70", @@ -5266,7 +5342,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5337,21 +5413,22 @@ }, { "name": "vimeo/psalm", - "version": "3.12.2", + "version": "3.13.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "7c7ebd068f8acaba211d4a2c707c4ba90874fa26" + "reference": "afd8874a9e4562eac42a02de90e42e430c3a1db1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/7c7ebd068f8acaba211d4a2c707c4ba90874fa26", - "reference": "7c7ebd068f8acaba211d4a2c707c4ba90874fa26", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/afd8874a9e4562eac42a02de90e42e430c3a1db1", + "reference": "afd8874a9e4562eac42a02de90e42e430c3a1db1", "shasum": "" }, "require": { "amphp/amp": "^2.1", "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.8.0", "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^1.1", "ext-dom": "*", @@ -5361,9 +5438,8 @@ "ext-tokenizer": "*", "felixfbecker/advanced-json-rpc": "^3.0.3", "felixfbecker/language-server-protocol": "^1.4", - "netresearch/jsonmapper": "^1.0 || ^2.0", - "nikic/php-parser": "^4.3", - "ocramius/package-versions": "^1.2", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0", + "nikic/php-parser": "4.3.* || 4.4.* || 4.5.* || 4.6.*", "openlss/lib-array2xml": "^1.0", "php": "^7.1.3|^8", "sebastian/diff": "^3.0 || ^4.0", @@ -5379,7 +5455,6 @@ "bamarni/composer-bin-plugin": "^1.2", "brianium/paratest": "^4.0.0", "ext-curl": "*", - "php-coveralls/php-coveralls": "^2.2", "phpmyadmin/sql-parser": "5.1.0", "phpspec/prophecy": ">=1.9.0", "phpunit/phpunit": "^7.5.16 || ^8.5 || ^9.0", @@ -5430,7 +5505,7 @@ "inspection", "php" ], - "time": "2020-07-03T16:59:07+00:00" + "time": "2020-07-30T19:42:34+00:00" }, { "name": "webmozart/assert", @@ -5506,7 +5581,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.1-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -5552,7 +5627,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.3-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -5592,7 +5667,7 @@ "php": "^5.5 || ^7.0" }, "require-dev": { - "athletic/athletic": "dev-main", + "athletic/athletic": "dev-master", "fabpot/php-cs-fixer": "1.7.*", "phpunit/phpunit": "~4.0", "zendframework/zend-di": "~2.5", @@ -5605,7 +5680,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.7-dev", + "dev-master": "2.7-dev", "dev-develop": "3.0-dev" } }, From ea6621d142e6b0bf8c030b6429938eeb8667cc36 Mon Sep 17 00:00:00 2001 From: Filippo Tessarotto Date: Wed, 29 Jul 2020 10:33:12 +0200 Subject: [PATCH 039/305] Methods\FinalInAbstractClassRule: allow __construct method to be non-final --- CHANGELOG.md | 16 ++++++++++++++-- src/Methods/FinalInAbstractClassRule.php | 4 ++++ .../AbstractClassWithNonFinalConstructor.php | 12 ++++++++++++ .../Methods/FinalInAbstractClassRuleTest.php | 1 + 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 test/Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithNonFinalConstructor.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a5b2025..89ea2068 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased -For a full diff see [`0.15.0...main`][0.15.0...main]. +For a full diff see [`0.15.1...main`][0.15.1...main]. + +## [`0.15.1`][0.15.1] + +For a full diff see [`0.15.0...0.15.1`][0.15.0...0.15.1]. + +### Changed + +* Adjusted `Methods\FinalInAbstractClass` rule to allow non-`final` `public` constructors in abstract classes ([#248]), by [@Slamdunk] ## [`0.15.0`][0.15.0] @@ -323,6 +331,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.14.3]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.14.3 [0.14.4]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.14.4 [0.15.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.0 +[0.15.1]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.1 [362c7ea...0.1.0]: https://github.com/ergebnis/phpstan-rules/compare/362c7ea...0.1.0 [0.1.0...0.2.0]: https://github.com/ergebnis/phpstan-rules/compare/0.1.0...0.2.0 @@ -348,7 +357,8 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.14.2...0.14.3]: https://github.com/ergebnis/phpstan-rules/compare/0.14.2...0.14.3 [0.14.3...0.14.4]: https://github.com/ergebnis/phpstan-rules/compare/0.14.3...0.14.4 [0.14.4...0.15.0]: https://github.com/ergebnis/phpstan-rules/compare/0.14.4...0.15.0 -[0.15.0...main]: https://github.com/ergebnis/phpstan-rules/compare/0.15.0...main +[0.15.0...0.15.1]: https://github.com/ergebnis/phpstan-rules/compare/0.15.0...0.15.1 +[0.15.1...main]: https://github.com/ergebnis/phpstan-rules/compare/0.15.1...main [#1]: https://github.com/ergebnis/phpstan-rules/pull/1 [#4]: https://github.com/ergebnis/phpstan-rules/pull/4 @@ -398,7 +408,9 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#186]: https://github.com/ergebnis/phpstan-rules/pull/186 [#202]: https://github.com/ergebnis/phpstan-rules/pull/202 [#225]: https://github.com/ergebnis/phpstan-rules/pull/225 +[#248]: https://github.com/ergebnis/phpstan-rules/pull/248 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique [@localheinz]: https://github.com/localheinz +[@Slamdunk]: https://github.com/Slamdunk diff --git a/src/Methods/FinalInAbstractClassRule.php b/src/Methods/FinalInAbstractClassRule.php index 6ac0ab05..edfed251 100644 --- a/src/Methods/FinalInAbstractClassRule.php +++ b/src/Methods/FinalInAbstractClassRule.php @@ -59,6 +59,10 @@ public function processNode(Node $node, Scope $scope): array return []; } + if ('__construct' === $node->name->name) { + return []; + } + return [ \sprintf( 'Method %s::%s() is not final, but since the containing class is abstract, it should be.', diff --git a/test/Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithNonFinalConstructor.php b/test/Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithNonFinalConstructor.php new file mode 100644 index 00000000..59e42e2c --- /dev/null +++ b/test/Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithNonFinalConstructor.php @@ -0,0 +1,12 @@ + __DIR__ . '/../../Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithAbstractMethod.php', 'abstract-class-with-final-protected-method' => __DIR__ . '/../../Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithFinalProtectedMethod.php', 'abstract-class-with-final-public-method' => __DIR__ . '/../../Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithFinalPublicMethod.php', + 'abstract-class-with-non-final-constructor' => __DIR__ . '/../../Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithNonFinalConstructor.php', 'abstract-class-with-private-method' => __DIR__ . '/../../Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithPrivateMethod.php', 'interface-with-public-method' => __DIR__ . '/../../Fixture/Methods/FinalInAbstractClassRule/Success/InterfaceWithPublicMethod.php', ]; From 5eee1ce2128f8d2ccdabc8b87ee5ec2126687768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Fri, 31 Jul 2020 19:58:46 +0200 Subject: [PATCH 040/305] Fix: Issues detected via static analysis --- src/Classes/FinalRule.php | 2 +- src/Classes/NoExtendsRule.php | 2 +- src/Functions/NoNullableReturnTypeDeclarationRule.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index 93ad7564..f4ba42c2 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -97,7 +97,7 @@ public function processNode(Node $node, Scope $scope): array return [ \sprintf( $this->errorMessageTemplate, - $node->namespacedName + $node->namespacedName->toString() ), ]; } diff --git a/src/Classes/NoExtendsRule.php b/src/Classes/NoExtendsRule.php index df760850..677b1815 100644 --- a/src/Classes/NoExtendsRule.php +++ b/src/Classes/NoExtendsRule.php @@ -83,7 +83,7 @@ public function processNode(Node $node, Scope $scope): array return [ \sprintf( 'Class "%s" is not allowed to extend "%s".', - $node->namespacedName, + $node->namespacedName->toString(), $extendedClassName ), ]; diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index 21a7d1ca..e3e926fd 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -42,7 +42,7 @@ public function processNode(Node $node, Scope $scope): array return [ \sprintf( 'Function %s() has a nullable return type declaration.', - $node->namespacedName + $node->namespacedName->toString() ), ]; } From fbb4d7964c0eb974ed602fb5947f291835cbcf4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Fri, 31 Jul 2020 19:59:00 +0200 Subject: [PATCH 041/305] Fix: Regenerate baseline --- psalm-baseline.xml | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 3c41905a..d9704a49 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,38 +1,25 @@ - + - - $node->namespacedName + $docComment->getReformattedText() $annotation $annotation - - toString - - - $node->namespacedName - + + isset($node->namespacedName) + - - $node->namespacedName->toString() - $node->namespacedName - - - toString - - - - - $node->namespacedName - + + isset($node->namespacedName) + From 5e727983c4767010d4b0f3c5fc4cedca7df03ce8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2020 13:01:14 +0000 Subject: [PATCH 042/305] github-actions(deps): bump actions/create-release from v1.1.1 to v1.1.2 Bumps [actions/create-release](https://github.com/actions/create-release) from v1.1.1 to v1.1.2. - [Release notes](https://github.com/actions/create-release/releases) - [Commits](https://github.com/actions/create-release/compare/v1.1.1...25a1bf7b5927ddc2c8c2a67d3bb564da1d3428bf) Signed-off-by: dependabot[bot] --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c4b97e21..e66f5dfd 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -19,7 +19,7 @@ jobs: run: "echo \"::set-output name=tag::${GITHUB_REF#refs/tags/}\"" - name: "Create release" - uses: "actions/create-release@v1.1.1" + uses: "actions/create-release@v1.1.2" env: GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" with: From abc633c91cfa5bc1b81819ff49d28a2657f168bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2020 05:22:19 +0000 Subject: [PATCH 043/305] github-actions(deps): bump actions/checkout from v2.3.1 to v2.3.2 Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.1 to v2.3.2. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.1...2036a08e25fa78bbd946711a407b529a0a1204bf) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 5fe629cf..0436cdb1 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -29,7 +29,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.1" + uses: "actions/checkout@v2.3.2" - name: "Lint YAML files" uses: "ibiqlik/action-yamllint@v1" @@ -102,7 +102,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.1" + uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -152,7 +152,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.1" + uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -230,7 +230,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.1" + uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -286,7 +286,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.1" + uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" @@ -344,7 +344,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.1" + uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 0d478096..558925fb 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.1" + uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@v2" From cae33b534fec030c154ff44a5b3f905b9a6b1e04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2020 05:12:24 +0000 Subject: [PATCH 044/305] github-actions(deps): bump actions/create-release from v1.1.2 to v1.1.3 Bumps [actions/create-release](https://github.com/actions/create-release) from v1.1.2 to v1.1.3. - [Release notes](https://github.com/actions/create-release/releases) - [Commits](https://github.com/actions/create-release/compare/v1.1.2...1e92f6fc665e271a5435631ba00711fdd83d9d27) Signed-off-by: dependabot[bot] --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e66f5dfd..3133c9c4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -19,7 +19,7 @@ jobs: run: "echo \"::set-output name=tag::${GITHUB_REF#refs/tags/}\"" - name: "Create release" - uses: "actions/create-release@v1.1.2" + uses: "actions/create-release@v1.1.3" env: GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" with: From 31b0355251559284b782254c122537c6b8f1d4e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2020 05:25:07 +0000 Subject: [PATCH 045/305] composer(deps-dev): bump ergebnis/composer-normalize from 2.6.1 to 2.7.0 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.6.1 to 2.7.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.6.1...2.7.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 45 +++++++++++++++------------------------------ 2 files changed, 16 insertions(+), 31 deletions(-) diff --git a/composer.json b/composer.json index f8ec7ed3..43a544b4 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.6.1", + "ergebnis/composer-normalize": "^2.7.0", "ergebnis/license": "^1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", "ergebnis/test-util": "^1.0.0", diff --git a/composer.lock b/composer.lock index 68e09a13..706fdea0 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": "6d3ac9e2c0d65558539dfe30d1aac884", + "content-hash": "3c57992a4806c78f3fa94a41b4a4b987", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1987,16 +1987,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.6.1", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "6a8595060dd34b6373ecf7e8d7da56d97a6e0dfa" + "reference": "365fc2b7494a15e17ce0e50eb5a6167085e620d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/6a8595060dd34b6373ecf7e8d7da56d97a6e0dfa", - "reference": "6a8595060dd34b6373ecf7e8d7da56d97a6e0dfa", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/365fc2b7494a15e17ce0e50eb5a6167085e620d3", + "reference": "365fc2b7494a15e17ce0e50eb5a6167085e620d3", "shasum": "" }, "require": { @@ -2009,17 +2009,17 @@ }, "require-dev": { "composer/composer": "^1.10.8 || ^2.0.0", - "composer/package-versions-deprecated": "^1.8.1", - "ergebnis/phpstan-rules": "~0.15.0", - "ergebnis/test-util": "~1.0.0", + "composer/package-versions-deprecated": "^1.10.99", + "ergebnis/phpstan-rules": "~0.15.1", + "ergebnis/test-util": "^1.0.0", "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.32", - "phpstan/phpstan-deprecation-rules": "~0.12.4", - "phpstan/phpstan-phpunit": "~0.12.11", - "phpstan/phpstan-strict-rules": "~0.12.2", + "phpstan/phpstan": "~0.12.37", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-strict-rules": "~0.12.4", "phpunit/phpunit": "^7.5.20", - "symfony/filesystem": "^4.4.9" + "symfony/filesystem": "^4.4.11" }, "type": "composer-plugin", "extra": { @@ -2049,28 +2049,12 @@ "plugin" ], "funding": [ - { - "url": "https://cottonbureau.com/people/andreas-moller", - "type": "custom" - }, - { - "url": "https://paypal.me/localheinz", - "type": "custom" - }, - { - "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", - "type": "custom" - }, - { - "url": "https://www.buymeacoffee.com/localheinz", - "type": "custom" - }, { "url": "https://github.com/localheinz", "type": "github" } ], - "time": "2020-07-06T06:52:50+00:00" + "time": "2020-08-16T21:17:37+00:00" }, { "name": "ergebnis/json-normalizer", @@ -3936,6 +3920,7 @@ "keywords": [ "tokenizer" ], + "abandoned": true, "time": "2019-09-17T06:23:10+00:00" }, { From 537dcc2e7553a8e1f3433a337c23f27d4f7aa28e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2020 05:06:55 +0000 Subject: [PATCH 046/305] composer(deps-dev): bump vimeo/psalm from 3.13.1 to 3.14.1 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.13.1 to 3.14.1. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.13.1...3.14.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 35 ++++++++++++++++++----------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/composer.json b/composer.json index 43a544b4..6b06ee5b 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.13.1", + "vimeo/psalm": "^3.14.1", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 706fdea0..3aa3154c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,25 +4,25 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3c57992a4806c78f3fa94a41b4a4b987", + "content-hash": "c5ed70ce0dd793ca7b0837a20a546ed8", "packages": [ { "name": "composer/package-versions-deprecated", - "version": "1.10.99", + "version": "1.10.99.1", "source": { "type": "git", "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f" + "reference": "68c9b502036e820c33445ff4d174327f6bb87486" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/dd51b4443d58b34b6d9344cf4c288e621c9a826f", - "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/68c9b502036e820c33445ff4d174327f6bb87486", + "reference": "68c9b502036e820c33445ff4d174327f6bb87486", "shasum": "" }, "require": { "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7" + "php": "^7 || ^8" }, "replace": { "ocramius/package-versions": "1.10.99" @@ -73,7 +73,7 @@ "type": "tidelift" } ], - "time": "2020-07-15T08:39:18+00:00" + "time": "2020-08-13T12:55:41+00:00" }, { "name": "composer/xdebug-handler", @@ -1137,7 +1137,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.18.0", + "version": "v1.18.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -1214,7 +1214,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.18.0", + "version": "v1.18.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -1290,7 +1290,7 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.18.0", + "version": "v1.18.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", @@ -4950,7 +4950,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.18.0", + "version": "v1.18.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -5398,16 +5398,16 @@ }, { "name": "vimeo/psalm", - "version": "3.13.1", + "version": "3.14.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "afd8874a9e4562eac42a02de90e42e430c3a1db1" + "reference": "9822043ca46d6682b76097bfa97d7c450eef9e90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/afd8874a9e4562eac42a02de90e42e430c3a1db1", - "reference": "afd8874a9e4562eac42a02de90e42e430c3a1db1", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/9822043ca46d6682b76097bfa97d7c450eef9e90", + "reference": "9822043ca46d6682b76097bfa97d7c450eef9e90", "shasum": "" }, "require": { @@ -5424,7 +5424,7 @@ "felixfbecker/advanced-json-rpc": "^3.0.3", "felixfbecker/language-server-protocol": "^1.4", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0", - "nikic/php-parser": "4.3.* || 4.4.* || 4.5.* || 4.6.*", + "nikic/php-parser": "4.3.* || 4.4.* || 4.5.* || 4.6.* || ^4.8", "openlss/lib-array2xml": "^1.0", "php": "^7.1.3|^8", "sebastian/diff": "^3.0 || ^4.0", @@ -5440,6 +5440,7 @@ "bamarni/composer-bin-plugin": "^1.2", "brianium/paratest": "^4.0.0", "ext-curl": "*", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5", "phpmyadmin/sql-parser": "5.1.0", "phpspec/prophecy": ">=1.9.0", "phpunit/phpunit": "^7.5.16 || ^8.5 || ^9.0", @@ -5490,7 +5491,7 @@ "inspection", "php" ], - "time": "2020-07-30T19:42:34+00:00" + "time": "2020-08-17T19:48:48+00:00" }, { "name": "webmozart/assert", From 4ab48364b872715cf3caf5764fceec89c041ad30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2020 05:54:37 +0000 Subject: [PATCH 047/305] composer(deps-dev): bump ergebnis/composer-normalize from 2.7.0 to 2.7.1 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.7.0 to 2.7.1. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.7.0...2.7.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 6b06ee5b..db81e988 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.7.0", + "ergebnis/composer-normalize": "^2.7.1", "ergebnis/license": "^1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", "ergebnis/test-util": "^1.0.0", diff --git a/composer.lock b/composer.lock index 3aa3154c..f439bd2d 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": "c5ed70ce0dd793ca7b0837a20a546ed8", + "content-hash": "582f8bdfc10646a0e21e7106193650d7", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1987,16 +1987,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.7.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "365fc2b7494a15e17ce0e50eb5a6167085e620d3" + "reference": "d697f180813561f2ea138e85f7b0b2c558ebc00e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/365fc2b7494a15e17ce0e50eb5a6167085e620d3", - "reference": "365fc2b7494a15e17ce0e50eb5a6167085e620d3", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d697f180813561f2ea138e85f7b0b2c558ebc00e", + "reference": "d697f180813561f2ea138e85f7b0b2c558ebc00e", "shasum": "" }, "require": { @@ -2054,7 +2054,7 @@ "type": "github" } ], - "time": "2020-08-16T21:17:37+00:00" + "time": "2020-08-17T08:57:07+00:00" }, { "name": "ergebnis/json-normalizer", From a636da9df8ffa32fa8c76693b6986fc419c794c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Aug 2020 05:27:20 +0000 Subject: [PATCH 048/305] composer(deps-dev): bump vimeo/psalm from 3.14.1 to 3.14.2 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.14.1 to 3.14.2. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.14.1...3.14.2) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index db81e988..d58283b0 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^7.5.20", "psalm/plugin-phpunit": "~0.10.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.14.1", + "vimeo/psalm": "^3.14.2", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index f439bd2d..317c3ea2 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": "582f8bdfc10646a0e21e7106193650d7", + "content-hash": "3a4ebdacea9bf41d1b9bce3db6fe4929", "packages": [ { "name": "composer/package-versions-deprecated", @@ -77,16 +77,16 @@ }, { "name": "composer/xdebug-handler", - "version": "1.4.2", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51" + "reference": "ebd27a9866ae8254e873866f795491f02418c5a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", - "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ebd27a9866ae8254e873866f795491f02418c5a5", + "reference": "ebd27a9866ae8254e873866f795491f02418c5a5", "shasum": "" }, "require": { @@ -131,7 +131,7 @@ "type": "tidelift" } ], - "time": "2020-06-04T11:16:35+00:00" + "time": "2020-08-19T10:27:58+00:00" }, { "name": "jean85/pretty-package-versions", @@ -3157,6 +3157,7 @@ "self-update", "update" ], + "abandoned": true, "time": "2018-03-30T12:52:15+00:00" }, { @@ -5398,16 +5399,16 @@ }, { "name": "vimeo/psalm", - "version": "3.14.1", + "version": "3.14.2", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "9822043ca46d6682b76097bfa97d7c450eef9e90" + "reference": "3538fe1955d47f6ee926c0769d71af6db08aa488" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/9822043ca46d6682b76097bfa97d7c450eef9e90", - "reference": "9822043ca46d6682b76097bfa97d7c450eef9e90", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/3538fe1955d47f6ee926c0769d71af6db08aa488", + "reference": "3538fe1955d47f6ee926c0769d71af6db08aa488", "shasum": "" }, "require": { @@ -5491,7 +5492,7 @@ "inspection", "php" ], - "time": "2020-08-17T19:48:48+00:00" + "time": "2020-08-22T14:01:26+00:00" }, { "name": "webmozart/assert", From 03517b5aa7aa06944529522d3809bab89e913b95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Aug 2020 05:28:11 +0000 Subject: [PATCH 049/305] github-actions(deps): bump actions/github-script from v2 to v3 Bumps [actions/github-script](https://github.com/actions/github-script) from v2 to v3. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v2...626af12fe9a53dc2972b48385e7fe7dec79145c9) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 8 ++++---- .github/workflows/triage.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 0436cdb1..b3813fcd 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -407,7 +407,7 @@ jobs: steps: - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v2" + uses: "actions/github-script@v3" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -426,7 +426,7 @@ jobs: }) - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v2" + uses: "actions/github-script@v3" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -445,7 +445,7 @@ jobs: }) - name: "Approve pull request" - uses: "actions/github-script@v2" + uses: "actions/github-script@v3" if: "github.actor != 'ergebnis-bot'" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" @@ -461,7 +461,7 @@ jobs: }) - name: "Merge pull request" - uses: "actions/github-script@v2" + uses: "actions/github-script@v3" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index 10688d0a..5cd187e1 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -13,7 +13,7 @@ jobs: steps: - name: "Add labels based on branch name" - uses: "actions/github-script@v2" + uses: "actions/github-script@v3" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | From 2c849d555bfb607d743b1ef2f349dd45b1ae64d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2020 05:28:34 +0000 Subject: [PATCH 050/305] composer(deps-dev): bump psalm/plugin-phpunit from 0.10.1 to 0.11.0 Bumps [psalm/plugin-phpunit](https://github.com/psalm/psalm-plugin-phpunit) from 0.10.1 to 0.11.0. - [Release notes](https://github.com/psalm/psalm-plugin-phpunit/releases) - [Commits](https://github.com/psalm/psalm-plugin-phpunit/compare/0.10.1...0.11.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index d58283b0..f6f0d123 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.1", + "psalm/plugin-phpunit": "~0.11.0", "psr/container": "^1.0.0", "vimeo/psalm": "^3.14.2", "zendframework/zend-servicemanager": "^2.0.0" diff --git a/composer.lock b/composer.lock index 317c3ea2..3a8c8031 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": "3a4ebdacea9bf41d1b9bce3db6fe4929", + "content-hash": "344e798d1bfe9f0cd1ec3885c13678c1", "packages": [ { "name": "composer/package-versions-deprecated", @@ -4060,22 +4060,22 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.10.1", + "version": "0.11.0", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "138998ffd32b76a2e69eb1ff94ef2bf110967273" + "reference": "d3f5c00e8ceac01ad85ae2a85865763e43f0d56d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/138998ffd32b76a2e69eb1ff94ef2bf110967273", - "reference": "138998ffd32b76a2e69eb1ff94ef2bf110967273", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/d3f5c00e8ceac01ad85ae2a85865763e43f0d56d", + "reference": "d3f5c00e8ceac01ad85ae2a85865763e43f0d56d", "shasum": "" }, "require": { - "composer/semver": "^1.4", + "composer/package-versions-deprecated": "^1.10", + "composer/semver": "^1.4 || ^2.0 || ^3.0", "ext-simplexml": "*", - "ocramius/package-versions": "^1.3", "php": "^7.1.3", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", "vimeo/psalm": "^3.6.2 || dev-master" @@ -4083,7 +4083,8 @@ "require-dev": { "codeception/codeception": "^4.0.3", "squizlabs/php_codesniffer": "^3.3.1", - "weirdan/codeception-psalm-module": "^0.7.1" + "weirdan/codeception-psalm-module": "^0.7.1", + "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "type": "psalm-plugin", "extra": { @@ -4107,7 +4108,7 @@ } ], "description": "Psalm plugin for PHPUnit", - "time": "2020-05-24T20:30:10+00:00" + "time": "2020-08-24T21:08:29+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", From c095e03ca7d39bdaa7a6537a078361031a74ec5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 29 Aug 2020 10:34:28 +0200 Subject: [PATCH 051/305] Fix: Use full tag --- .github/workflows/integrate.yaml | 8 ++++---- .github/workflows/triage.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index b3813fcd..2b6fa731 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -407,7 +407,7 @@ jobs: steps: - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v3" + uses: "actions/github-script@v3.0.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -426,7 +426,7 @@ jobs: }) - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v3" + uses: "actions/github-script@v3.0.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -445,7 +445,7 @@ jobs: }) - name: "Approve pull request" - uses: "actions/github-script@v3" + uses: "actions/github-script@v3.0.0" if: "github.actor != 'ergebnis-bot'" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" @@ -461,7 +461,7 @@ jobs: }) - name: "Merge pull request" - uses: "actions/github-script@v3" + uses: "actions/github-script@v3.0.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index 5cd187e1..5091493b 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -13,7 +13,7 @@ jobs: steps: - name: "Add labels based on branch name" - uses: "actions/github-script@v3" + uses: "actions/github-script@v3.0.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | From ec82d05da7275e68c8208bed0c958dade7a04597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 29 Aug 2020 10:34:48 +0200 Subject: [PATCH 052/305] Fix: Use requestReviewers() instead of createReviewRequest() --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 2b6fa731..f971c8eb 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -418,7 +418,7 @@ jobs: "ergebnis-bot", ] - await github.pulls.createReviewRequest({ + await github.pulls.requestReviewers({ owner: repository.owner, pull_number: pullRequest.number, repo: repository.repo, From 02841a4b6f11d8a3de1c59ad06faa708ff0b408e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 29 Aug 2020 10:40:08 +0200 Subject: [PATCH 053/305] Fix: Drop support for PHP 7.1 --- .github/settings.yml | 5 +---- .github/workflows/integrate.yaml | 3 +-- .github/workflows/renew.yaml | 2 +- CHANGELOG.md | 15 +++++++++++++-- composer.json | 4 ++-- composer.lock | 6 +++--- 6 files changed, 21 insertions(+), 14 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index b1645181..3d234574 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -15,13 +15,10 @@ branches: required_status_checks: contexts: - "Code Coverage (7.4, locked)" - - "Coding Standards (7.1, locked)" + - "Coding Standards (7.2, locked)" - "Dependency Analysis (7.4, locked)" - "Mutation Tests (7.4, locked)" - "Static Code Analysis (7.4, locked)" - - "Tests (7.1, highest)" - - "Tests (7.1, locked)" - - "Tests (7.1, lowest)" - "Tests (7.2, highest)" - "Tests (7.2, locked)" - "Tests (7.2, lowest)" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 0436cdb1..4f854788 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -22,7 +22,7 @@ jobs: strategy: matrix: php-version: - - "7.1" + - "7.2" dependencies: - "locked" @@ -218,7 +218,6 @@ jobs: strategy: matrix: php-version: - - "7.1" - "7.2" - "7.3" - "7.4" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 558925fb..9db86c27 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -18,7 +18,7 @@ jobs: strategy: matrix: php-version: - - "7.1" + - "7.2" dependencies: - "locked" diff --git a/CHANGELOG.md b/CHANGELOG.md index 89ea2068..1713f3f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased -For a full diff see [`0.15.1...main`][0.15.1...main]. +For a full diff see [`0.15.2...main`][0.15.2...main]. + +## [`0.15.2`][0.15.2] + +For a full diff see [`0.15.1...0.15.2`][0.15.1...0.15.2]. + +### Changed + +* Dropped support for PHP 7.1 ([#259]), by [@localheinz] ## [`0.15.1`][0.15.1] @@ -332,6 +340,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.14.4]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.14.4 [0.15.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.0 [0.15.1]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.1 +[0.15.2]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.2 [362c7ea...0.1.0]: https://github.com/ergebnis/phpstan-rules/compare/362c7ea...0.1.0 [0.1.0...0.2.0]: https://github.com/ergebnis/phpstan-rules/compare/0.1.0...0.2.0 @@ -358,7 +367,8 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.14.3...0.14.4]: https://github.com/ergebnis/phpstan-rules/compare/0.14.3...0.14.4 [0.14.4...0.15.0]: https://github.com/ergebnis/phpstan-rules/compare/0.14.4...0.15.0 [0.15.0...0.15.1]: https://github.com/ergebnis/phpstan-rules/compare/0.15.0...0.15.1 -[0.15.1...main]: https://github.com/ergebnis/phpstan-rules/compare/0.15.1...main +[0.15.1...0.15.2]: https://github.com/ergebnis/phpstan-rules/compare/0.15.1...0.15.2 +[0.15.2...main]: https://github.com/ergebnis/phpstan-rules/compare/0.15.2...main [#1]: https://github.com/ergebnis/phpstan-rules/pull/1 [#4]: https://github.com/ergebnis/phpstan-rules/pull/4 @@ -409,6 +419,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#202]: https://github.com/ergebnis/phpstan-rules/pull/202 [#225]: https://github.com/ergebnis/phpstan-rules/pull/225 [#248]: https://github.com/ergebnis/phpstan-rules/pull/248 +[#259]: https://github.com/ergebnis/phpstan-rules/pull/259 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique diff --git a/composer.json b/composer.json index f6f0d123..6a922d41 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.1", + "php": "^7.2", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", "phpstan/phpstan": "~0.11.15 || ~0.12.0" @@ -38,7 +38,7 @@ }, "config": { "platform": { - "php": "7.1.33" + "php": "7.2.33" }, "preferred-install": "dist", "sort-packages": true diff --git a/composer.lock b/composer.lock index 3a8c8031..425a1433 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": "344e798d1bfe9f0cd1ec3885c13678c1", + "content-hash": "164e1164162b5db022eee16727818f58", "packages": [ { "name": "composer/package-versions-deprecated", @@ -5696,12 +5696,12 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.1", + "php": "^7.2", "ext-mbstring": "*" }, "platform-dev": [], "platform-overrides": { - "php": "7.1.33" + "php": "7.2.33" }, "plugin-api-version": "1.1.0" } From df5b9c3494e371901cd6980bfcbcedab8dc36c76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Aug 2020 08:46:47 +0000 Subject: [PATCH 054/305] composer(deps-dev): bump infection/infection from 0.13.6 to 0.15.3 Bumps [infection/infection](https://github.com/infection/infection) from 0.13.6 to 0.15.3. - [Release notes](https://github.com/infection/infection/releases) - [Changelog](https://github.com/infection/infection/blob/master/CHANGELOG.md) - [Commits](https://github.com/infection/infection/compare/0.13.6...0.15.3) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 604 +++++++++++++++++++++++++++++--------------------- 2 files changed, 355 insertions(+), 251 deletions(-) diff --git a/composer.json b/composer.json index 6a922d41..569b9953 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "ergebnis/license": "^1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", "ergebnis/test-util": "^1.0.0", - "infection/infection": "~0.13.6", + "infection/infection": "~0.15.3", "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", diff --git a/composer.lock b/composer.lock index 425a1433..36bb6c02 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "164e1164162b5db022eee16727818f58", + "content-hash": "f567a919c842acd416746698a361aad3", "packages": [ { "name": "composer/package-versions-deprecated", - "version": "1.10.99.1", + "version": "1.11.99", "source": { "type": "git", "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "68c9b502036e820c33445ff4d174327f6bb87486" + "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/68c9b502036e820c33445ff4d174327f6bb87486", - "reference": "68c9b502036e820c33445ff4d174327f6bb87486", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", + "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", "shasum": "" }, "require": { @@ -25,7 +25,7 @@ "php": "^7 || ^8" }, "replace": { - "ocramius/package-versions": "1.10.99" + "ocramius/package-versions": "1.11.99" }, "require-dev": { "composer/composer": "^1.9.3 || ^2.0@dev", @@ -73,7 +73,7 @@ "type": "tidelift" } ], - "time": "2020-08-13T12:55:41+00:00" + "time": "2020-08-25T05:50:16+00:00" }, { "name": "composer/xdebug-handler", @@ -1074,20 +1074,20 @@ }, { "name": "symfony/finder", - "version": "v4.4.10", + "version": "v4.4.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "5729f943f9854c5781984ed4907bbb817735776b" + "reference": "2727aa35fddfada1dd37599948528e9b152eb742" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", - "reference": "5729f943f9854c5781984ed4907bbb817735776b", + "url": "https://api.github.com/repos/symfony/finder/zipball/2727aa35fddfada1dd37599948528e9b152eb742", + "reference": "2727aa35fddfada1dd37599948528e9b152eb742", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.1.3" }, "type": "library", "extra": { @@ -1133,7 +1133,7 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:54:36+00:00" + "time": "2020-07-05T09:39:30+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -1370,20 +1370,20 @@ }, { "name": "symfony/service-contracts", - "version": "v1.1.9", + "version": "v2.1.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26" + "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b776d18b303a39f56c63747bcb977ad4b27aca26", - "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/58c7475e5457c5492c26cc740cc0ad7464be9442", + "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/container": "^1.0" }, "suggest": { @@ -1392,7 +1392,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.1-dev" }, "thanks": { "name": "symfony/contracts", @@ -1442,7 +1442,7 @@ "type": "tidelift" } ], - "time": "2020-07-06T13:19:58+00:00" + "time": "2020-07-06T13:23:11+00:00" } ], "packages-dev": [ @@ -1596,62 +1596,6 @@ ], "time": "2020-06-29T18:35:05+00:00" }, - { - "name": "composer/ca-bundle", - "version": "1.2.5", - "source": { - "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "62e8fc2dc550e5d6d8c9360c7721662670f58149" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/62e8fc2dc550e5d6d8c9360c7721662670f58149", - "reference": "62e8fc2dc550e5d6d8c9360c7721662670f58149", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-pcre": "*", - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", - "psr/log": "^1.0", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\CaBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], - "time": "2019-12-11T14:44:42+00:00" - }, { "name": "composer/semver", "version": "1.5.1", @@ -2684,44 +2628,46 @@ }, { "name": "infection/infection", - "version": "0.13.6", + "version": "0.15.3", "source": { "type": "git", "url": "https://github.com/infection/infection.git", - "reference": "09b4d371d203f7f22dcf1741a3f6c657404fb61e" + "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/infection/infection/zipball/09b4d371d203f7f22dcf1741a3f6c657404fb61e", - "reference": "09b4d371d203f7f22dcf1741a3f6c657404fb61e", + "url": "https://api.github.com/repos/infection/infection/zipball/c3fc380317eb14d213e1e1962801ee9325129fb2", + "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2", "shasum": "" }, "require": { - "composer/xdebug-handler": "^1.3", + "composer/xdebug-handler": "^1.3.3", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "justinrainbow/json-schema": "^5.2", - "nikic/php-parser": "^4.2.1", + "nikic/php-parser": "^4.2.2", "ocramius/package-versions": "^1.2", - "padraic/phar-updater": "^1.0.4", - "php": "^7.1.3", + "php": "^7.2.9", "pimple/pimple": "^3.2", - "sebastian/diff": "^1.4 || ^2.0 || ^3.0", - "symfony/console": "^3.4 || ^4.0", - "symfony/filesystem": "^3.4 || ^4.0", - "symfony/finder": "^3.4 || ^4.0", - "symfony/process": "^3.4 || ^4.0", - "symfony/yaml": "^3.4 || ^4.0", - "webmozart/assert": "^1.3" + "sebastian/diff": "^3.0.2 || ^4.0", + "seld/jsonlint": "^1.7", + "symfony/console": "^3.4.29 || ^4.0 || ^5.0", + "symfony/filesystem": "^3.4.29 || ^4.0 || ^5.0", + "symfony/finder": "^3.4.29 || ^4.0 || ^5.0", + "symfony/process": "^3.4.29 || ^4.0 || ^5.0", + "symfony/yaml": "^3.4.29 || ^4.0 || ^5.0", + "thecodingmachine/safe": "^1.0", + "webmozart/assert": "^1.3", + "webmozart/path-util": "^2.3" }, "conflict": { - "symfony/console": "=3.4.16 || =4.1.5", - "symfony/process": "3.4.2" + "symfony/console": "=4.1.5" }, "require-dev": { - "helmich/phpunit-json-assert": "^2.1 || ^3.0", - "phpunit/phpunit": "^7.5" + "helmich/phpunit-json-assert": "^3.0", + "phpunit/phpunit": "^8.2.5 <8.4", + "symfony/phpunit-bridge": "^4.3.4 || ^5.0" }, "bin": [ "bin/infection" @@ -2759,6 +2705,11 @@ "name": "Alexey Kopytko", "email": "alexey@kopytko.com", "homepage": "https://www.alexeykopytko.com" + }, + { + "name": "Andreas Möller", + "email": "am@localheinz.com", + "homepage": "https://localheinz.com" } ], "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", @@ -2770,7 +2721,7 @@ "testing", "unit testing" ], - "time": "2019-08-29T19:22:44+00:00" + "time": "2020-02-16T19:33:49+00:00" }, { "name": "justinrainbow/json-schema", @@ -3038,128 +2989,6 @@ ], "time": "2019-03-29T20:06:56+00:00" }, - { - "name": "padraic/humbug_get_contents", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/humbug/file_get_contents.git", - "reference": "dcb086060c9dd6b2f51d8f7a895500307110b7a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/humbug/file_get_contents/zipball/dcb086060c9dd6b2f51d8f7a895500307110b7a7", - "reference": "dcb086060c9dd6b2f51d8f7a895500307110b7a7", - "shasum": "" - }, - "require": { - "composer/ca-bundle": "^1.0", - "ext-openssl": "*", - "php": "^5.3 || ^7.0 || ^7.1 || ^7.2" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.1", - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": false - }, - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Humbug\\": "src/" - }, - "files": [ - "src/function.php", - "src/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" - }, - { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" - } - ], - "description": "Secure wrapper for accessing HTTPS resources with file_get_contents for PHP 5.3+", - "homepage": "https://github.com/padraic/file_get_contents", - "keywords": [ - "download", - "file_get_contents", - "http", - "https", - "ssl", - "tls" - ], - "time": "2018-02-12T18:47:17+00:00" - }, - { - "name": "padraic/phar-updater", - "version": "v1.0.6", - "source": { - "type": "git", - "url": "https://github.com/humbug/phar-updater.git", - "reference": "d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/humbug/phar-updater/zipball/d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1", - "reference": "d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1", - "shasum": "" - }, - "require": { - "padraic/humbug_get_contents": "^1.0", - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Humbug\\SelfUpdate\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" - } - ], - "description": "A thing to make PHAR self-updating easy and secure.", - "keywords": [ - "humbug", - "phar", - "self-update", - "update" - ], - "abandoned": true, - "time": "2018-03-30T12:52:15+00:00" - }, { "name": "paragonie/random_compat", "version": "v9.99.99", @@ -4010,29 +3839,29 @@ }, { "name": "pimple/pimple", - "version": "v3.2.3", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/silexphp/Pimple.git", - "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32" + "reference": "e55d12f9d6a0e7f9c85992b73df1267f46279930" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/9e403941ef9d65d20cba7d54e29fe906db42cf32", - "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/e55d12f9d6a0e7f9c85992b73df1267f46279930", + "reference": "e55d12f9d6a0e7f9c85992b73df1267f46279930", "shasum": "" }, "require": { - "php": ">=5.3.0", + "php": "^7.2.5", "psr/container": "^1.0" }, "require-dev": { - "symfony/phpunit-bridge": "^3.2" + "symfony/phpunit-bridge": "^3.4|^4.4|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2.x-dev" + "dev-master": "3.3.x-dev" } }, "autoload": { @@ -4051,12 +3880,12 @@ } ], "description": "Pimple, a simple Dependency Injection Container", - "homepage": "http://pimple.sensiolabs.org", + "homepage": "https://pimple.symfony.com", "keywords": [ "container", "dependency injection" ], - "time": "2018-01-21T07:42:36+00:00" + "time": "2020-03-03T09:12:48+00:00" }, { "name": "psalm/plugin-phpunit", @@ -4676,6 +4505,129 @@ "homepage": "https://github.com/sebastianbergmann/version", "time": "2016-10-03T07:35:21+00:00" }, + { + "name": "seld/jsonlint", + "version": "1.8.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/590cfec960b77fd55e39b7d9246659e95dd6d337", + "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2020-08-25T06:56:57+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.1.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5e20b83385a77593259c9f8beb2c43cd03b2ac14", + "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-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", + "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": "2020-06-06T08:49:21+00:00" + }, { "name": "symfony/event-dispatcher", "version": "v4.4.10", @@ -4820,26 +4772,26 @@ }, { "name": "symfony/filesystem", - "version": "v4.4.10", + "version": "v5.1.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b27f491309db5757816db672b256ea2e03677d30" + "reference": "6e4320f06d5f2cce0d96530162491f4465179157" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b27f491309db5757816db672b256ea2e03677d30", - "reference": "b27f491309db5757816db672b256ea2e03677d30", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/6e4320f06d5f2cce0d96530162491f4465179157", + "reference": "6e4320f06d5f2cce0d96530162491f4465179157", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -4880,7 +4832,7 @@ "type": "tidelift" } ], - "time": "2020-05-30T18:50:54+00:00" + "time": "2020-05-30T20:35:19+00:00" }, { "name": "symfony/options-resolver", @@ -5174,25 +5126,26 @@ }, { "name": "symfony/process", - "version": "v4.4.10", + "version": "v5.1.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5" + "reference": "1864216226af21eb76d9477f691e7cbf198e0402" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/c714958428a85c86ab97e3a0c96db4c4f381b7f5", - "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5", + "url": "https://api.github.com/repos/symfony/process/zipball/1864216226af21eb76d9477f691e7cbf198e0402", + "reference": "1864216226af21eb76d9477f691e7cbf198e0402", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -5233,7 +5186,7 @@ "type": "tidelift" } ], - "time": "2020-05-30T20:06:45+00:00" + "time": "2020-07-23T08:36:24+00:00" }, { "name": "symfony/stopwatch", @@ -5301,35 +5254,39 @@ }, { "name": "symfony/yaml", - "version": "v4.4.1", + "version": "v5.1.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "76de473358fe802578a415d5bb43c296cf09d211" + "reference": "ea342353a3ef4f453809acc4ebc55382231d4d23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/76de473358fe802578a415d5bb43c296cf09d211", - "reference": "76de473358fe802578a415d5bb43c296cf09d211", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ea342353a3ef4f453809acc4ebc55382231d4d23", + "reference": "ea342353a3ef4f453809acc4ebc55382231d4d23", "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", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -5356,7 +5313,154 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-11-12T14:51:11+00:00" + "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": "2020-05-20T17:43:50+00:00" + }, + { + "name": "thecodingmachine/safe", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "9f277171e296a3c8629c04ac93ec95ff0f208ccb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/9f277171e296a3c8629c04ac93ec95ff0f208ccb", + "reference": "9f277171e296a3c8629c04ac93ec95ff0f208ccb", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "require-dev": { + "phpstan/phpstan": "^0.12", + "squizlabs/php_codesniffer": "^3.2", + "thecodingmachine/phpstan-strict-rules": "^0.12" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.1-dev" + } + }, + "autoload": { + "psr-4": { + "Safe\\": [ + "lib/", + "generated/" + ] + }, + "files": [ + "generated/apache.php", + "generated/apc.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/ingres-ii.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libevent.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/msql.php", + "generated/mssql.php", + "generated/mysql.php", + "generated/mysqli.php", + "generated/mysqlndMs.php", + "generated/mysqlndQc.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/password.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pdf.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/simplexml.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stats.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php", + "lib/special_cases.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "time": "2020-07-10T09:34:29+00:00" }, { "name": "theseer/tokenizer", From c919a25fbf1b113b263ed7752add0f0480a44af8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Aug 2020 08:49:35 +0000 Subject: [PATCH 055/305] composer(deps-dev): bump phpunit/phpunit from 7.5.20 to 8.5.8 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 7.5.20 to 8.5.8. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/7.5.20...8.5.8) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 307 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 196 insertions(+), 113 deletions(-) diff --git a/composer.json b/composer.json index 569b9953..4231f273 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^7.5.20", + "phpunit/phpunit": "^8.5.8", "psalm/plugin-phpunit": "~0.11.0", "psr/container": "^1.0.0", "vimeo/psalm": "^3.14.2", diff --git a/composer.lock b/composer.lock index 36bb6c02..f2889903 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": "f567a919c842acd416746698a361aad3", + "content-hash": "b990a24daae1139f2eac3cd7dad64333", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1760,20 +1760,20 @@ }, { "name": "doctrine/instantiator", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", + "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^6.0", @@ -1812,7 +1812,21 @@ "constructor", "instantiate" ], - "time": "2019-10-21T16:45:58+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%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-05-29T17:27:14+00:00" }, { "name": "doctrine/lexer", @@ -2848,20 +2862,20 @@ }, { "name": "myclabs/deep-copy", - "version": "1.9.4", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "579bb7356d91f9456ccd505f24ca8b667966a0a7" + "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/579bb7356d91f9456ccd505f24ca8b667966a0a7", - "reference": "579bb7356d91f9456ccd505f24ca8b667966a0a7", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", + "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "replace": { "myclabs/deep-copy": "self.version" @@ -2892,7 +2906,13 @@ "object", "object graph" ], - "time": "2019-12-15T19:12:40+00:00" + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-06-29T13:22:24+00:00" }, { "name": "netresearch/jsonmapper", @@ -3189,25 +3209,25 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b" + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b", - "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=7.1" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -3234,45 +3254,42 @@ "reflection", "static analysis" ], - "time": "2020-04-27T09:25:28+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.4", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", - "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", "shasum": "" }, "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", - "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", - "webmozart/assert": "^1.0" + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" }, "require-dev": { - "doctrine/instantiator": "^1.0.5", - "mockery/mockery": "^1.0", - "phpdocumentor/type-resolver": "0.4.*", - "phpunit/phpunit": "^6.4" + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3283,38 +3300,40 @@ { "name": "Mike van Riel", "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-12-28T18:55:12+00:00" + "time": "2020-02-22T12:28:44+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.0.1", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" + "reference": "e878a14a65245fbe78f8080eba03b47c3b705651" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651", + "reference": "e878a14a65245fbe78f8080eba03b47c3b705651", "shasum": "" }, "require": { - "php": "^7.1", + "php": "^7.2 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" + "ext-tokenizer": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { @@ -3333,37 +3352,37 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2019-08-22T18:11:29+00:00" + "time": "2020-06-27T10:12:23+00:00" }, { "name": "phpspec/prophecy", - "version": "1.10.1", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc" + "reference": "b20034be5efcdab4fb60ca3a29cba2949aead160" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc", - "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b20034be5efcdab4fb60ca3a29cba2949aead160", + "reference": "b20034be5efcdab4fb60ca3a29cba2949aead160", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "doctrine/instantiator": "^1.2", + "php": "^7.2", + "phpdocumentor/reflection-docblock": "^5.0", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10.x-dev" + "dev-master": "1.11.x-dev" } }, "autoload": { @@ -3396,7 +3415,7 @@ "spy", "stub" ], - "time": "2019-12-22T21:05:45+00:00" + "time": "2020-07-08T12:44:21+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -3502,40 +3521,40 @@ }, { "name": "phpunit/php-code-coverage", - "version": "6.1.4", + "version": "7.0.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" + "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf", + "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^2.0", + "php": "^7.2", + "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", + "phpunit/php-token-stream": "^3.1.1", "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.1 || ^4.0", + "sebastian/environment": "^4.2.2", "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "theseer/tokenizer": "^1.1.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^8.2.2" }, "suggest": { - "ext-xdebug": "^2.6.0" + "ext-xdebug": "^2.7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.1-dev" + "dev-master": "7.0-dev" } }, "autoload": { @@ -3561,7 +3580,7 @@ "testing", "xunit" ], - "time": "2018-10-31T16:06:48+00:00" + "time": "2019-11-20T13:55:58+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3755,53 +3774,52 @@ }, { "name": "phpunit/phpunit", - "version": "7.5.20", + "version": "8.5.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" + "reference": "34c18baa6a44f1d1fbf0338907139e9dce95b997" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", - "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/34c18baa6a44f1d1fbf0338907139e9dce95b997", + "reference": "34c18baa6a44f1d1fbf0338907139e9dce95b997", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.1", + "doctrine/instantiator": "^1.2.0", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "myclabs/deep-copy": "^1.7", - "phar-io/manifest": "^1.0.2", - "phar-io/version": "^2.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0.7", - "phpunit/php-file-iterator": "^2.0.1", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.2", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^7.0.7", + "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0", - "sebastian/environment": "^4.0", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.2", + "sebastian/exporter": "^3.1.1", + "sebastian/global-state": "^3.0.0", "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.3", "sebastian/version": "^2.0.1" }, - "conflict": { - "phpunit/phpunit-mock-objects": "*" - }, "require-dev": { "ext-pdo": "*" }, "suggest": { "ext-soap": "*", "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" + "phpunit/php-invoker": "^2.0.0" }, "bin": [ "phpunit" @@ -3809,7 +3827,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "7.5-dev" + "dev-master": "8.5-dev" } }, "autoload": { @@ -3835,7 +3853,17 @@ "testing", "xunit" ], - "time": "2020-01-08T08:45:45+00:00" + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-22T07:06:58+00:00" }, { "name": "pimple/pimple", @@ -4226,23 +4254,26 @@ }, { "name": "sebastian/global-state", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-dom": "*", + "phpunit/phpunit": "^8.0" }, "suggest": { "ext-uopz": "*" @@ -4250,7 +4281,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4273,7 +4304,7 @@ "keywords": [ "global state" ], - "time": "2017-04-27T15:39:26+00:00" + "time": "2019-02-01T05:30:01+00:00" }, { "name": "sebastian/object-enumerator", @@ -4462,6 +4493,52 @@ "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "time": "2018-10-04T04:07:39+00:00" }, + { + "name": "sebastian/type", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "shasum": "" + }, + "require": { + "php": "^7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2019-07-02T08:10:15+00:00" + }, { "name": "sebastian/version", "version": "2.0.1", @@ -5464,23 +5541,23 @@ }, { "name": "theseer/tokenizer", - "version": "1.1.3", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + "reference": "75a63c33a8577608444246075ea0af0d052e452a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -5500,7 +5577,13 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2020-07-12T23:59:07+00:00" }, { "name": "vimeo/psalm", From 0d708b20467fb658123e1aaae9f4dffbaacd4b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 29 Aug 2020 10:56:49 +0200 Subject: [PATCH 056/305] Enhancement: Synchronize with ergebnis/php-library-template --- .gitattributes | 29 +-- .../determine-cache-directory/action.yaml | 16 ++ .../composer/composer/install/action.yaml | 22 ++ .../actions/composer/composer/install/run.sh | 25 +++ .github/dependabot.yml | 2 +- .github/settings.yml | 14 +- .github/workflows/integrate.yaml | 196 +++++++----------- .github/workflows/prune.yaml | 20 +- .github/workflows/release.yaml | 2 +- .github/workflows/renew.yaml | 36 ++-- .github/workflows/triage.yaml | 4 +- Makefile | 7 +- composer-require-checker.json | 19 ++ psalm-baseline.xml | 8 +- psalm.xml | 2 + 15 files changed, 224 insertions(+), 178 deletions(-) create mode 100644 .github/actions/composer/composer/determine-cache-directory/action.yaml create mode 100644 .github/actions/composer/composer/install/action.yaml create mode 100755 .github/actions/composer/composer/install/run.sh create mode 100644 composer-require-checker.json diff --git a/.gitattributes b/.gitattributes index 99692297..79ecf3ae 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,14 +1,15 @@ -/.github/ export-ignore -/test/ export-ignore -/tools/ export-ignore -/.editorconfig export-ignore -/.gitattributes export-ignore -/.gitignore export-ignore -/.php_cs export-ignore -/infection.json export-ignore -/Makefile export-ignore -/phive.xml export-ignore -/phpstan-baseline.neon export-ignore -/phpstan.neon export-ignore -/psalm-baseline.xml export-ignore -/psalm.xml export-ignore +/.github/ export-ignore +/test/ export-ignore +/tools/ export-ignore +/.editorconfig export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/.php_cs export-ignore +/composer-require-checker.json export-ignore +/infection.json export-ignore +/Makefile export-ignore +/phive.xml export-ignore +/phpstan-baseline.neon export-ignore +/phpstan.neon export-ignore +/psalm-baseline.xml export-ignore +/psalm.xml export-ignore diff --git a/.github/actions/composer/composer/determine-cache-directory/action.yaml b/.github/actions/composer/composer/determine-cache-directory/action.yaml new file mode 100644 index 00000000..a898fdaa --- /dev/null +++ b/.github/actions/composer/composer/determine-cache-directory/action.yaml @@ -0,0 +1,16 @@ +# https://docs.github.com/en/actions/creating-actions/creating-a-composite-run-steps-action +# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputs +# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-composite-run-steps-actions +# https://getcomposer.org/doc/03-cli.md#composer-cache-dir + +name: "Determine composer cache directory" + +description: "Determines the composer cache directory and exports it as COMPOSER_CACHE_DIR environment variable" + +runs: + using: "composite" + + steps: + - name: "Determine composer cache directory" + shell: "bash" + run: "echo \"::set-env name=COMPOSER_CACHE_DIR::$(composer config cache-dir)\"" diff --git a/.github/actions/composer/composer/install/action.yaml b/.github/actions/composer/composer/install/action.yaml new file mode 100644 index 00000000..bab262e5 --- /dev/null +++ b/.github/actions/composer/composer/install/action.yaml @@ -0,0 +1,22 @@ +# https://docs.github.com/en/actions/creating-actions/creating-a-composite-run-steps-action +# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputs +# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-composite-run-steps-actions + +name: "Install dependencies with composer" + +description: "Installs dependencies with composer" + +inputs: + dependencies: + description: "Which dependencies to install, one of \"lowest\", \"locked\", \"highest\"" + required: true + +runs: + using: "composite" + + steps: + - name: "Install ${{ inputs.dependencies }} dependencies with composer" + shell: "bash" + run: "${{ github.action_path }}/run.sh" + env: + COMPOSER_INSTALL_DEPENDENCIES: "${{ inputs.dependencies }}" diff --git a/.github/actions/composer/composer/install/run.sh b/.github/actions/composer/composer/install/run.sh new file mode 100755 index 00000000..dddf3039 --- /dev/null +++ b/.github/actions/composer/composer/install/run.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +dependencies="${COMPOSER_INSTALL_DEPENDENCIES}" + +if [[ ${dependencies} == "lowest" ]]; then + composer update --no-interaction --no-progress --no-suggest --prefer-lowest + + exit 0 +fi + +if [[ ${dependencies} == "locked" ]]; then + composer install --no-interaction --no-progress --no-suggest + + exit 0 +fi + +if [[ ${dependencies} == "highest" ]]; then + composer update --no-interaction --no-progress --no-suggest + + exit 0 +fi + +echo "::error::The value for the \"dependencies\" input needs to be one of \"lowest\", \"locked\"', \"highest\"' - got \"${dependencies}\" instead." + +exit 1 diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e19966ae..1eedeb94 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,4 +1,4 @@ -# https://help.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates +# https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 diff --git a/.github/settings.yml b/.github/settings.yml index 3d234574..c4cec541 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -3,8 +3,8 @@ branches: - name: "main" - # https://developer.github.com/v3/repos/branches/#remove-branch-protection - # https://developer.github.com/v3/repos/branches/#update-branch-protection + # https://docs.github.com/en/rest/reference/repos#delete-branch-protection + # https://docs.github.com/en/rest/reference/repos#update-branch-protection protection: enforce_admins: false @@ -31,7 +31,7 @@ branches: strict: false restrictions: - # https://developer.github.com/v3/repos/branches/#parameters-1 + # https://docs.github.com/en/rest/reference/repos#list-branches--parameters # Note: User, app, and team restrictions are only available for organization-owned repositories. # Set to null to disable when using this configuration for a repository on a personal account. @@ -41,8 +41,8 @@ branches: users: - "ergebnis-bot" -# https://developer.github.com/v3/issues/labels/#create-a-label -# https://developer.github.com/v3/issues/labels/#update-a-label +# https://docs.github.com/en/rest/reference/issues#create-a-label +# https://docs.github.com/en/rest/reference/issues#update-a-label labels: - name: "bug" @@ -73,7 +73,7 @@ labels: color: "eeeeee" description: "" -# https://developer.github.com/v3/repos/#edit +# https://docs.github.com/en/rest/reference/repos#update-a-repository repository: allow_merge_commit: true @@ -91,6 +91,6 @@ repository: name: "phpstan-rules" private: false - # https://developer.github.com/v3/repos/branches/#remove-branch-protection + # https://docs.github.com/en/rest/reference/repos#replace-all-repository-topics topics: "phpstan, phpstan-rules, phpstan-extreme-rules" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index fd08c9c0..f1bae03c 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -1,4 +1,4 @@ -# https://help.github.com/en/categories/automating-your-workflow-with-github-actions +# https://docs.github.com/en/actions name: "Integrate" @@ -9,6 +9,7 @@ on: # yamllint disable-line rule:truthy - "main" env: + ERGEBNIS_BOT_NAME: "ergebnis-bot" MIN_COVERED_MSI: 92 MIN_MSI: 83 PHP_EXTENSIONS: "mbstring" @@ -32,14 +33,14 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v1" + uses: "ibiqlik/action-yamllint@v1.0.0" with: config_file: ".yamllint.yaml" file_or_dir: "." strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@v2" + uses: "shivammathur/setup-php@2.4.3" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -49,27 +50,19 @@ jobs: run: "composer validate --strict" - name: "Determine composer cache directory" - id: "determine-composer-cache-directory" - run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" + uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: - path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" + path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies from composer.json" - if: "matrix.dependencies == 'lowest'" - run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - - name: "Install locked dependencies from composer.lock" - if: "matrix.dependencies == 'locked'" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Install highest dependencies from composer.json" - if: "matrix.dependencies == 'highest'" - run: "composer update --no-interaction --no-progress --no-suggest" + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "./.github/actions/composer/composer/install" + with: + dependencies: "${{ matrix.dependencies }}" - name: "Run ergebnis/composer-normalize" run: "composer normalize --dry-run" @@ -78,7 +71,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('composer.lock') }}" @@ -105,37 +98,29 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@v2" + uses: "shivammathur/setup-php@2.4.3" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - name: "Determine composer cache directory" - id: "determine-composer-cache-directory" - run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" + uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: - path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" + path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies from composer.json" - if: "matrix.dependencies == 'lowest'" - run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - - name: "Install locked dependencies from composer.lock" - if: "matrix.dependencies == 'locked'" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Install highest dependencies from composer.json" - if: "matrix.dependencies == 'highest'" - run: "composer update --no-interaction --no-progress --no-suggest" + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "./.github/actions/composer/composer/install" + with: + dependencies: "${{ matrix.dependencies }}" - name: "Run maglnet/composer-require-checker" - run: "tools/composer-require-checker check" + run: "tools/composer-require-checker check --config-file=$(pwd)/composer-require-checker.json" static-code-analysis: name: "Static Code Analysis" @@ -155,53 +140,45 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@v2" + uses: "shivammathur/setup-php@2.4.3" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - name: "Determine composer cache directory" - id: "determine-composer-cache-directory" - run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" + uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: - path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" + path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies from composer.json" - if: "matrix.dependencies == 'lowest'" - run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - - name: "Install locked dependencies from composer.lock" - if: "matrix.dependencies == 'locked'" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Install highest dependencies from composer.json" - if: "matrix.dependencies == 'highest'" - run: "composer update --no-interaction --no-progress --no-suggest" + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "./.github/actions/composer/composer/install" + with: + dependencies: "${{ matrix.dependencies }}" - name: "Create cache directory for phpstan/phpstan" run: "mkdir -p .build/phpstan" - name: "Cache cache directory for phpstan/phpstan" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: path: ".build/phpstan" key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" restore-keys: "php-${{ matrix.php-version }}-phpstan-" - name: "Run phpstan/phpstan" - run: "vendor/bin/phpstan analyse --configuration=phpstan.neon" + run: "vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1" - name: "Create cache directory for vimeo/psalm" run: "mkdir -p .build/psalm" - name: "Cache cache directory for vimeo/psalm" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: path: ".build/psalm" key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" @@ -232,34 +209,29 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@v2" + uses: "shivammathur/setup-php@2.4.3" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for phpunit/phpunit" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" + - name: "Determine composer cache directory" - id: "determine-composer-cache-directory" - run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" + uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: - path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" + path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies from composer.json" - if: "matrix.dependencies == 'lowest'" - run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - - name: "Install locked dependencies from composer.lock" - if: "matrix.dependencies == 'locked'" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Install highest dependencies from composer.json" - if: "matrix.dependencies == 'highest'" - run: "composer update --no-interaction --no-progress --no-suggest" + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "./.github/actions/composer/composer/install" + with: + dependencies: "${{ matrix.dependencies }}" - name: "Run auto-review tests with phpunit/phpunit" run: "vendor/bin/phpunit --configuration=test/AutoReview/phpunit.xml" @@ -288,40 +260,32 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@v2" + uses: "shivammathur/setup-php@2.4.3" with: - coverage: "xdebug" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" + coverage: "pcov" + extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for phpunit/phpunit" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" + - name: "Determine composer cache directory" - id: "determine-composer-cache-directory" - run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" + uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: - path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" + path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies from composer.json" - if: "matrix.dependencies == 'lowest'" - run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - - name: "Install locked dependencies from composer.lock" - if: "matrix.dependencies == 'locked'" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Install highest dependencies from composer.json" - if: "matrix.dependencies == 'highest'" - run: "composer update --no-interaction --no-progress --no-suggest" - - - name: "Dump Xdebug filter with phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --dump-xdebug-filter=.build/phpunit/xdebug-filter.php" + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "./.github/actions/composer/composer/install" + with: + dependencies: "${{ matrix.dependencies }}" - - name: "Collect code coverage with Xdebug and phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-clover=.build/logs/clover.xml --prepend=.build/phpunit/xdebug-filter.php" + - name: "Collect code coverage with pcov and phpunit/phpunit" + run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-clover=.build/logs/clover.xml" - name: "Send code coverage report to Codecov.io" env: @@ -346,36 +310,28 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@v2" + uses: "shivammathur/setup-php@2.4.3" with: - coverage: "xdebug" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" + coverage: "pcov" + extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - name: "Determine composer cache directory" - id: "determine-composer-cache-directory" - run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" + uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: - path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" + path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies from composer.json" - if: "matrix.dependencies == 'lowest'" - run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - - name: "Install locked dependencies from composer.lock" - if: "matrix.dependencies == 'locked'" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Install highest dependencies from composer.json" - if: "matrix.dependencies == 'highest'" - run: "composer update --no-interaction --no-progress --no-suggest" + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "./.github/actions/composer/composer/install" + with: + dependencies: "${{ matrix.dependencies }}" - - name: "Run mutation tests with Xdebug and infection/infection" + - name: "Run mutation tests with pcov and infection/infection" run: "vendor/bin/infection --ignore-msi-with-no-mutations --min-covered-msi=${{ env.MIN_COVERED_MSI }} --min-msi=${{ env.MIN_MSI }}" merge: @@ -405,7 +361,7 @@ jobs: ) steps: - - name: "Request review from @ergebnis-bot" + - name: "Request review from @${{ env.ERGEBNIS_BOT_NAME }}" uses: "actions/github-script@v3.0.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" @@ -414,7 +370,7 @@ jobs: const repository = context.repo const reviewers = [ - "ergebnis-bot", + "${{ env.ERGEBNIS_BOT_NAME }}", ] await github.pulls.requestReviewers({ @@ -424,7 +380,7 @@ jobs: reviewers: reviewers, }) - - name: "Assign @ergebnis-bot" + - name: "Assign @${{ env.ERGEBNIS_BOT_NAME }}" uses: "actions/github-script@v3.0.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" @@ -432,12 +388,12 @@ jobs: const pullRequest = context.payload.pull_request const repository = context.repo - const reviewers = [ - "ergebnis-bot", + const assignees = [ + "${{ env.ERGEBNIS_BOT_NAME }}", ] await github.issues.addAssignees({ - assignees: reviewers, + assignees: assignees, issue_number: pullRequest.number, owner: repository.owner, repo: repository.repo, @@ -445,7 +401,7 @@ jobs: - name: "Approve pull request" uses: "actions/github-script@v3.0.0" - if: "github.actor != 'ergebnis-bot'" + if: "github.actor != '${{ env.ERGEBNIS_BOT_NAME }}'" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 99a34217..180b7229 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -1,4 +1,4 @@ -# https://github.com/actions/stale +# https://docs.github.com/en/actions name: "Prune" @@ -6,6 +6,10 @@ on: # yamllint disable-line rule:truthy schedule: - cron: "0 12 * * *" +env: + DAYS_BEFORE_CLOSE: 14 + DAYS_BEFORE_STALE: 180 + jobs: prune: name: "Issues" @@ -14,18 +18,18 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3" + uses: "actions/stale@v3.0.10" with: - days-before-close: 5 - days-before-stale: 60 + days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" + days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" repo-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" stale-issue-label: "stale" stale-issue-message: | - Since this issue has not had any activity within the last sixty days, I have marked it as stale. + Since this issue has not had any activity within the last ${{ env.DAYS_BEFORE_STALE }} days, I have marked it as stale. - I will close it if no further activity occurs within the next five days. + I will close it if no further activity occurs within the next ${{ env.DAYS_BEFORE_CLOSE }} days. stale-pr-label: "stale" stale-pr-message: | - Since this pull request has not had any activity within the last sixty days, I have marked it as stale. + Since this pull request has not had any activity within the last ${{ env.DAYS_BEFORE_STALE }} days, I have marked it as stale. - I will close it if no further activity occurs within the next five days. + I will close it if no further activity occurs within the next ${{ env.DAYS_BEFORE_CLOSE }} days. diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3133c9c4..e5b72ee8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,4 +1,4 @@ -# https://help.github.com/en/categories/automating-your-workflow-with-github-actions +# https://docs.github.com/en/actions name: "Release" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 9db86c27..0fdb3842 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -1,4 +1,4 @@ -# https://help.github.com/en/categories/automating-your-workflow-with-github-actions +# https://docs.github.com/en/actions name: "Renew" @@ -7,6 +7,8 @@ on: # yamllint disable-line rule:truthy - cron: "1 0 1 1 *" env: + ERGEBNIS_BOT_EMAIL: "bot@ergebn.is" + ERGEBNIS_BOT_NAME: "ergebnis-bot" PHP_EXTENSIONS: "mbstring" jobs: @@ -28,7 +30,7 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@v2" + uses: "shivammathur/setup-php@2.4.3" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -38,36 +40,28 @@ jobs: run: "composer validate --strict" - name: "Determine composer cache directory" - id: "determine-composer-cache-directory" - run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" + uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: - path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" + path: "${{ env.COMPOSER_CACHE_DIR }}" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies from composer.json" - if: "matrix.dependencies == 'lowest'" - run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - - name: "Install locked dependencies from composer.lock" - if: "matrix.dependencies == 'locked'" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Install highest dependencies from composer.json" - if: "matrix.dependencies == 'highest'" - run: "composer update --no-interaction --no-progress --no-suggest" + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "./.github/actions/composer/composer/install" + with: + dependencies: "${{ matrix.dependencies }}" - name: "Create cache directory for friendsofphp/php-cs-fixer" run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2" + uses: "actions/cache@v2.1.1" with: path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('**/composer.lock') }}" + key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - name: "Run friendsofphp/php-cs-fixer" @@ -76,7 +70,7 @@ jobs: - name: "Open pull request updating license year" uses: "gr2m/create-or-update-pull-request-action@v1.2.10" with: - author: "ergebnis-bot " + author: "${{ env.ERGEBNIS_BOT_NAME }} <${{ env.ERGEBNIS_BOT_EMAIL }}>" branch: "feature/license-year" body: | This PR diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index 5091493b..f86c120a 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -1,7 +1,9 @@ +# https://docs.github.com/en/actions + name: "Triage" on: # yamllint disable-line rule:truthy - pull_request: + pull_request_target: types: - "opened" diff --git a/Makefile b/Makefile index 53931a72..e1f6b9e9 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,7 @@ it: coding-standards static-code-analysis tests ## Runs the coding-standards, st .PHONY: code-coverage code-coverage: vendor ## Collects coverage from running unit tests with phpunit/phpunit mkdir -p .build/phpunit - vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --dump-xdebug-filter=.build/phpunit/xdebug-filter.php - vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-text --prepend=.build/phpunit/xdebug-filter.php + vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-text .PHONY: coding-standards coding-standards: vendor ## Normalizes composer.json with ergebnis/composer-normalize, lints YAML files with yamllint and fixes code style issues with friendsofphp/php-cs-fixer @@ -20,7 +19,7 @@ coding-standards: vendor ## Normalizes composer.json with ergebnis/composer-norm .PHONY: dependency-analysis dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer-require-checker - tools/composer-require-checker check + tools/composer-require-checker check --config-file=$(shell pwd)/composer-require-checker.json .PHONY: help help: ## Displays this list of targets with descriptions @@ -34,7 +33,7 @@ mutation-tests: vendor ## Runs mutation tests with infection/infection .PHONY: static-code-analysis static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan - vendor/bin/phpstan analyse --configuration=phpstan.neon + vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1 mkdir -p .build/psalm vendor/bin/psalm --config=psalm.xml --diff --diff-methods --show-info=false --stats --threads=4 diff --git a/composer-require-checker.json b/composer-require-checker.json new file mode 100644 index 00000000..67d0aa16 --- /dev/null +++ b/composer-require-checker.json @@ -0,0 +1,19 @@ +{ + "symbol-whitelist": [ + "array", + "bool", + "callable", + "false", + "float", + "int", + "iterable", + "null", + "object", + "parent", + "self", + "static", + "string", + "true", + "void" + ] +} diff --git a/psalm-baseline.xml b/psalm-baseline.xml index d9704a49..41479c44 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + $docComment->getReformattedText() @@ -9,6 +9,9 @@ $annotation + + true === $allowAbstractClasses + @@ -20,6 +23,9 @@ isset($node->namespacedName) + + string + diff --git a/psalm.xml b/psalm.xml index 33b5c2a6..a4c89a87 100644 --- a/psalm.xml +++ b/psalm.xml @@ -6,7 +6,9 @@ cacheDirectory=".build/psalm" errorBaseline="psalm-baseline.xml" errorLevel="1" + findUnusedVariablesAndParams="true" resolveFromConfigFile="true" + strictBinaryOperands="true" > From 8d910df0d7ea77aecd8de3e3975f7ef9c795a172 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Aug 2020 11:06:09 +0000 Subject: [PATCH 057/305] composer(deps-dev): bump ergebnis/test-util from 1.0.0 to 1.1.0 Bumps [ergebnis/test-util](https://github.com/ergebnis/test-util) from 1.0.0 to 1.1.0. - [Release notes](https://github.com/ergebnis/test-util/releases) - [Changelog](https://github.com/ergebnis/test-util/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/test-util/compare/1.0.0...1.1.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 110 +++++++++++++++++++++++++++----------------------- 2 files changed, 61 insertions(+), 51 deletions(-) diff --git a/composer.json b/composer.json index 4231f273..92b549ab 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "ergebnis/composer-normalize": "^2.7.1", "ergebnis/license": "^1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/test-util": "^1.0.0", + "ergebnis/test-util": "^1.1.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", diff --git a/composer.lock b/composer.lock index f2889903..f7b8400a 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": "b990a24daae1139f2eac3cd7dad64333", + "content-hash": "60518d36fac31fb3a44f7cd2d4742bab", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1890,40 +1890,44 @@ }, { "name": "ergebnis/classy", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/ergebnis/classy.git", - "reference": "a763926a0a1e908cc30317494ea8bba6440e41e7" + "reference": "1479cf8af6a75b11586ab2b2a87482d090c99dfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/classy/zipball/a763926a0a1e908cc30317494ea8bba6440e41e7", - "reference": "a763926a0a1e908cc30317494ea8bba6440e41e7", + "url": "https://api.github.com/repos/ergebnis/classy/zipball/1479cf8af6a75b11586ab2b2a87482d090c99dfb", + "reference": "1479cf8af6a75b11586ab2b2a87482d090c99dfb", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.1" + "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.2.2", - "ergebnis/license": "~0.1.0", - "ergebnis/php-cs-fixer-config": "^2.0.0", - "ergebnis/phpstan-rules": "~0.14.2", - "ergebnis/test-util": "~0.7.0", - "infection/infection": "~0.13.6", - "phpbench/phpbench": "~0.16.10", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.7", - "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-strict-rules": "~0.12.2", - "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.8.1", - "vimeo/psalm": "^3.8.3", + "ergebnis/composer-normalize": "^2.7.1", + "ergebnis/license": "^1.0.0", + "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/test-util": "^1.0.0", + "infection/infection": "~0.15.3", + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-strict-rules": "~0.12.4", + "phpunit/phpunit": "^8.5.8", + "psalm/plugin-phpunit": "~0.11.0", + "vimeo/psalm": "^3.14.2", "zendframework/zend-file": "^2.8.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0-dev" + } + }, "autoload": { "psr-4": { "Ergebnis\\Classy\\": "src/" @@ -1939,9 +1943,23 @@ "email": "am@localheinz.com" } ], - "description": "Provides a way to collect classy constructs from source or a directory.", + "description": "Provides a finder for classy constructs (classes, interfaces, and traits).", "homepage": "https://github.com/ergebnis/classy", - "time": "2020-01-21T08:19:00+00:00" + "keywords": [ + "classes", + "classy", + "constructs", + "finder", + "interfaces", + "traits" + ], + "funding": [ + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], + "time": "2020-08-30T10:41:50+00:00" }, { "name": "ergebnis/composer-normalize", @@ -2333,37 +2351,37 @@ }, { "name": "ergebnis/test-util", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/ergebnis/test-util.git", - "reference": "44bdb78d14fbaf6411002c16022fd1bb7327ad37" + "reference": "bbb15e417b44044a93ac083fa1d73ae5551c7505" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/test-util/zipball/44bdb78d14fbaf6411002c16022fd1bb7327ad37", - "reference": "44bdb78d14fbaf6411002c16022fd1bb7327ad37", + "url": "https://api.github.com/repos/ergebnis/test-util/zipball/bbb15e417b44044a93ac083fa1d73ae5551c7505", + "reference": "bbb15e417b44044a93ac083fa1d73ae5551c7505", "shasum": "" }, "require": { - "ergebnis/classy": "^1.0.0", + "ergebnis/classy": "^1.1.0", "fzaninotto/faker": "^1.9.0", - "php": "^7.1" + "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.2.4", - "ergebnis/license": "~0.1.0", - "ergebnis/php-cs-fixer-config": "^2.1.0", - "ergebnis/phpstan-rules": "~0.14.3", - "infection/infection": "~0.13.6", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.14", - "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.6", - "phpstan/phpstan-strict-rules": "~0.12.2", - "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.9.0", - "vimeo/psalm": "^3.9.5" + "ergebnis/composer-normalize": "^2.7.1", + "ergebnis/license": "^1.0.0", + "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/phpstan-rules": "~0.15.2", + "infection/infection": "~0.15.3", + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-strict-rules": "~0.12.4", + "phpunit/phpunit": "^8.5.8", + "psalm/plugin-phpunit": "~0.11.0", + "vimeo/psalm": "^3.14.2" }, "type": "library", "autoload": { @@ -2390,20 +2408,12 @@ "test" ], "funding": [ - { - "url": "http://paypal.me/localheinz", - "type": "custom" - }, - { - "url": "https://www.buymeacoffee.com/localheinz", - "type": "custom" - }, { "url": "https://github.com/localheinz", "type": "github" } ], - "time": "2020-03-11T11:08:49+00:00" + "time": "2020-08-30T10:56:49+00:00" }, { "name": "felixfbecker/advanced-json-rpc", From 29bbc0b803c1d95e87fbf2a36459cba65da43ce7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 05:21:10 +0000 Subject: [PATCH 058/305] composer(deps-dev): bump ergebnis/composer-normalize from 2.7.1 to 2.8.1 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.7.1 to 2.8.1. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.7.1...2.8.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 132 +++++++++++++++++++------------------------------- 2 files changed, 51 insertions(+), 83 deletions(-) diff --git a/composer.json b/composer.json index 92b549ab..02f960d8 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.7.1", + "ergebnis/composer-normalize": "^2.8.1", "ergebnis/license": "^1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", "ergebnis/test-util": "^1.1.0", diff --git a/composer.lock b/composer.lock index f7b8400a..cfe66d33 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": "60518d36fac31fb3a44f7cd2d4742bab", + "content-hash": "024e91ac1755f8738d83a3757eff37d2", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1963,39 +1963,39 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.7.1", + "version": "2.8.1", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "d697f180813561f2ea138e85f7b0b2c558ebc00e" + "reference": "e545b95c4c9b6b4d4aebb12fa2e4e96bdc7d8e39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d697f180813561f2ea138e85f7b0b2c558ebc00e", - "reference": "d697f180813561f2ea138e85f7b0b2c558ebc00e", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/e545b95c4c9b6b4d4aebb12fa2e4e96bdc7d8e39", + "reference": "e545b95c4c9b6b4d4aebb12fa2e4e96bdc7d8e39", "shasum": "" }, "require": { "composer-plugin-api": "^1.1.0 || ^2.0.0", - "ergebnis/json-normalizer": "~0.13.0", - "ergebnis/json-printer": "^3.1.0", + "ergebnis/json-normalizer": "~0.13.1", + "ergebnis/json-printer": "^3.1.1", "justinrainbow/json-schema": "^5.2.10", "localheinz/diff": "^1.1.1", - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { "composer/composer": "^1.10.8 || ^2.0.0", - "composer/package-versions-deprecated": "^1.10.99", - "ergebnis/phpstan-rules": "~0.15.1", - "ergebnis/test-util": "^1.0.0", + "composer/package-versions-deprecated": "^1.11.99", + "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/test-util": "^1.1.0", "jangregor/phpstan-prophecy": "~0.8.0", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.37", + "phpstan/extension-installer": "^1.0.5", + "phpstan/phpstan": "~0.12.40", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", "phpstan/phpstan-strict-rules": "~0.12.4", - "phpunit/phpunit": "^7.5.20", - "symfony/filesystem": "^4.4.11" + "phpunit/phpunit": "^8.5.8", + "symfony/filesystem": "^5.1.3" }, "type": "composer-plugin", "extra": { @@ -2030,43 +2030,43 @@ "type": "github" } ], - "time": "2020-08-17T08:57:07+00:00" + "time": "2020-08-30T16:32:02+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "0.13.0", + "version": "0.13.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "a532e078c3d77d01f79925bb7507a9b52bf6f9e8" + "reference": "82897f7a0b6a896462a08ac02bee33ccf4ece0bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/a532e078c3d77d01f79925bb7507a9b52bf6f9e8", - "reference": "a532e078c3d77d01f79925bb7507a9b52bf6f9e8", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/82897f7a0b6a896462a08ac02bee33ccf4ece0bb", + "reference": "82897f7a0b6a896462a08ac02bee33ccf4ece0bb", "shasum": "" }, "require": { "ergebnis/json-printer": "^3.1.0", "ext-json": "*", "justinrainbow/json-schema": "^5.2.10", - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/license": "~1.0.0", + "ergebnis/license": "^1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/phpstan-rules": "~0.15.0", - "ergebnis/test-util": "~1.0.0", - "infection/infection": "~0.13.6", + "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/test-util": "^1.1.0", + "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.32", - "phpstan/phpstan-deprecation-rules": "~0.12.4", - "phpstan/phpstan-phpunit": "~0.12.8", - "phpstan/phpstan-strict-rules": "~0.12.2", - "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.1", - "vimeo/psalm": "^3.12.2" + "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-strict-rules": "~0.12.4", + "phpunit/phpunit": "^8.5.8", + "psalm/plugin-phpunit": "~0.11.0", + "vimeo/psalm": "^3.14.2" }, "type": "library", "autoload": { @@ -2091,62 +2091,46 @@ "normalizer" ], "funding": [ - { - "url": "https://cottonbureau.com/people/andreas-moller", - "type": "custom" - }, - { - "url": "https://paypal.me/localheinz", - "type": "custom" - }, - { - "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", - "type": "custom" - }, - { - "url": "https://www.buymeacoffee.com/localheinz", - "type": "custom" - }, { "url": "https://github.com/localheinz", "type": "github" } ], - "time": "2020-07-04T21:41:41+00:00" + "time": "2020-08-30T12:00:06+00:00" }, { "name": "ergebnis/json-printer", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-printer.git", - "reference": "776a5c85ce3c67d97c6af08a67c917adbdb4758e" + "reference": "e4190dadd9937a77d8afcaf2b6c42a528ab367d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/776a5c85ce3c67d97c6af08a67c917adbdb4758e", - "reference": "776a5c85ce3c67d97c6af08a67c917adbdb4758e", + "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/e4190dadd9937a77d8afcaf2b6c42a528ab367d6", + "reference": "e4190dadd9937a77d8afcaf2b6c42a528ab367d6", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/license": "~1.0.0", + "ergebnis/license": "^1.0.0", "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/phpstan-rules": "~0.15.0", - "ergebnis/test-util": "~1.0.0", - "infection/infection": "~0.13.6", + "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/test-util": "^1.1.0", + "infection/infection": "~0.15.3", "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.32", - "phpstan/phpstan-deprecation-rules": "~0.12.4", - "phpstan/phpstan-phpunit": "~0.12.11", - "phpstan/phpstan-strict-rules": "~0.12.2", - "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.1", - "vimeo/psalm": "^3.12.2" + "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-strict-rules": "~0.12.4", + "phpunit/phpunit": "^8.5.8", + "psalm/plugin-phpunit": "~0.11.0", + "vimeo/psalm": "^3.14.2" }, "type": "library", "autoload": { @@ -2172,28 +2156,12 @@ "printer" ], "funding": [ - { - "url": "https://cottonbureau.com/people/andreas-moller", - "type": "custom" - }, - { - "url": "https://paypal.me/localheinz", - "type": "custom" - }, - { - "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", - "type": "custom" - }, - { - "url": "https://www.buymeacoffee.com/localheinz", - "type": "custom" - }, { "url": "https://github.com/localheinz", "type": "github" } ], - "time": "2020-07-04T17:09:39+00:00" + "time": "2020-08-30T12:17:03+00:00" }, { "name": "ergebnis/license", From 21c03a7761980ce8c6c096fff4c24d2dfc29ad4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 07:10:18 +0000 Subject: [PATCH 059/305] composer(deps-dev): bump ergebnis/license from 1.0.0 to 1.1.0 Bumps [ergebnis/license](https://github.com/ergebnis/license) from 1.0.0 to 1.1.0. - [Release notes](https://github.com/ergebnis/license/releases) - [Changelog](https://github.com/ergebnis/license/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/license/compare/1.0.0...1.1.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 54 ++++++++++++++++++++------------------------------- 2 files changed, 22 insertions(+), 34 deletions(-) diff --git a/composer.json b/composer.json index 02f960d8..3232beab 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ }, "require-dev": { "ergebnis/composer-normalize": "^2.8.1", - "ergebnis/license": "^1.0.0", + "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.2.1", "ergebnis/test-util": "^1.1.0", "infection/infection": "~0.15.3", diff --git a/composer.lock b/composer.lock index cfe66d33..f0478a3b 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": "024e91ac1755f8738d83a3757eff37d2", + "content-hash": "e6c896977dbbe611b7468841705ced36", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2165,38 +2165,38 @@ }, { "name": "ergebnis/license", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/ergebnis/license.git", - "reference": "d36cbe3a4ca62c9df902e4133f0a84307a75034a" + "reference": "7b3022e34d650cffa907c123946ec2332a0c8780" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/license/zipball/d36cbe3a4ca62c9df902e4133f0a84307a75034a", - "reference": "d36cbe3a4ca62c9df902e4133f0a84307a75034a", + "url": "https://api.github.com/repos/ergebnis/license/zipball/7b3022e34d650cffa907c123946ec2332a0c8780", + "reference": "7b3022e34d650cffa907c123946ec2332a0c8780", "shasum": "" }, "require": { "ext-filter": "*", - "php": "^7.1" + "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.5.1", - "ergebnis/php-cs-fixer-config": "~2.1.2", - "ergebnis/phpstan-rules": "~0.14.4", - "ergebnis/test-util": "~1.0.0", - "infection/infection": "~0.13.6", - "jangregor/phpstan-prophecy": "~0.6.2", + "ergebnis/composer-normalize": "^2.7.1", + "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/test-util": "^1.1.0", + "infection/infection": "~0.15.3", + "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.22", - "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.8", - "phpstan/phpstan-strict-rules": "~0.12.2", - "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.0", - "symfony/filesystem": "^4.4.8", - "vimeo/psalm": "^3.11.2" + "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-strict-rules": "~0.12.4", + "phpunit/phpunit": "^8.5.8", + "psalm/plugin-phpunit": "~0.11.0", + "symfony/filesystem": "^4.4.11", + "vimeo/psalm": "^3.14.2" }, "type": "library", "autoload": { @@ -2220,24 +2220,12 @@ "license" ], "funding": [ - { - "url": "https://paypal.me/localheinz", - "type": "custom" - }, - { - "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", - "type": "custom" - }, - { - "url": "https://www.buymeacoffee.com/localheinz", - "type": "custom" - }, { "url": "https://github.com/localheinz", "type": "github" } ], - "time": "2020-05-04T17:36:52+00:00" + "time": "2020-08-30T11:41:26+00:00" }, { "name": "ergebnis/php-cs-fixer-config", From b4417a3f779711777ddebdc5f343947633422d37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 07:26:33 +0000 Subject: [PATCH 060/305] composer(deps-dev): bump psalm/plugin-phpunit from 0.11.0 to 0.12.1 Bumps [psalm/plugin-phpunit](https://github.com/psalm/psalm-plugin-phpunit) from 0.11.0 to 0.12.1. - [Release notes](https://github.com/psalm/psalm-plugin-phpunit/releases) - [Commits](https://github.com/psalm/psalm-plugin-phpunit/compare/0.11.0...0.12.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 3232beab..c87d9928 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", + "psalm/plugin-phpunit": "~0.12.1", "psr/container": "^1.0.0", "vimeo/psalm": "^3.14.2", "zendframework/zend-servicemanager": "^2.0.0" diff --git a/composer.lock b/composer.lock index f0478a3b..b3f5dea6 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": "e6c896977dbbe611b7468841705ced36", + "content-hash": "c3d3e7ec7316370339cde66f1c2d3cad", "packages": [ { "name": "composer/package-versions-deprecated", @@ -3883,16 +3883,16 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.11.0", + "version": "0.12.1", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "d3f5c00e8ceac01ad85ae2a85865763e43f0d56d" + "reference": "fca9b223929cdfac2b6c0b72f52b9c9d63871ef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/d3f5c00e8ceac01ad85ae2a85865763e43f0d56d", - "reference": "d3f5c00e8ceac01ad85ae2a85865763e43f0d56d", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/fca9b223929cdfac2b6c0b72f52b9c9d63871ef1", + "reference": "fca9b223929cdfac2b6c0b72f52b9c9d63871ef1", "shasum": "" }, "require": { @@ -3901,7 +3901,7 @@ "ext-simplexml": "*", "php": "^7.1.3", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.6.2 || dev-master" + "vimeo/psalm": "^3.6.2 || dev-master || dev-4.x" }, "require-dev": { "codeception/codeception": "^4.0.3", @@ -3931,7 +3931,7 @@ } ], "description": "Psalm plugin for PHPUnit", - "time": "2020-08-24T21:08:29+00:00" + "time": "2020-08-30T16:26:06+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", From b3b269f3034aeb2f66fc74bd789c37a977594b93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 07:35:01 +0000 Subject: [PATCH 061/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.2.1 to 2.2.2. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.2.1...2.2.2) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 239 ++++++++++++++++++++++++++++---------------------- 2 files changed, 133 insertions(+), 108 deletions(-) diff --git a/composer.json b/composer.json index c87d9928..4959e62b 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.8.1", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/php-cs-fixer-config": "^2.2.2", "ergebnis/test-util": "^1.1.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index b3f5dea6..8e2866a3 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": "c3d3e7ec7316370339cde66f1c2d3cad", + "content-hash": "21c5084d444cb1b72bc0c951e77dee42", "packages": [ { "name": "composer/package-versions-deprecated", @@ -983,16 +983,16 @@ }, { "name": "symfony/console", - "version": "v4.4.11", + "version": "v4.4.12", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02" + "reference": "1f601a29fd7591a0316bffbc0d7550a5953c6c1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/55d07021da933dd0d633ffdab6f45d5b230c7e02", - "reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02", + "url": "https://api.github.com/repos/symfony/console/zipball/1f601a29fd7591a0316bffbc0d7550a5953c6c1c", + "reference": "1f601a29fd7591a0316bffbc0d7550a5953c6c1c", "shasum": "" }, "require": { @@ -1070,20 +1070,20 @@ "type": "tidelift" } ], - "time": "2020-07-06T13:18:39+00:00" + "time": "2020-08-17T07:39:58+00:00" }, { "name": "symfony/finder", - "version": "v4.4.11", + "version": "v4.4.12", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2727aa35fddfada1dd37599948528e9b152eb742" + "reference": "2a78590b2c7e3de5c429628457c47541c58db9c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2727aa35fddfada1dd37599948528e9b152eb742", - "reference": "2727aa35fddfada1dd37599948528e9b152eb742", + "url": "https://api.github.com/repos/symfony/finder/zipball/2a78590b2c7e3de5c429628457c47541c58db9c7", + "reference": "2a78590b2c7e3de5c429628457c47541c58db9c7", "shasum": "" }, "require": { @@ -1133,7 +1133,7 @@ "type": "tidelift" } ], - "time": "2020-07-05T09:39:30+00:00" + "time": "2020-08-17T09:56:45+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -1691,16 +1691,16 @@ }, { "name": "doctrine/annotations", - "version": "1.10.3", + "version": "1.10.4", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d" + "reference": "bfe91e31984e2ba76df1c1339681770401ec262f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/5db60a4969eba0e0c197a19c077780aadbc43c5d", - "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/bfe91e31984e2ba76df1c1339681770401ec262f", + "reference": "bfe91e31984e2ba76df1c1339681770401ec262f", "shasum": "" }, "require": { @@ -1710,7 +1710,8 @@ }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^7.5" + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^9.1.5" }, "type": "library", "extra": { @@ -1756,7 +1757,7 @@ "docblock", "parser" ], - "time": "2020-05-25T17:24:27+00:00" + "time": "2020-08-10T19:35:50+00:00" }, { "name": "doctrine/instantiator", @@ -1830,28 +1831,30 @@ }, { "name": "doctrine/lexer", - "version": "1.0.2", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.5" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1864,14 +1867,14 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" @@ -1886,7 +1889,21 @@ "parser", "php" ], - "time": "2019-06-08T11:03:04+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%2Flexer", + "type": "tidelift" + } + ], + "time": "2020-05-25T17:44:05+00:00" }, { "name": "ergebnis/classy", @@ -2229,39 +2246,39 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.2.1", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "4d98cb5cc9752335bec722d8c42083ca23cb4910" + "reference": "41f0fb497287797d54bd1f08c9287e33b743b4b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/4d98cb5cc9752335bec722d8c42083ca23cb4910", - "reference": "4d98cb5cc9752335bec722d8c42083ca23cb4910", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/41f0fb497287797d54bd1f08c9287e33b743b4b9", + "reference": "41f0fb497287797d54bd1f08c9287e33b743b4b9", "shasum": "" }, "require": { "ext-filter": "*", "friendsofphp/php-cs-fixer": "~2.16.4", - "php": "^7.1" + "php": "^7.2" }, "require-dev": { - "ergebnis/composer-normalize": "^2.5.1", - "ergebnis/license": "~1.0.0", - "ergebnis/phpstan-rules": "~0.15.0", - "ergebnis/test-util": "~1.0.0", - "infection/infection": "~0.13.6", + "ergebnis/composer-normalize": "^2.7.1", + "ergebnis/license": "^1.1.0", + "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/test-util": "^1.1.0", + "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.0", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.31", - "phpstan/phpstan-deprecation-rules": "~0.12.4", - "phpstan/phpstan-phpunit": "~0.12.11", - "phpstan/phpstan-strict-rules": "~0.12.2", - "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.10.1", + "phpstan/extension-installer": "^1.0.5", + "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-strict-rules": "~0.12.4", + "phpunit/phpunit": "^8.5.8", + "psalm/plugin-phpunit": "~0.11.0", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.12.1" + "vimeo/psalm": "^3.14.2" }, "type": "library", "autoload": { @@ -2282,28 +2299,12 @@ "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", "homepage": "https://github.com/ergebnis/php-cs-fixer-config", "funding": [ - { - "url": "https://cottonbureau.com/people/andreas-moller", - "type": "custom" - }, - { - "url": "https://paypal.me/localheinz", - "type": "custom" - }, - { - "url": "https://www.amazon.de/hz/wishlist/ls/2NCHMSJ4BC1OW", - "type": "custom" - }, - { - "url": "https://www.buymeacoffee.com/localheinz", - "type": "custom" - }, { "url": "https://github.com/localheinz", "type": "github" } ], - "time": "2020-06-28T21:17:45+00:00" + "time": "2020-08-30T13:02:21+00:00" }, { "name": "ergebnis/test-util", @@ -4673,16 +4674,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.10", + "version": "v4.4.12", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866" + "reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5370aaa7807c7a439b21386661ffccf3dff2866", - "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3e8ea5ccddd00556b86d69d42f99f1061a704030", + "reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030", "shasum": "" }, "require": { @@ -4753,24 +4754,24 @@ "type": "tidelift" } ], - "time": "2020-05-20T08:37:50+00:00" + "time": "2020-08-13T14:18:44+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.7", + "version": "v1.1.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" + "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", - "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.1.3" }, "suggest": { "psr/event-dispatcher": "", @@ -4780,6 +4781,10 @@ "extra": { "branch-alias": { "dev-master": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -4811,20 +4816,34 @@ "interoperability", "standards" ], - "time": "2019-09-17T09:54:03+00:00" + "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": "2020-07-06T13:19:58+00:00" }, { "name": "symfony/filesystem", - "version": "v5.1.3", + "version": "v5.1.4", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "6e4320f06d5f2cce0d96530162491f4465179157" + "reference": "f7b9ed6142a34252d219801d9767dedbd711da1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/6e4320f06d5f2cce0d96530162491f4465179157", - "reference": "6e4320f06d5f2cce0d96530162491f4465179157", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/f7b9ed6142a34252d219801d9767dedbd711da1a", + "reference": "f7b9ed6142a34252d219801d9767dedbd711da1a", "shasum": "" }, "require": { @@ -4875,29 +4894,31 @@ "type": "tidelift" } ], - "time": "2020-05-30T20:35:19+00:00" + "time": "2020-08-21T17:19:47+00:00" }, { "name": "symfony/options-resolver", - "version": "v4.4.10", + "version": "v5.1.4", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05" + "reference": "9ff59517938f88d90b6e65311fef08faa640f681" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05", - "reference": "73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9ff59517938f88d90b6e65311fef08faa640f681", + "reference": "9ff59517938f88d90b6e65311fef08faa640f681", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -4943,7 +4964,7 @@ "type": "tidelift" } ], - "time": "2020-05-23T12:09:32+00:00" + "time": "2020-07-12T12:58:00+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5023,16 +5044,16 @@ }, { "name": "symfony/polyfill-php70", - "version": "v1.17.1", + "version": "v1.18.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "471b096aede7025bace8eb356b9ac801aaba7e2d" + "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/471b096aede7025bace8eb356b9ac801aaba7e2d", - "reference": "471b096aede7025bace8eb356b9ac801aaba7e2d", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0dd93f2c578bdc9c72697eaa5f1dd25644e618d3", + "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3", "shasum": "" }, "require": { @@ -5042,7 +5063,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "1.18-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5096,20 +5117,20 @@ "type": "tidelift" } ], - "time": "2020-06-06T08:46:27+00:00" + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.17.0", + "version": "v1.18.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "f048e612a3905f34931127360bdd2def19a5e582" + "reference": "639447d008615574653fb3bc60d1986d7172eaae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", - "reference": "f048e612a3905f34931127360bdd2def19a5e582", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae", + "reference": "639447d008615574653fb3bc60d1986d7172eaae", "shasum": "" }, "require": { @@ -5118,7 +5139,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "1.18-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5165,11 +5190,11 @@ "type": "tidelift" } ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2020-07-14T12:35:20+00:00" }, { "name": "symfony/process", - "version": "v5.1.3", + "version": "v5.1.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", @@ -5233,26 +5258,26 @@ }, { "name": "symfony/stopwatch", - "version": "v4.4.10", + "version": "v5.1.4", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "f51fb90df1154a7f75987198a9689e28f91e6a50" + "reference": "0f7c58cf81dbb5dd67d423a89d577524a2ec0323" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f51fb90df1154a7f75987198a9689e28f91e6a50", - "reference": "f51fb90df1154a7f75987198a9689e28f91e6a50", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0f7c58cf81dbb5dd67d423a89d577524a2ec0323", + "reference": "0f7c58cf81dbb5dd67d423a89d577524a2ec0323", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/service-contracts": "^1.0|^2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -5293,7 +5318,7 @@ "type": "tidelift" } ], - "time": "2020-05-20T08:37:50+00:00" + "time": "2020-05-20T17:43:50+00:00" }, { "name": "symfony/yaml", From 28b13042836d6c5996ab504b57eda7382388a034 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 05:22:28 +0000 Subject: [PATCH 062/305] composer(deps-dev): bump vimeo/psalm from 3.14.2 to 3.15 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.14.2 to 3.15. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.14.2...3.15) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 44 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index 4959e62b..97e160a8 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^8.5.8", "psalm/plugin-phpunit": "~0.12.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.14.2", + "vimeo/psalm": "^3.15", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 8e2866a3..175d5c1f 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": "21c5084d444cb1b72bc0c951e77dee42", + "content-hash": "d722153d819f8cca7476b3e1c02c730f", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1689,6 +1689,39 @@ "abandoned": "psr/container", "time": "2017-02-14T19:40:03+00:00" }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "time": "2019-12-04T15:06:13+00:00" + }, { "name": "doctrine/annotations", "version": "1.10.4", @@ -5578,16 +5611,16 @@ }, { "name": "vimeo/psalm", - "version": "3.14.2", + "version": "3.15", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "3538fe1955d47f6ee926c0769d71af6db08aa488" + "reference": "de6e7f324f44dde540ebe7ebd4eb481b97c86f30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/3538fe1955d47f6ee926c0769d71af6db08aa488", - "reference": "3538fe1955d47f6ee926c0769d71af6db08aa488", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/de6e7f324f44dde540ebe7ebd4eb481b97c86f30", + "reference": "de6e7f324f44dde540ebe7ebd4eb481b97c86f30", "shasum": "" }, "require": { @@ -5596,6 +5629,7 @@ "composer/package-versions-deprecated": "^1.8.0", "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^1.1", + "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", @@ -5624,10 +5658,11 @@ "phpmyadmin/sql-parser": "5.1.0", "phpspec/prophecy": ">=1.9.0", "phpunit/phpunit": "^7.5.16 || ^8.5 || ^9.0", - "psalm/plugin-phpunit": "^0.10", + "psalm/plugin-phpunit": "^0.11", "slevomat/coding-standard": "^5.0", "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3" + "symfony/process": "^4.3", + "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "suggest": { "ext-igbinary": "^2.0.5" @@ -5671,7 +5706,7 @@ "inspection", "php" ], - "time": "2020-08-22T14:01:26+00:00" + "time": "2020-09-01T22:09:30+00:00" }, { "name": "webmozart/assert", From e7c8f4e004542fabb5ae5a1a9b7ef0ec1b352539 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2020 05:07:34 +0000 Subject: [PATCH 063/305] github-actions(deps): bump shivammathur/setup-php from 2.4.3 to 2.5.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.4.3 to 2.5.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.4.3...1c76a2a403a2b2a322b4a13e3e0613c154eeb158) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index f1bae03c..789392b7 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -40,7 +40,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.4.3" + uses: "shivammathur/setup-php@2.5.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -98,7 +98,7 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.4.3" + uses: "shivammathur/setup-php@2.5.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -140,7 +140,7 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.4.3" + uses: "shivammathur/setup-php@2.5.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -209,7 +209,7 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.4.3" + uses: "shivammathur/setup-php@2.5.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -260,7 +260,7 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.4.3" + uses: "shivammathur/setup-php@2.5.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -310,7 +310,7 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.4.3" + uses: "shivammathur/setup-php@2.5.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 0fdb3842..abd23f3f 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: uses: "actions/checkout@v2.3.2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.4.3" + uses: "shivammathur/setup-php@2.5.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 194857ac7785ac4e6eb202db9f01d9cec034f826 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Sep 2020 05:23:22 +0000 Subject: [PATCH 064/305] github-actions(deps): bump actions/stale from v3.0.10 to v3.0.11 Bumps [actions/stale](https://github.com/actions/stale) from v3.0.10 to v3.0.11. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.10...1849651e2aa1b1d6d2cba4c90c719f4b6c929a28) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 180b7229..cc8fc14c 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.10" + uses: "actions/stale@v3.0.11" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From f22202224d715c1788e3f0c143b3666f73f93fe4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2020 05:25:43 +0000 Subject: [PATCH 065/305] github-actions(deps): bump actions/create-release from v1.1.3 to v1.1.4 Bumps [actions/create-release](https://github.com/actions/create-release) from v1.1.3 to v1.1.4. - [Release notes](https://github.com/actions/create-release/releases) - [Commits](https://github.com/actions/create-release/compare/v1.1.3...0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e) Signed-off-by: dependabot[bot] --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e5b72ee8..11ff85ac 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -19,7 +19,7 @@ jobs: run: "echo \"::set-output name=tag::${GITHUB_REF#refs/tags/}\"" - name: "Create release" - uses: "actions/create-release@v1.1.3" + uses: "actions/create-release@v1.1.4" env: GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" with: From 629cb4de3481c8b5e337a9f4a5a02b1241553b35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2020 05:42:57 +0000 Subject: [PATCH 066/305] github-actions(deps): bump gr2m/create-or-update-pull-request-action Bumps [gr2m/create-or-update-pull-request-action](https://github.com/gr2m/create-or-update-pull-request-action) from v1.2.10 to v1.3.0. - [Release notes](https://github.com/gr2m/create-or-update-pull-request-action/releases) - [Commits](https://github.com/gr2m/create-or-update-pull-request-action/compare/v1.2.10...5ee83752fd1b9430c6459dfd5993d347f6e2a5e5) Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index abd23f3f..31f06471 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" - name: "Open pull request updating license year" - uses: "gr2m/create-or-update-pull-request-action@v1.2.10" + uses: "gr2m/create-or-update-pull-request-action@v1.3.0" with: author: "${{ env.ERGEBNIS_BOT_NAME }} <${{ env.ERGEBNIS_BOT_EMAIL }}>" branch: "feature/license-year" From 13466d692ed00a20e1fdb874055202789aa5ac05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2020 06:25:10 +0000 Subject: [PATCH 067/305] composer(deps-dev): bump ergebnis/composer-normalize from 2.8.1 to 2.8.2 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.8.1 to 2.8.2. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.8.1...2.8.2) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 97e160a8..7581aa71 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.8.1", + "ergebnis/composer-normalize": "^2.8.2", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.2.2", "ergebnis/test-util": "^1.1.0", diff --git a/composer.lock b/composer.lock index 175d5c1f..bdfccd0b 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": "d722153d819f8cca7476b3e1c02c730f", + "content-hash": "55e4893447c1c9fa40020e3515a82b92", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2013,16 +2013,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.8.1", + "version": "2.8.2", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "e545b95c4c9b6b4d4aebb12fa2e4e96bdc7d8e39" + "reference": "0a25a226c5503659179c8ea440d1c76599e434fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/e545b95c4c9b6b4d4aebb12fa2e4e96bdc7d8e39", - "reference": "e545b95c4c9b6b4d4aebb12fa2e4e96bdc7d8e39", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/0a25a226c5503659179c8ea440d1c76599e434fd", + "reference": "0a25a226c5503659179c8ea440d1c76599e434fd", "shasum": "" }, "require": { @@ -2034,18 +2034,18 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "^1.10.8 || ^2.0.0", + "composer/composer": "^1.10.13 || ^2.0.0", "composer/package-versions-deprecated": "^1.11.99", "ergebnis/phpstan-rules": "~0.15.2", "ergebnis/test-util": "^1.1.0", "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan": "~0.12.43", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.4", + "phpstan/phpstan-strict-rules": "~0.12.5", "phpunit/phpunit": "^8.5.8", - "symfony/filesystem": "^5.1.3" + "symfony/filesystem": "^5.1.5" }, "type": "composer-plugin", "extra": { @@ -2080,7 +2080,7 @@ "type": "github" } ], - "time": "2020-08-30T16:32:02+00:00" + "time": "2020-09-22T09:55:49+00:00" }, { "name": "ergebnis/json-normalizer", From 6b0a244e19d596a1f4f613f6508397261d7c9d01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2020 05:26:47 +0000 Subject: [PATCH 068/305] github-actions(deps): bump actions/checkout from v2.3.2 to v2.3.3 Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.2 to v2.3.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.2...a81bbbf8298c0fa03ea29cdc473d45769f953675) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 789392b7..a7cad81b 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -30,7 +30,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.2" + uses: "actions/checkout@v2.3.3" - name: "Lint YAML files" uses: "ibiqlik/action-yamllint@v1.0.0" @@ -95,7 +95,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.2" + uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.5.0" @@ -137,7 +137,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.2" + uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.5.0" @@ -206,7 +206,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.2" + uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.5.0" @@ -257,7 +257,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.2" + uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.5.0" @@ -307,7 +307,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.2" + uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.5.0" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 31f06471..31a8c85a 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -27,7 +27,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.2" + uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.5.0" From 19115807999c6064489fa3480a2c1aa8ad5072f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2020 05:25:09 +0000 Subject: [PATCH 069/305] composer(deps-dev): bump psalm/plugin-phpunit from 0.12.1 to 0.12.2 Bumps [psalm/plugin-phpunit](https://github.com/psalm/psalm-plugin-phpunit) from 0.12.1 to 0.12.2. - [Release notes](https://github.com/psalm/psalm-plugin-phpunit/releases) - [Commits](https://github.com/psalm/psalm-plugin-phpunit/compare/0.12.1...0.12.2) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 38 ++++++++++++++++++++++++++------------ 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 7581aa71..49919abd 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.12.1", + "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.15", "zendframework/zend-servicemanager": "^2.0.0" diff --git a/composer.lock b/composer.lock index bdfccd0b..f4842a8f 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": "55e4893447c1c9fa40020e3515a82b92", + "content-hash": "07a6e298e21b165a5766df44ac495df3", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1598,16 +1598,16 @@ }, { "name": "composer/semver", - "version": "1.5.1", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de" + "reference": "38276325bd896f90dfcfe30029aa5db40df387a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de", - "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "url": "https://api.github.com/repos/composer/semver/zipball/38276325bd896f90dfcfe30029aa5db40df387a7", + "reference": "38276325bd896f90dfcfe30029aa5db40df387a7", "shasum": "" }, "require": { @@ -1655,7 +1655,21 @@ "validation", "versioning" ], - "time": "2020-01-13T12:06:48+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-09-27T13:13:07+00:00" }, { "name": "container-interop/container-interop", @@ -3917,23 +3931,23 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.12.1", + "version": "0.12.2", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "fca9b223929cdfac2b6c0b72f52b9c9d63871ef1" + "reference": "85ee5a080a5281e63085d933b30a06b1b1680758" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/fca9b223929cdfac2b6c0b72f52b9c9d63871ef1", - "reference": "fca9b223929cdfac2b6c0b72f52b9c9d63871ef1", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/85ee5a080a5281e63085d933b30a06b1b1680758", + "reference": "85ee5a080a5281e63085d933b30a06b1b1680758", "shasum": "" }, "require": { "composer/package-versions-deprecated": "^1.10", "composer/semver": "^1.4 || ^2.0 || ^3.0", "ext-simplexml": "*", - "php": "^7.1.3", + "php": "^7.1.3 || ^8.0", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", "vimeo/psalm": "^3.6.2 || dev-master || dev-4.x" }, @@ -3965,7 +3979,7 @@ } ], "description": "Psalm plugin for PHPUnit", - "time": "2020-08-30T16:26:06+00:00" + "time": "2020-09-28T17:25:39+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", From 1b56412eefd2e728ea3a529f82600093243caa73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2020 05:45:26 +0000 Subject: [PATCH 070/305] composer(deps-dev): bump ergebnis/test-util from 1.1.0 to 1.2.0 Bumps [ergebnis/test-util](https://github.com/ergebnis/test-util) from 1.1.0 to 1.2.0. - [Release notes](https://github.com/ergebnis/test-util/releases) - [Changelog](https://github.com/ergebnis/test-util/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/test-util/compare/1.1.0...1.2.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index 49919abd..e77194cb 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "ergebnis/composer-normalize": "^2.8.2", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.2.2", - "ergebnis/test-util": "^1.1.0", + "ergebnis/test-util": "^1.2.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", diff --git a/composer.lock b/composer.lock index f4842a8f..e9753ebe 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": "07a6e298e21b165a5766df44ac495df3", + "content-hash": "b5a049a310a379e7f521e24592a87140", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2355,16 +2355,16 @@ }, { "name": "ergebnis/test-util", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/ergebnis/test-util.git", - "reference": "bbb15e417b44044a93ac083fa1d73ae5551c7505" + "reference": "5b0f606becadf7158ca86a123c9d7de795efaff8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/test-util/zipball/bbb15e417b44044a93ac083fa1d73ae5551c7505", - "reference": "bbb15e417b44044a93ac083fa1d73ae5551c7505", + "url": "https://api.github.com/repos/ergebnis/test-util/zipball/5b0f606becadf7158ca86a123c9d7de795efaff8", + "reference": "5b0f606becadf7158ca86a123c9d7de795efaff8", "shasum": "" }, "require": { @@ -2373,19 +2373,19 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.7.1", - "ergebnis/license": "^1.0.0", - "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/composer-normalize": "^2.8.2", + "ergebnis/license": "^1.1.0", + "ergebnis/php-cs-fixer-config": "^2.2.2", "ergebnis/phpstan-rules": "~0.15.2", "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.40", + "phpstan/extension-installer": "^1.0.5", + "phpstan/phpstan": "~0.12.48", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.4", + "phpstan/phpstan-strict-rules": "~0.12.5", "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", - "vimeo/psalm": "^3.14.2" + "psalm/plugin-phpunit": "~0.12.2", + "vimeo/psalm": "^3.16" }, "type": "library", "autoload": { @@ -2403,7 +2403,7 @@ "email": "am@localheinz.com" } ], - "description": "Provides utilities for tests.", + "description": "Provides a helper trait and generic data providers for tests.", "homepage": "https://github.com/ergebnis/test-util", "keywords": [ "assertion", @@ -2417,7 +2417,7 @@ "type": "github" } ], - "time": "2020-08-30T10:56:49+00:00" + "time": "2020-10-04T09:36:32+00:00" }, { "name": "felixfbecker/advanced-json-rpc", From 8398704ce4c3a08b65005feec4a95f981191267c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Oct 2020 05:26:52 +0000 Subject: [PATCH 071/305] github-actions(deps): bump shivammathur/setup-php from 2.5.0 to 2.6.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.5.0 to 2.6.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.5.0...17f319a4afe0f706525b28b26d8ecf642def34bc) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index a7cad81b..3de70e68 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -40,7 +40,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.5.0" + uses: "shivammathur/setup-php@2.6.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -98,7 +98,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.5.0" + uses: "shivammathur/setup-php@2.6.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -140,7 +140,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.5.0" + uses: "shivammathur/setup-php@2.6.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -209,7 +209,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.5.0" + uses: "shivammathur/setup-php@2.6.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -260,7 +260,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.5.0" + uses: "shivammathur/setup-php@2.6.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -310,7 +310,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.5.0" + uses: "shivammathur/setup-php@2.6.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 31a8c85a..812e4d5e 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.5.0" + uses: "shivammathur/setup-php@2.6.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 67be2afe9e0c70f75862207928e5deadb331059e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Oct 2020 05:27:50 +0000 Subject: [PATCH 072/305] composer(deps-dev): bump ergebnis/test-util from 1.2.0 to 1.3.0 Bumps [ergebnis/test-util](https://github.com/ergebnis/test-util) from 1.2.0 to 1.3.0. - [Release notes](https://github.com/ergebnis/test-util/releases) - [Changelog](https://github.com/ergebnis/test-util/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/test-util/compare/1.2.0...1.3.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index e77194cb..38c5101f 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "ergebnis/composer-normalize": "^2.8.2", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.2.2", - "ergebnis/test-util": "^1.2.0", + "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", diff --git a/composer.lock b/composer.lock index e9753ebe..20f1aaf3 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": "b5a049a310a379e7f521e24592a87140", + "content-hash": "d3d19d5d1f326fb767aa4a43d6218273", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2355,16 +2355,16 @@ }, { "name": "ergebnis/test-util", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/ergebnis/test-util.git", - "reference": "5b0f606becadf7158ca86a123c9d7de795efaff8" + "reference": "6dd7ff94848c5f8f98321192a9405fe7fe8251f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/test-util/zipball/5b0f606becadf7158ca86a123c9d7de795efaff8", - "reference": "5b0f606becadf7158ca86a123c9d7de795efaff8", + "url": "https://api.github.com/repos/ergebnis/test-util/zipball/6dd7ff94848c5f8f98321192a9405fe7fe8251f9", + "reference": "6dd7ff94848c5f8f98321192a9405fe7fe8251f9", "shasum": "" }, "require": { @@ -2417,7 +2417,7 @@ "type": "github" } ], - "time": "2020-10-04T09:36:32+00:00" + "time": "2020-10-05T12:15:43+00:00" }, { "name": "felixfbecker/advanced-json-rpc", From c2d27c03ee76c3b48f6af995ca1a7008e0c73344 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2020 05:29:24 +0000 Subject: [PATCH 073/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.2.2 to 2.3.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.2.2...2.3.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 111 +++++++++++++++++++++++++------------------------- 2 files changed, 57 insertions(+), 56 deletions(-) diff --git a/composer.json b/composer.json index 38c5101f..5be41387 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.8.2", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.2.2", + "ergebnis/php-cs-fixer-config": "^2.3.0", "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 20f1aaf3..12ad35e4 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": "d3d19d5d1f326fb767aa4a43d6218273", + "content-hash": "4ef2fc40dd41fff130bc5b1460929176", "packages": [ { "name": "composer/package-versions-deprecated", @@ -983,16 +983,16 @@ }, { "name": "symfony/console", - "version": "v4.4.12", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1f601a29fd7591a0316bffbc0d7550a5953c6c1c" + "reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1f601a29fd7591a0316bffbc0d7550a5953c6c1c", - "reference": "1f601a29fd7591a0316bffbc0d7550a5953c6c1c", + "url": "https://api.github.com/repos/symfony/console/zipball/90933b39c7b312fc3ceaa1ddeac7eb48cb953124", + "reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124", "shasum": "" }, "require": { @@ -1070,20 +1070,20 @@ "type": "tidelift" } ], - "time": "2020-08-17T07:39:58+00:00" + "time": "2020-09-15T07:58:55+00:00" }, { "name": "symfony/finder", - "version": "v4.4.12", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2a78590b2c7e3de5c429628457c47541c58db9c7" + "reference": "60d08560f9aa72997c44077c40d47aa28a963230" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2a78590b2c7e3de5c429628457c47541c58db9c7", - "reference": "2a78590b2c7e3de5c429628457c47541c58db9c7", + "url": "https://api.github.com/repos/symfony/finder/zipball/60d08560f9aa72997c44077c40d47aa28a963230", + "reference": "60d08560f9aa72997c44077c40d47aa28a963230", "shasum": "" }, "require": { @@ -1133,7 +1133,7 @@ "type": "tidelift" } ], - "time": "2020-08-17T09:56:45+00:00" + "time": "2020-10-02T07:34:48+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -1370,16 +1370,16 @@ }, { "name": "symfony/service-contracts", - "version": "v2.1.3", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442" + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/58c7475e5457c5492c26cc740cc0ad7464be9442", - "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", "shasum": "" }, "require": { @@ -1392,7 +1392,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" }, "thanks": { "name": "symfony/contracts", @@ -1442,7 +1442,7 @@ "type": "tidelift" } ], - "time": "2020-07-06T13:23:11+00:00" + "time": "2020-09-07T11:33:47+00:00" } ], "packages-dev": [ @@ -2293,16 +2293,16 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.2.2", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "41f0fb497287797d54bd1f08c9287e33b743b4b9" + "reference": "0bcde3f7cd0c4f01f6135f80ddd9cadcbf341879" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/41f0fb497287797d54bd1f08c9287e33b743b4b9", - "reference": "41f0fb497287797d54bd1f08c9287e33b743b4b9", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/0bcde3f7cd0c4f01f6135f80ddd9cadcbf341879", + "reference": "0bcde3f7cd0c4f01f6135f80ddd9cadcbf341879", "shasum": "" }, "require": { @@ -2311,21 +2311,21 @@ "php": "^7.2" }, "require-dev": { - "ergebnis/composer-normalize": "^2.7.1", + "ergebnis/composer-normalize": "^2.8.2", "ergebnis/license": "^1.1.0", "ergebnis/phpstan-rules": "~0.15.2", - "ergebnis/test-util": "^1.1.0", + "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan": "~0.12.48", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.4", + "phpstan/phpstan-strict-rules": "~0.12.5", "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", + "psalm/plugin-phpunit": "~0.12.2", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.14.2" + "vimeo/psalm": "^3.16" }, "type": "library", "autoload": { @@ -2351,7 +2351,7 @@ "type": "github" } ], - "time": "2020-08-30T13:02:21+00:00" + "time": "2020-10-08T18:03:06+00:00" }, { "name": "ergebnis/test-util", @@ -4657,16 +4657,16 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v2.1.3", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14" + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5e20b83385a77593259c9f8beb2c43cd03b2ac14", - "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", "shasum": "" }, "require": { @@ -4675,7 +4675,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" }, "thanks": { "name": "symfony/contracts", @@ -4717,20 +4717,20 @@ "type": "tidelift" } ], - "time": "2020-06-06T08:49:21+00:00" + "time": "2020-09-07T11:33:47+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.12", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030" + "reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3e8ea5ccddd00556b86d69d42f99f1061a704030", - "reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e17bb5e0663dc725f7cdcafc932132735b4725cd", + "reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd", "shasum": "" }, "require": { @@ -4748,6 +4748,7 @@ "psr/log": "~1.0", "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/service-contracts": "^1.1|^2", @@ -4801,7 +4802,7 @@ "type": "tidelift" } ], - "time": "2020-08-13T14:18:44+00:00" + "time": "2020-09-18T14:07:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4881,16 +4882,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.1.4", + "version": "v5.1.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "f7b9ed6142a34252d219801d9767dedbd711da1a" + "reference": "1a8697545a8d87b9f2f6b1d32414199cc5e20aae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/f7b9ed6142a34252d219801d9767dedbd711da1a", - "reference": "f7b9ed6142a34252d219801d9767dedbd711da1a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/1a8697545a8d87b9f2f6b1d32414199cc5e20aae", + "reference": "1a8697545a8d87b9f2f6b1d32414199cc5e20aae", "shasum": "" }, "require": { @@ -4941,20 +4942,20 @@ "type": "tidelift" } ], - "time": "2020-08-21T17:19:47+00:00" + "time": "2020-09-27T14:02:37+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.1.4", + "version": "v5.1.7", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "9ff59517938f88d90b6e65311fef08faa640f681" + "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9ff59517938f88d90b6e65311fef08faa640f681", - "reference": "9ff59517938f88d90b6e65311fef08faa640f681", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4c7e155bf7d93ea4ba3824d5a14476694a5278dd", + "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd", "shasum": "" }, "require": { @@ -5011,7 +5012,7 @@ "type": "tidelift" } ], - "time": "2020-07-12T12:58:00+00:00" + "time": "2020-09-27T03:44:28+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5241,16 +5242,16 @@ }, { "name": "symfony/process", - "version": "v5.1.4", + "version": "v5.1.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "1864216226af21eb76d9477f691e7cbf198e0402" + "reference": "d3a2e64866169586502f0cd9cab69135ad12cee9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/1864216226af21eb76d9477f691e7cbf198e0402", - "reference": "1864216226af21eb76d9477f691e7cbf198e0402", + "url": "https://api.github.com/repos/symfony/process/zipball/d3a2e64866169586502f0cd9cab69135ad12cee9", + "reference": "d3a2e64866169586502f0cd9cab69135ad12cee9", "shasum": "" }, "require": { @@ -5301,11 +5302,11 @@ "type": "tidelift" } ], - "time": "2020-07-23T08:36:24+00:00" + "time": "2020-09-02T16:23:27+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.1.4", + "version": "v5.1.7", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", From 2bc85fb188b43798b945ef13bc4221da45132717 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Oct 2020 05:44:22 +0000 Subject: [PATCH 074/305] github-actions(deps): bump actions/cache from v2.1.1 to v2.1.2 Bumps [actions/cache](https://github.com/actions/cache) from v2.1.1 to v2.1.2. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.1...d1255ad9362389eac595a9ae406b8e8cb3331f16) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 18 +++++++++--------- .github/workflows/renew.yaml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 3de70e68..0896d135 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -53,7 +53,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -71,7 +71,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('composer.lock') }}" @@ -108,7 +108,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -150,7 +150,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -165,7 +165,7 @@ jobs: run: "mkdir -p .build/phpstan" - name: "Cache cache directory for phpstan/phpstan" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: ".build/phpstan" key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" @@ -178,7 +178,7 @@ jobs: run: "mkdir -p .build/psalm" - name: "Cache cache directory for vimeo/psalm" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: ".build/psalm" key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" @@ -222,7 +222,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -273,7 +273,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -320,7 +320,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 812e4d5e..5cf0e48b 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -43,7 +43,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -58,7 +58,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.1" + uses: "actions/cache@v2.1.2" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('composer.lock') }}" From bbf5815b723c02419c54b6d2e4d84fe3f7b0b2c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Oct 2020 05:44:23 +0000 Subject: [PATCH 075/305] github-actions(deps): bump actions/stale from v3.0.11 to v3.0.12 Bumps [actions/stale](https://github.com/actions/stale) from v3.0.11 to v3.0.12. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.11...44f9eae0adddf72dbf3eedfacc999f70afcec1a8) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index cc8fc14c..bfedd2ff 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.11" + uses: "actions/stale@v3.0.12" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From dd8d05cd4319f1fcaffa3eace2b928bb68d375b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 05:30:21 +0000 Subject: [PATCH 076/305] composer(deps-dev): bump vimeo/psalm from 3.15 to 3.17.2 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.15 to 3.17.2. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.15...3.17.2) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index 5be41387..fa031dfa 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^8.5.8", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.15", + "vimeo/psalm": "^3.17", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 12ad35e4..37835f44 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": "4ef2fc40dd41fff130bc5b1460929176", + "content-hash": "36a613e0d91cf22a3abb12267ece430a", "packages": [ { "name": "composer/package-versions-deprecated", @@ -3325,16 +3325,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "e878a14a65245fbe78f8080eba03b47c3b705651" + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651", - "reference": "e878a14a65245fbe78f8080eba03b47c3b705651", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { @@ -3366,7 +3366,7 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-06-27T10:12:23+00:00" + "time": "2020-09-17T18:55:26+00:00" }, { "name": "phpspec/prophecy", @@ -5626,16 +5626,16 @@ }, { "name": "vimeo/psalm", - "version": "3.15", + "version": "3.17.2", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "de6e7f324f44dde540ebe7ebd4eb481b97c86f30" + "reference": "9e526d9cb569fe4631e6a737bbb7948d05596e3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/de6e7f324f44dde540ebe7ebd4eb481b97c86f30", - "reference": "de6e7f324f44dde540ebe7ebd4eb481b97c86f30", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/9e526d9cb569fe4631e6a737bbb7948d05596e3f", + "reference": "9e526d9cb569fe4631e6a737bbb7948d05596e3f", "shasum": "" }, "require": { @@ -5648,6 +5648,7 @@ "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", + "ext-mbstring": "*", "ext-simplexml": "*", "ext-tokenizer": "*", "felixfbecker/advanced-json-rpc": "^3.0.3", @@ -5721,7 +5722,7 @@ "inspection", "php" ], - "time": "2020-09-01T22:09:30+00:00" + "time": "2020-10-15T00:23:17+00:00" }, { "name": "webmozart/assert", From 04340f5f1291a485ef34f352a7f7d9a4587a70b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2020 05:04:55 +0000 Subject: [PATCH 077/305] github-actions(deps): bump shivammathur/setup-php from 2.6.0 to 2.7.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.6.0 to 2.7.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.6.0...3c0527bec1f4dca4aeb8be6a7621583b34d3f9b0) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 0896d135..2305ff6e 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -40,7 +40,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.6.0" + uses: "shivammathur/setup-php@2.7.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -98,7 +98,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.6.0" + uses: "shivammathur/setup-php@2.7.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -140,7 +140,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.6.0" + uses: "shivammathur/setup-php@2.7.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -209,7 +209,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.6.0" + uses: "shivammathur/setup-php@2.7.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -260,7 +260,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.6.0" + uses: "shivammathur/setup-php@2.7.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -310,7 +310,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.6.0" + uses: "shivammathur/setup-php@2.7.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 5cf0e48b..40a7f94c 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.6.0" + uses: "shivammathur/setup-php@2.7.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 78e8f7088a799ce4a70f2d7ac1732a499deab928 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2020 05:07:02 +0000 Subject: [PATCH 078/305] composer(deps-dev): bump vimeo/psalm from 3.17.2 to 3.18.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.17.2 to 3.18.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.17.2...3.18.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index fa031dfa..8126692e 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpunit/phpunit": "^8.5.8", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.17", + "vimeo/psalm": "^3.18", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 37835f44..ed221a90 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": "36a613e0d91cf22a3abb12267ece430a", + "content-hash": "5ecbf850dc3ba6a6e21cf0442c054632", "packages": [ { "name": "composer/package-versions-deprecated", @@ -5626,16 +5626,16 @@ }, { "name": "vimeo/psalm", - "version": "3.17.2", + "version": "3.18.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "9e526d9cb569fe4631e6a737bbb7948d05596e3f" + "reference": "a463c894c4323e84121b5978867923efc6f8554a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/9e526d9cb569fe4631e6a737bbb7948d05596e3f", - "reference": "9e526d9cb569fe4631e6a737bbb7948d05596e3f", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/a463c894c4323e84121b5978867923efc6f8554a", + "reference": "a463c894c4323e84121b5978867923efc6f8554a", "shasum": "" }, "require": { @@ -5722,7 +5722,7 @@ "inspection", "php" ], - "time": "2020-10-15T00:23:17+00:00" + "time": "2020-10-19T19:02:41+00:00" }, { "name": "webmozart/assert", From 29d6f480fa951663e82f0aad8718dc56ca507367 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2020 05:23:44 +0000 Subject: [PATCH 079/305] composer(deps-dev): bump vimeo/psalm from 3.18.0 to 3.18.2 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 3.18.0 to 3.18.2. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/3.18.0...3.18.2) Signed-off-by: dependabot[bot] --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index ed221a90..41f50546 100644 --- a/composer.lock +++ b/composer.lock @@ -5626,16 +5626,16 @@ }, { "name": "vimeo/psalm", - "version": "3.18.0", + "version": "3.18.2", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "a463c894c4323e84121b5978867923efc6f8554a" + "reference": "19aa905f7c3c7350569999a93c40ae91ae4e1626" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/a463c894c4323e84121b5978867923efc6f8554a", - "reference": "a463c894c4323e84121b5978867923efc6f8554a", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/19aa905f7c3c7350569999a93c40ae91ae4e1626", + "reference": "19aa905f7c3c7350569999a93c40ae91ae4e1626", "shasum": "" }, "require": { @@ -5722,7 +5722,7 @@ "inspection", "php" ], - "time": "2020-10-19T19:02:41+00:00" + "time": "2020-10-20T13:48:22+00:00" }, { "name": "webmozart/assert", From 6246fae385fea46e7f9cdf3e37ed889801d4a713 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2020 05:24:55 +0000 Subject: [PATCH 080/305] composer(deps-dev): bump ergebnis/composer-normalize from 2.8.2 to 2.9.0 Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.8.2 to 2.9.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.8.2...2.9.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 24 ++++++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 8126692e..5dba9803 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.8.2", + "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.3.0", "ergebnis/test-util": "^1.3.0", diff --git a/composer.lock b/composer.lock index 41f50546..503722a6 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": "5ecbf850dc3ba6a6e21cf0442c054632", + "content-hash": "62e96ac973c002493c6ccbedf84e0418", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2027,16 +2027,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.8.2", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "0a25a226c5503659179c8ea440d1c76599e434fd" + "reference": "4b77c0ee53cde3d868b359b7ecadfb9797df955c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/0a25a226c5503659179c8ea440d1c76599e434fd", - "reference": "0a25a226c5503659179c8ea440d1c76599e434fd", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/4b77c0ee53cde3d868b359b7ecadfb9797df955c", + "reference": "4b77c0ee53cde3d868b359b7ecadfb9797df955c", "shasum": "" }, "require": { @@ -2048,18 +2048,22 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "^1.10.13 || ^2.0.0", + "composer/composer": "^1.10.15 || ^2.0.0", "composer/package-versions-deprecated": "^1.11.99", + "ergebnis/license": "^1.1.0", + "ergebnis/php-cs-fixer-config": "^2.3.0", "ergebnis/phpstan-rules": "~0.15.2", - "ergebnis/test-util": "^1.1.0", + "ergebnis/test-util": "^1.3.0", "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.43", + "phpstan/phpstan": "~0.12.50", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", "phpstan/phpstan-strict-rules": "~0.12.5", "phpunit/phpunit": "^8.5.8", - "symfony/filesystem": "^5.1.5" + "psalm/plugin-phpunit": "~0.12.2", + "symfony/filesystem": "^5.1.7", + "vimeo/psalm": "^3.18.2" }, "type": "composer-plugin", "extra": { @@ -2094,7 +2098,7 @@ "type": "github" } ], - "time": "2020-09-22T09:55:49+00:00" + "time": "2020-10-21T08:45:29+00:00" }, { "name": "ergebnis/json-normalizer", From 7409dce6228933cd8a29b427d9ec1299d14f6aaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2020 06:34:49 +0000 Subject: [PATCH 081/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.3.0 to 2.4.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.3.0...2.4.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 50 +++++++++++++++++++++++++------------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/composer.json b/composer.json index 5dba9803..f3aef848 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.3.0", + "ergebnis/php-cs-fixer-config": "^2.4.0", "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 503722a6..c17e9d9d 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": "62e96ac973c002493c6ccbedf84e0418", + "content-hash": "a780b9b8c7c690c573ee514008554a06", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2297,16 +2297,16 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.3.0", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "0bcde3f7cd0c4f01f6135f80ddd9cadcbf341879" + "reference": "309a510f93528844a9b231d442c1fd4acc87173d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/0bcde3f7cd0c4f01f6135f80ddd9cadcbf341879", - "reference": "0bcde3f7cd0c4f01f6135f80ddd9cadcbf341879", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/309a510f93528844a9b231d442c1fd4acc87173d", + "reference": "309a510f93528844a9b231d442c1fd4acc87173d", "shasum": "" }, "require": { @@ -2322,14 +2322,14 @@ "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.0", "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.48", + "phpstan/phpstan": "~0.12.50", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", "phpstan/phpstan-strict-rules": "~0.12.5", "phpunit/phpunit": "^8.5.8", "psalm/plugin-phpunit": "~0.12.2", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.16" + "vimeo/psalm": "^3.18" }, "type": "library", "autoload": { @@ -2355,7 +2355,7 @@ "type": "github" } ], - "time": "2020-10-08T18:03:06+00:00" + "time": "2020-10-21T11:06:57+00:00" }, { "name": "ergebnis/test-util", @@ -3029,20 +3029,20 @@ }, { "name": "paragonie/random_compat", - "version": "v9.99.99", + "version": "v9.99.100", "source": { "type": "git", "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", "shasum": "" }, "require": { - "php": "^7" + "php": ">= 7" }, "require-dev": { "phpunit/phpunit": "4.*|5.*", @@ -3070,7 +3070,7 @@ "pseudorandom", "random" ], - "time": "2018-07-02T15:55:56+00:00" + "time": "2020-10-15T08:29:30+00:00" }, { "name": "phar-io/manifest", @@ -3176,23 +3176,23 @@ }, { "name": "php-cs-fixer/diff", - "version": "v1.3.0", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756" + "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756", - "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/dbd31aeb251639ac0b9e7e29405c1441907f5759", + "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^5.6 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", "symfony/process": "^3.3" }, "type": "library", @@ -3206,14 +3206,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, { "name": "SpacePossum" } @@ -3223,7 +3223,7 @@ "keywords": [ "diff" ], - "time": "2018-02-15T16:58:55+00:00" + "time": "2020-10-14T08:39:05+00:00" }, { "name": "phpdocumentor/reflection-common", From 47f144c909ef369f55b6926f6dc67f6b5f4a0ae4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 05:19:17 +0000 Subject: [PATCH 082/305] github-actions(deps): bump ibiqlik/action-yamllint from v1.0.0 to v2 Bumps [ibiqlik/action-yamllint](https://github.com/ibiqlik/action-yamllint) from v1.0.0 to v2. - [Release notes](https://github.com/ibiqlik/action-yamllint/releases) - [Commits](https://github.com/ibiqlik/action-yamllint/compare/v1.0.0...76fdac38393593cc46d89860c3e9698d4fe6b1a4) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 2305ff6e..f7ce3bef 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -33,7 +33,7 @@ jobs: uses: "actions/checkout@v2.3.3" - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v1.0.0" + uses: "ibiqlik/action-yamllint@v2" with: config_file: ".yamllint.yaml" file_or_dir: "." From 59d2f1ed4509e39fe6c9eb4144f33b18fb641745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Fri, 23 Oct 2020 09:02:32 +0200 Subject: [PATCH 083/305] Fix: Run 'make coding-standards' --- src/Classes/FinalRule.php | 5 ----- src/Methods/NoParameterWithContainerTypeDeclarationRule.php | 1 - test/Integration/AbstractTestCase.php | 5 ----- 3 files changed, 11 deletions(-) diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index f4ba42c2..07ae514a 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -46,7 +46,6 @@ final class FinalRule implements Rule private $errorMessageTemplate = 'Class %s is not final.'; /** - * @param bool $allowAbstractClasses * @param string[] $classesNotRequiredToBeAbstractOrFinal */ public function __construct(bool $allowAbstractClasses, array $classesNotRequiredToBeAbstractOrFinal) @@ -112,10 +111,6 @@ public function processNode(Node $node, Scope $scope): array * @see https://github.com/keradus * @see https://github.com/SpacePossum * @see https://github.com/Slamdunk - * - * @param Node $node - * - * @return bool */ private function isWhitelisted(Node $node): bool { diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index 461f1476..9ae29378 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -34,7 +34,6 @@ final class NoParameterWithContainerTypeDeclarationRule implements Rule /** * @param array $interfacesImplementedByContainers - * @param Broker $broker */ public function __construct(Broker $broker, array $interfacesImplementedByContainers) { diff --git a/test/Integration/AbstractTestCase.php b/test/Integration/AbstractTestCase.php index ccecf400..6aeb0f66 100644 --- a/test/Integration/AbstractTestCase.php +++ b/test/Integration/AbstractTestCase.php @@ -22,8 +22,6 @@ abstract class AbstractTestCase extends RuleTestCase { /** * @dataProvider provideCasesWhereAnalysisShouldSucceed - * - * @param string $path */ final public function testAnalysisSucceeds(string $path): void { @@ -37,9 +35,6 @@ final public function testAnalysisSucceeds(string $path): void /** * @dataProvider provideCasesWhereAnalysisShouldFail - * - * @param string $path - * @param array $error */ final public function testAnalysisFails(string $path, array $error): void { From 4d7531b9a6bb14bc6f723ee94382d5ecb4f036c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Fri, 23 Oct 2020 09:11:48 +0200 Subject: [PATCH 084/305] Enhancement: Synchronize with ergebnis/php-library-template --- .gitattributes | 2 +- .github/CODEOWNERS | 1 + .../composer/determine-cache-directory/action.yaml | 2 +- .github/actions/composer/composer/install/run.sh | 6 +++--- .github/{dependabot.yml => dependabot.yaml} | 0 .github/workflows/integrate.yaml | 8 ++++---- .github/workflows/renew.yaml | 2 +- {tools => .phive}/composer-require-checker | Bin .php_cs | 5 +---- Makefile | 7 +++---- phive.xml | 2 +- psalm-baseline.xml | 9 +-------- 12 files changed, 17 insertions(+), 27 deletions(-) create mode 100644 .github/CODEOWNERS rename .github/{dependabot.yml => dependabot.yaml} (100%) rename {tools => .phive}/composer-require-checker (100%) diff --git a/.gitattributes b/.gitattributes index 79ecf3ae..d62bb983 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,6 @@ /.github/ export-ignore +/.phive/ export-ignore /test/ export-ignore -/tools/ export-ignore /.editorconfig export-ignore /.gitattributes export-ignore /.gitignore export-ignore diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..01c24919 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @ergebnis-bot @localheinz diff --git a/.github/actions/composer/composer/determine-cache-directory/action.yaml b/.github/actions/composer/composer/determine-cache-directory/action.yaml index a898fdaa..4842e88c 100644 --- a/.github/actions/composer/composer/determine-cache-directory/action.yaml +++ b/.github/actions/composer/composer/determine-cache-directory/action.yaml @@ -13,4 +13,4 @@ runs: steps: - name: "Determine composer cache directory" shell: "bash" - run: "echo \"::set-env name=COMPOSER_CACHE_DIR::$(composer config cache-dir)\"" + run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV" diff --git a/.github/actions/composer/composer/install/run.sh b/.github/actions/composer/composer/install/run.sh index dddf3039..3cc3df12 100755 --- a/.github/actions/composer/composer/install/run.sh +++ b/.github/actions/composer/composer/install/run.sh @@ -5,19 +5,19 @@ dependencies="${COMPOSER_INSTALL_DEPENDENCIES}" if [[ ${dependencies} == "lowest" ]]; then composer update --no-interaction --no-progress --no-suggest --prefer-lowest - exit 0 + exit $? fi if [[ ${dependencies} == "locked" ]]; then composer install --no-interaction --no-progress --no-suggest - exit 0 + exit $? fi if [[ ${dependencies} == "highest" ]]; then composer update --no-interaction --no-progress --no-suggest - exit 0 + exit $? fi echo "::error::The value for the \"dependencies\" input needs to be one of \"lowest\", \"locked\"', \"highest\"' - got \"${dependencies}\" instead." diff --git a/.github/dependabot.yml b/.github/dependabot.yaml similarity index 100% rename from .github/dependabot.yml rename to .github/dependabot.yaml diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index f7ce3bef..c3eac1bf 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -74,7 +74,7 @@ jobs: uses: "actions/cache@v2.1.2" with: path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('composer.lock') }}" + key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - name: "Run friendsofphp/php-cs-fixer" @@ -120,7 +120,7 @@ jobs: dependencies: "${{ matrix.dependencies }}" - name: "Run maglnet/composer-require-checker" - run: "tools/composer-require-checker check --config-file=$(pwd)/composer-require-checker.json" + run: ".phive/composer-require-checker check --config-file=$(pwd)/composer-require-checker.json" static-code-analysis: name: "Static Code Analysis" @@ -185,7 +185,7 @@ jobs: restore-keys: "php-${{ matrix.php-version }}-psalm-" - name: "Run vimeo/psalm" - run: "vendor/bin/psalm --config=psalm.xml --diff --diff-methods --shepherd --show-info=false --stats --threads=4" + run: "vendor/bin/psalm --config=psalm.xml --diff --shepherd --show-info=false --stats --threads=4" tests: name: "Tests" @@ -285,7 +285,7 @@ jobs: dependencies: "${{ matrix.dependencies }}" - name: "Collect code coverage with pcov and phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-clover=.build/logs/clover.xml" + run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-clover=.build/phpunit/logs/clover.xml" - name: "Send code coverage report to Codecov.io" env: diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 40a7f94c..442522d9 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -61,7 +61,7 @@ jobs: uses: "actions/cache@v2.1.2" with: path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('composer.lock') }}" + key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - name: "Run friendsofphp/php-cs-fixer" diff --git a/tools/composer-require-checker b/.phive/composer-require-checker similarity index 100% rename from tools/composer-require-checker rename to .phive/composer-require-checker diff --git a/.php_cs b/.php_cs index 6f5e1210..721ebdcf 100644 --- a/.php_cs +++ b/.php_cs @@ -37,10 +37,7 @@ $config->getFinder() '.notes/', 'test/Fixture/', ]) - ->name([ - '.php_cs', - '.php_cs.fixture', - ]); + ->name('.php_cs'); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php_cs.cache'); diff --git a/Makefile b/Makefile index e1f6b9e9..30541784 100644 --- a/Makefile +++ b/Makefile @@ -15,11 +15,10 @@ coding-standards: vendor ## Normalizes composer.json with ergebnis/composer-norm yamllint -c .yamllint.yaml --strict . mkdir -p .build/php-cs-fixer vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose - vendor/bin/php-cs-fixer fix --config=.php_cs.fixture --diff --diff-format=udiff --verbose .PHONY: dependency-analysis dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer-require-checker - tools/composer-require-checker check --config-file=$(shell pwd)/composer-require-checker.json + .phive/composer-require-checker check --config-file=$(shell pwd)/composer-require-checker.json .PHONY: help help: ## Displays this list of targets with descriptions @@ -35,13 +34,13 @@ static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan mkdir -p .build/phpstan vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1 mkdir -p .build/psalm - vendor/bin/psalm --config=psalm.xml --diff --diff-methods --show-info=false --stats --threads=4 + vendor/bin/psalm --config=psalm.xml --diff --show-info=false --stats --threads=4 .PHONY: static-code-analysis-baseline static-code-analysis-baseline: vendor ## Generates a baseline for static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan echo '' > phpstan-baseline.neon - vendor/bin/phpstan analyze --configuration=phpstan.neon --error-format=baselineNeon > phpstan-baseline.neon || true + vendor/bin/phpstan analyze --configuration=phpstan.neon --error-format=baselineNeon --memory-limit=-1 > phpstan-baseline.neon || true mkdir -p .build/psalm vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml diff --git a/phive.xml b/phive.xml index a88a0a03..b7a46302 100644 --- a/phive.xml +++ b/phive.xml @@ -1,4 +1,4 @@ - + diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 41479c44..23aaa551 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,13 +1,6 @@ - + - - $docComment->getReformattedText() - $annotation - - - $annotation - true === $allowAbstractClasses From 7c6cb55a68cbeaa6803317f500ec1876a483241e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2020 05:29:21 +0000 Subject: [PATCH 085/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.4.0 to 2.5.1. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.4.0...2.5.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 336 ++++++++++++++++++-------------------------------- 2 files changed, 124 insertions(+), 214 deletions(-) diff --git a/composer.json b/composer.json index f3aef848..4081d468 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.4.0", + "ergebnis/php-cs-fixer-config": "^2.5.1", "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index c17e9d9d..4672937e 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": "a780b9b8c7c690c573ee514008554a06", + "content-hash": "5447d9f36dde9366a0d30828bf49bac0", "packages": [ { "name": "composer/package-versions-deprecated", @@ -77,16 +77,16 @@ }, { "name": "composer/xdebug-handler", - "version": "1.4.3", + "version": "1.4.4", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ebd27a9866ae8254e873866f795491f02418c5a5" + "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ebd27a9866ae8254e873866f795491f02418c5a5", - "reference": "ebd27a9866ae8254e873866f795491f02418c5a5", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6e076a124f7ee146f2487554a94b6a19a74887ba", + "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba", "shasum": "" }, "require": { @@ -131,7 +131,7 @@ "type": "tidelift" } ], - "time": "2020-08-19T10:27:58+00:00" + "time": "2020-10-24T12:39:10+00:00" }, { "name": "jean85/pretty-package-versions", @@ -983,16 +983,16 @@ }, { "name": "symfony/console", - "version": "v4.4.15", + "version": "v4.4.16", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124" + "reference": "20f73dd143a5815d475e0838ff867bce1eebd9d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/90933b39c7b312fc3ceaa1ddeac7eb48cb953124", - "reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124", + "url": "https://api.github.com/repos/symfony/console/zipball/20f73dd143a5815d475e0838ff867bce1eebd9d5", + "reference": "20f73dd143a5815d475e0838ff867bce1eebd9d5", "shasum": "" }, "require": { @@ -1027,11 +1027,6 @@ "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -1070,31 +1065,26 @@ "type": "tidelift" } ], - "time": "2020-09-15T07:58:55+00:00" + "time": "2020-10-24T11:50:19+00:00" }, { "name": "symfony/finder", - "version": "v4.4.15", + "version": "v4.4.16", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "60d08560f9aa72997c44077c40d47aa28a963230" + "reference": "26f63b8d4e92f2eecd90f6791a563ebb001abe31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/60d08560f9aa72997c44077c40d47aa28a963230", - "reference": "60d08560f9aa72997c44077c40d47aa28a963230", + "url": "https://api.github.com/repos/symfony/finder/zipball/26f63b8d4e92f2eecd90f6791a563ebb001abe31", + "reference": "26f63b8d4e92f2eecd90f6791a563ebb001abe31", "shasum": "" }, "require": { "php": ">=7.1.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" @@ -1133,24 +1123,24 @@ "type": "tidelift" } ], - "time": "2020-10-02T07:34:48+00:00" + "time": "2020-10-24T11:50:19+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a" + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-mbstring": "For best performance" @@ -1158,7 +1148,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1210,29 +1200,29 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca" + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1286,29 +1276,29 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981" + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", "shasum": "" }, "require": { - "php": ">=7.0.8" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1366,7 +1356,7 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/service-contracts", @@ -1598,28 +1588,29 @@ }, { "name": "composer/semver", - "version": "1.7.1", + "version": "3.2.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "38276325bd896f90dfcfe30029aa5db40df387a7" + "reference": "4089fddb67bcf6bf860d91b979e95be303835002" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/38276325bd896f90dfcfe30029aa5db40df387a7", - "reference": "38276325bd896f90dfcfe30029aa5db40df387a7", + "url": "https://api.github.com/repos/composer/semver/zipball/4089fddb67bcf6bf860d91b979e95be303835002", + "reference": "4089fddb67bcf6bf860d91b979e95be303835002", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5" + "phpstan/phpstan": "^0.12.19", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -1669,7 +1660,7 @@ "type": "tidelift" } ], - "time": "2020-09-27T13:13:07+00:00" + "time": "2020-10-14T08:51:15+00:00" }, { "name": "container-interop/container-interop", @@ -1738,16 +1729,16 @@ }, { "name": "doctrine/annotations", - "version": "1.10.4", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "bfe91e31984e2ba76df1c1339681770401ec262f" + "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/bfe91e31984e2ba76df1c1339681770401ec262f", - "reference": "bfe91e31984e2ba76df1c1339681770401ec262f", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad", + "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad", "shasum": "" }, "require": { @@ -1757,13 +1748,14 @@ }, "require-dev": { "doctrine/cache": "1.*", + "doctrine/coding-standard": "^6.0 || ^8.1", "phpstan/phpstan": "^0.12.20", "phpunit/phpunit": "^7.5 || ^9.1.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9.x-dev" + "dev-master": "1.11.x-dev" } }, "autoload": { @@ -1798,13 +1790,13 @@ } ], "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", "keywords": [ "annotations", "docblock", "parser" ], - "time": "2020-08-10T19:35:50+00:00" + "time": "2020-10-26T10:28:16+00:00" }, { "name": "doctrine/instantiator", @@ -2297,32 +2289,32 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.4.0", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "309a510f93528844a9b231d442c1fd4acc87173d" + "reference": "0c5c31ff846db43f15b33f4244ec73abe3fdadc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/309a510f93528844a9b231d442c1fd4acc87173d", - "reference": "309a510f93528844a9b231d442c1fd4acc87173d", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/0c5c31ff846db43f15b33f4244ec73abe3fdadc4", + "reference": "0c5c31ff846db43f15b33f4244ec73abe3fdadc4", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.16.4", + "friendsofphp/php-cs-fixer": "~2.16.7", "php": "^7.2" }, "require-dev": { - "ergebnis/composer-normalize": "^2.8.2", + "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", "ergebnis/phpstan-rules": "~0.15.2", "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", - "jangregor/phpstan-prophecy": "~0.8.0", + "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.50", + "phpstan/phpstan": "~0.12.52", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", "phpstan/phpstan-strict-rules": "~0.12.5", @@ -2355,7 +2347,7 @@ "type": "github" } ], - "time": "2020-10-21T11:06:57+00:00" + "time": "2020-10-28T08:24:54+00:00" }, { "name": "ergebnis/test-util", @@ -2513,27 +2505,27 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.16.4", + "version": "v2.16.7", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "1023c3458137ab052f6ff1e09621a721bfdeca13" + "reference": "4e35806a6d7d8510d6842ae932e8832363d22c87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/1023c3458137ab052f6ff1e09621a721bfdeca13", - "reference": "1023c3458137ab052f6ff1e09621a721bfdeca13", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/4e35806a6d7d8510d6842ae932e8832363d22c87", + "reference": "4e35806a6d7d8510d6842ae932e8832363d22c87", "shasum": "" }, "require": { - "composer/semver": "^1.4", + "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^1.2", "doctrine/annotations": "^1.2", "ext-json": "*", "ext-tokenizer": "*", - "php": "^5.6 || ^7.0", + "php": "^7.1", "php-cs-fixer/diff": "^1.3", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", + "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", "symfony/finder": "^3.0 || ^4.0 || ^5.0", @@ -2546,14 +2538,14 @@ "require-dev": { "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", "justinrainbow/json-schema": "^5.0", - "keradus/cli-executor": "^1.2", + "keradus/cli-executor": "^1.4", "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.1", + "php-coveralls/php-coveralls": "^2.4.1", "php-cs-fixer/accessible-object": "^1.0", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1", - "phpunitgoodpractices/traits": "^1.8", + "phpunitgoodpractices/traits": "^1.9.1", "symfony/phpunit-bridge": "^5.1", "symfony/yaml": "^3.0 || ^4.0 || ^5.0" }, @@ -2606,7 +2598,7 @@ "type": "github" } ], - "time": "2020-06-27T23:57:46+00:00" + "time": "2020-10-27T22:44:27+00:00" }, { "name": "fzaninotto/faker", @@ -3027,51 +3019,6 @@ ], "time": "2019-03-29T20:06:56+00:00" }, - { - "name": "paragonie/random_compat", - "version": "v9.99.100", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", - "shasum": "" - }, - "require": { - "php": ">= 7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2020-10-15T08:29:30+00:00" - }, { "name": "phar-io/manifest", "version": "1.0.3", @@ -4725,16 +4672,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.15", + "version": "v4.4.16", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd" + "reference": "4204f13d2d0b7ad09454f221bb2195fccdf1fe98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e17bb5e0663dc725f7cdcafc932132735b4725cd", - "reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4204f13d2d0b7ad09454f221bb2195fccdf1fe98", + "reference": "4204f13d2d0b7ad09454f221bb2195fccdf1fe98", "shasum": "" }, "require": { @@ -4763,11 +4710,6 @@ "symfony/http-kernel": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" @@ -4806,7 +4748,7 @@ "type": "tidelift" } ], - "time": "2020-09-18T14:07:46+00:00" + "time": "2020-10-24T11:50:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4886,16 +4828,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.1.7", + "version": "v5.1.8", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "1a8697545a8d87b9f2f6b1d32414199cc5e20aae" + "reference": "df08650ea7aee2d925380069c131a66124d79177" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/1a8697545a8d87b9f2f6b1d32414199cc5e20aae", - "reference": "1a8697545a8d87b9f2f6b1d32414199cc5e20aae", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/df08650ea7aee2d925380069c131a66124d79177", + "reference": "df08650ea7aee2d925380069c131a66124d79177", "shasum": "" }, "require": { @@ -4903,11 +4845,6 @@ "symfony/polyfill-ctype": "~1.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" @@ -4946,20 +4883,20 @@ "type": "tidelift" } ], - "time": "2020-09-27T14:02:37+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.1.7", + "version": "v5.1.8", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd" + "reference": "c6a02905e4ffc7a1498e8ee019db2b477cd1cc02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4c7e155bf7d93ea4ba3824d5a14476694a5278dd", - "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/c6a02905e4ffc7a1498e8ee019db2b477cd1cc02", + "reference": "c6a02905e4ffc7a1498e8ee019db2b477cd1cc02", "shasum": "" }, "require": { @@ -4968,11 +4905,6 @@ "symfony/polyfill-php80": "^1.15" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\OptionsResolver\\": "" @@ -5016,24 +4948,24 @@ "type": "tidelift" } ], - "time": "2020-09-27T03:44:28+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454" + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-ctype": "For best performance" @@ -5041,7 +4973,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5092,47 +5024,35 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-php70", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3" + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0dd93f2c578bdc9c72697eaa5f1dd25644e618d3", - "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", "shasum": "" }, "require": { - "paragonie/random_compat": "~1.0|~2.0|~9.99", - "php": ">=5.3.3" + "php": ">=7.1" }, - "type": "library", + "type": "metapackage", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -5169,29 +5089,29 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "639447d008615574653fb3bc60d1986d7172eaae" + "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae", - "reference": "639447d008615574653fb3bc60d1986d7172eaae", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", + "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5242,20 +5162,20 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/process", - "version": "v5.1.7", + "version": "v5.1.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d3a2e64866169586502f0cd9cab69135ad12cee9" + "reference": "f00872c3f6804150d6a0f73b4151daab96248101" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d3a2e64866169586502f0cd9cab69135ad12cee9", - "reference": "d3a2e64866169586502f0cd9cab69135ad12cee9", + "url": "https://api.github.com/repos/symfony/process/zipball/f00872c3f6804150d6a0f73b4151daab96248101", + "reference": "f00872c3f6804150d6a0f73b4151daab96248101", "shasum": "" }, "require": { @@ -5263,11 +5183,6 @@ "symfony/polyfill-php80": "^1.15" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -5306,20 +5221,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.1.7", + "version": "v5.1.8", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "0f7c58cf81dbb5dd67d423a89d577524a2ec0323" + "reference": "3d9f57c89011f0266e6b1d469e5c0110513859d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0f7c58cf81dbb5dd67d423a89d577524a2ec0323", - "reference": "0f7c58cf81dbb5dd67d423a89d577524a2ec0323", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/3d9f57c89011f0266e6b1d469e5c0110513859d5", + "reference": "3d9f57c89011f0266e6b1d469e5c0110513859d5", "shasum": "" }, "require": { @@ -5327,11 +5242,6 @@ "symfony/service-contracts": "^1.0|^2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Stopwatch\\": "" @@ -5370,7 +5280,7 @@ "type": "tidelift" } ], - "time": "2020-05-20T17:43:50+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/yaml", From c46d90498e85c6fe514bca75b1432b3e782b74c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Fri, 30 Oct 2020 10:47:21 +0100 Subject: [PATCH 086/305] Enhancement: Allow installation with PHP 8.0 --- CHANGELOG.md | 15 +++++++++++++-- composer.json | 2 +- composer.lock | 4 ++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1713f3f0..68c7647f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased -For a full diff see [`0.15.2...main`][0.15.2...main]. +For a full diff see [`0.15.3...main`][0.15.3...main]. + +## [`0.15.3`][0.15.3] + +For a full diff see [`0.15.2...0.15.3`][0.15.2...0.15.3]. + +### Changed + +* Allow installation with PHP 8.0 ([#294]), by [@localheinz] ## [`0.15.2`][0.15.2] @@ -341,6 +349,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.15.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.0 [0.15.1]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.1 [0.15.2]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.2 +[0.15.3]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.3 [362c7ea...0.1.0]: https://github.com/ergebnis/phpstan-rules/compare/362c7ea...0.1.0 [0.1.0...0.2.0]: https://github.com/ergebnis/phpstan-rules/compare/0.1.0...0.2.0 @@ -368,7 +377,8 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.14.4...0.15.0]: https://github.com/ergebnis/phpstan-rules/compare/0.14.4...0.15.0 [0.15.0...0.15.1]: https://github.com/ergebnis/phpstan-rules/compare/0.15.0...0.15.1 [0.15.1...0.15.2]: https://github.com/ergebnis/phpstan-rules/compare/0.15.1...0.15.2 -[0.15.2...main]: https://github.com/ergebnis/phpstan-rules/compare/0.15.2...main +[0.15.2...0.15.3]: https://github.com/ergebnis/phpstan-rules/compare/0.15.2...0.15.3 +[0.15.3...main]: https://github.com/ergebnis/phpstan-rules/compare/0.15.3...main [#1]: https://github.com/ergebnis/phpstan-rules/pull/1 [#4]: https://github.com/ergebnis/phpstan-rules/pull/4 @@ -420,6 +430,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#225]: https://github.com/ergebnis/phpstan-rules/pull/225 [#248]: https://github.com/ergebnis/phpstan-rules/pull/248 [#259]: https://github.com/ergebnis/phpstan-rules/pull/259 +[#294]: https://github.com/ergebnis/phpstan-rules/pull/294 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique diff --git a/composer.json b/composer.json index 4081d468..052af2c4 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2", + "php": "^7.2 || ^8.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", "phpstan/phpstan": "~0.11.15 || ~0.12.0" diff --git a/composer.lock b/composer.lock index 4672937e..7e63ea09 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": "5447d9f36dde9366a0d30828bf49bac0", + "content-hash": "331ea10e1dcd3cc58b81922270ec6c3f", "packages": [ { "name": "composer/package-versions-deprecated", @@ -5839,7 +5839,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.2", + "php": "^7.2 || ^8.0", "ext-mbstring": "*" }, "platform-dev": [], From 0a3b8f15ee36c71ed6aacb3ba2f18c96c3d3be3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Nov 2020 05:42:41 +0000 Subject: [PATCH 087/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.5.1 to 2.5.2. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.5.1...2.5.2) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 23 +++++++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index 052af2c4..e61598a9 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.5.1", + "ergebnis/php-cs-fixer-config": "^2.5.2", "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 7e63ea09..c1f8e457 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": "331ea10e1dcd3cc58b81922270ec6c3f", + "content-hash": "7dabde6e9e38fd9a8d0109b549ef6094", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2289,16 +2289,16 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.5.1", + "version": "2.5.2", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "0c5c31ff846db43f15b33f4244ec73abe3fdadc4" + "reference": "5d4d140f4fa0109bf4b7cf64cb557099a9f049df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/0c5c31ff846db43f15b33f4244ec73abe3fdadc4", - "reference": "0c5c31ff846db43f15b33f4244ec73abe3fdadc4", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/5d4d140f4fa0109bf4b7cf64cb557099a9f049df", + "reference": "5d4d140f4fa0109bf4b7cf64cb557099a9f049df", "shasum": "" }, "require": { @@ -2307,9 +2307,9 @@ "php": "^7.2" }, "require-dev": { - "ergebnis/composer-normalize": "^2.9.0", + "ergebnis/composer-normalize": "^2.10.0", "ergebnis/license": "^1.1.0", - "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/phpstan-rules": "~0.15.3", "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", @@ -2324,6 +2324,12 @@ "vimeo/psalm": "^3.18" }, "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, "autoload": { "psr-4": { "Ergebnis\\PhpCsFixer\\Config\\": "src" @@ -2347,7 +2353,7 @@ "type": "github" } ], - "time": "2020-10-28T08:24:54+00:00" + "time": "2020-11-01T19:07:47+00:00" }, { "name": "ergebnis/test-util", @@ -2648,6 +2654,7 @@ "faker", "fixtures" ], + "abandoned": true, "time": "2019-12-12T13:22:17+00:00" }, { From 4f879eb6c3aab67a5ced0df0c651e8aa664b65aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Nov 2020 05:27:45 +0000 Subject: [PATCH 088/305] github-actions(deps): bump actions/stale from v3.0.12 to v3.0.13 Bumps [actions/stale](https://github.com/actions/stale) from v3.0.12 to v3.0.13. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.12...af4072615903a8b031f986d25b1ae3bf45ec44d4) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index bfedd2ff..39eb419c 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.12" + uses: "actions/stale@v3.0.13" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From f2a069e8e383211027bc5920460720f4f4baa740 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Nov 2020 05:28:28 +0000 Subject: [PATCH 089/305] github-actions(deps): bump actions/checkout from v2.3.3 to v2.3.4 Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.3 to v2.3.4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.3...5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index c3eac1bf..bae7c770 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -30,7 +30,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.3" + uses: "actions/checkout@v2.3.4" - name: "Lint YAML files" uses: "ibiqlik/action-yamllint@v2" @@ -95,7 +95,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.3" + uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.7.0" @@ -137,7 +137,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.3" + uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.7.0" @@ -206,7 +206,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.3" + uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.7.0" @@ -257,7 +257,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.3" + uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.7.0" @@ -307,7 +307,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.3" + uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.7.0" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 442522d9..5701976c 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -27,7 +27,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.3" + uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.7.0" From 7bc9b39c762d72a78faf7d6aa2df5651612fe041 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Nov 2020 05:45:19 +0000 Subject: [PATCH 090/305] github-actions(deps): bump actions/cache from v2.1.2 to v2.1.3 Bumps [actions/cache](https://github.com/actions/cache) from v2.1.2 to v2.1.3. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.2...0781355a23dac32fd3bac414512f4b903437991a) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 18 +++++++++--------- .github/workflows/renew.yaml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index bae7c770..e5caddf7 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -53,7 +53,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -71,7 +71,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" @@ -108,7 +108,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -150,7 +150,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -165,7 +165,7 @@ jobs: run: "mkdir -p .build/phpstan" - name: "Cache cache directory for phpstan/phpstan" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: ".build/phpstan" key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" @@ -178,7 +178,7 @@ jobs: run: "mkdir -p .build/psalm" - name: "Cache cache directory for vimeo/psalm" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: ".build/psalm" key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" @@ -222,7 +222,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -273,7 +273,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -320,7 +320,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 5701976c..d36617a4 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -43,7 +43,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -58,7 +58,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.2" + uses: "actions/cache@v2.1.3" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" From 410530544712109182773d6b73c28a6eddd31bf7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Nov 2020 05:45:20 +0000 Subject: [PATCH 091/305] github-actions(deps): bump ibiqlik/action-yamllint from v2 to v3 Bumps [ibiqlik/action-yamllint](https://github.com/ibiqlik/action-yamllint) from v2 to v3. - [Release notes](https://github.com/ibiqlik/action-yamllint/releases) - [Commits](https://github.com/ibiqlik/action-yamllint/compare/v2...b2aeacc1b7eeb8c23e84bba320d04fb5d6a323ee) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index bae7c770..530928e2 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -33,7 +33,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v2" + uses: "ibiqlik/action-yamllint@v3" with: config_file: ".yamllint.yaml" file_or_dir: "." From 8e8e4b5acf3af92dded3954152b1b1f5423524da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Nov 2020 05:32:01 +0000 Subject: [PATCH 092/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.5.2 to 2.5.3. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.5.2...2.5.3) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index e61598a9..3416e85d 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.5.2", + "ergebnis/php-cs-fixer-config": "^2.5.3", "ergebnis/test-util": "^1.3.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index c1f8e457..ba00ec48 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": "7dabde6e9e38fd9a8d0109b549ef6094", + "content-hash": "2527e8e95cd3eaa677130b93984f9631", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2289,16 +2289,16 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.5.2", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "5d4d140f4fa0109bf4b7cf64cb557099a9f049df" + "reference": "fef2ad86f34dcb2f268cc00f8fb477fe03d6e921" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/5d4d140f4fa0109bf4b7cf64cb557099a9f049df", - "reference": "5d4d140f4fa0109bf4b7cf64cb557099a9f049df", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/fef2ad86f34dcb2f268cc00f8fb477fe03d6e921", + "reference": "fef2ad86f34dcb2f268cc00f8fb477fe03d6e921", "shasum": "" }, "require": { @@ -2353,7 +2353,7 @@ "type": "github" } ], - "time": "2020-11-01T19:07:47+00:00" + "time": "2020-11-10T07:47:32+00:00" }, { "name": "ergebnis/test-util", From 01f15401d7cdaf4dfd9bf06af6732767da473b25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Nov 2020 07:02:42 +0000 Subject: [PATCH 093/305] composer(deps-dev): bump phpunit/phpunit from 8.5.8 to 8.5.9 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.8 to 8.5.9. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.8...8.5.9) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 51 +++++++++++++++++++++++---------------------------- 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/composer.json b/composer.json index 3416e85d..8b70cdb7 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^8.5.8", + "phpunit/phpunit": "^8.5.9", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.18", diff --git a/composer.lock b/composer.lock index ba00ec48..9ad6e99e 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": "2527e8e95cd3eaa677130b93984f9631", + "content-hash": "ebfd92e3c5f604ed80f767ae615a377a", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1800,36 +1800,31 @@ }, { "name": "doctrine/instantiator", - "version": "1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", - "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.0", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "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" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -1843,7 +1838,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -1866,7 +1861,7 @@ "type": "tidelift" } ], - "time": "2020-05-29T17:27:14+00:00" + "time": "2020-11-10T18:47:58+00:00" }, { "name": "doctrine/lexer", @@ -3746,39 +3741,39 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.8", + "version": "8.5.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "34c18baa6a44f1d1fbf0338907139e9dce95b997" + "reference": "f5c8a5dd5e7e8d68d7562bfb48d47287d33937d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/34c18baa6a44f1d1fbf0338907139e9dce95b997", - "reference": "34c18baa6a44f1d1fbf0338907139e9dce95b997", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f5c8a5dd5e7e8d68d7562bfb48d47287d33937d6", + "reference": "f5c8a5dd5e7e8d68d7562bfb48d47287d33937d6", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2.0", + "doctrine/instantiator": "^1.3.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", + "myclabs/deep-copy": "^1.10.0", "phar-io/manifest": "^1.0.3", "phar-io/version": "^2.0.1", "php": "^7.2", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^7.0.7", + "phpspec/prophecy": "^1.10.3", + "phpunit/php-code-coverage": "^7.0.10", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.1.2", "sebastian/comparator": "^3.0.2", "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.2", - "sebastian/exporter": "^3.1.1", + "sebastian/environment": "^4.2.3", + "sebastian/exporter": "^3.1.2", "sebastian/global-state": "^3.0.0", "sebastian/object-enumerator": "^3.0.3", "sebastian/resource-operations": "^2.0.1", @@ -3835,7 +3830,7 @@ "type": "github" } ], - "time": "2020-06-22T07:06:58+00:00" + "time": "2020-11-10T12:51:38+00:00" }, { "name": "pimple/pimple", From 984e8d56ffb70de26396e915849bf96337d23822 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Nov 2020 05:45:00 +0000 Subject: [PATCH 094/305] github-actions(deps): bump gr2m/create-or-update-pull-request-action Bumps [gr2m/create-or-update-pull-request-action](https://github.com/gr2m/create-or-update-pull-request-action) from v1.3.0 to v1.3.1. - [Release notes](https://github.com/gr2m/create-or-update-pull-request-action/releases) - [Commits](https://github.com/gr2m/create-or-update-pull-request-action/compare/v1.3.0...4c1b8c76f18fe7b21a59ddcf1dfe1d081000cb6d) Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index d36617a4..60671878 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" - name: "Open pull request updating license year" - uses: "gr2m/create-or-update-pull-request-action@v1.3.0" + uses: "gr2m/create-or-update-pull-request-action@v1.3.1" with: author: "${{ env.ERGEBNIS_BOT_NAME }} <${{ env.ERGEBNIS_BOT_EMAIL }}>" branch: "feature/license-year" From 8f52dbc4bbe437a0648e583b977ded94def4173e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Nov 2020 05:30:27 +0000 Subject: [PATCH 095/305] github-actions(deps): bump shivammathur/setup-php from 2.7.0 to 2.8.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.7.0 to 2.8.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.7.0...a67fcb9922a5f2d7b414e2c7ba85a39736f701a5) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 09da8f97..16a9dcea 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -40,7 +40,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.7.0" + uses: "shivammathur/setup-php@2.8.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -98,7 +98,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.7.0" + uses: "shivammathur/setup-php@2.8.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -140,7 +140,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.7.0" + uses: "shivammathur/setup-php@2.8.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -209,7 +209,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.7.0" + uses: "shivammathur/setup-php@2.8.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -260,7 +260,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.7.0" + uses: "shivammathur/setup-php@2.8.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -310,7 +310,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.7.0" + uses: "shivammathur/setup-php@2.8.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 60671878..216146c5 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.7.0" + uses: "shivammathur/setup-php@2.8.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 3a510f2fe3c37f1be09ff10e260ad8b8c0349fe9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Nov 2020 05:30:29 +0000 Subject: [PATCH 096/305] github-actions(deps): bump actions/github-script from v3.0.0 to v3.1 Bumps [actions/github-script](https://github.com/actions/github-script) from v3.0.0 to v3.1. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v3.0.0...47f7cf65b5ced0830a325f705cad64f2f58dddf7) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 8 ++++---- .github/workflows/triage.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 09da8f97..11a84e3c 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -362,7 +362,7 @@ jobs: steps: - name: "Request review from @${{ env.ERGEBNIS_BOT_NAME }}" - uses: "actions/github-script@v3.0.0" + uses: "actions/github-script@v3.1" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -381,7 +381,7 @@ jobs: }) - name: "Assign @${{ env.ERGEBNIS_BOT_NAME }}" - uses: "actions/github-script@v3.0.0" + uses: "actions/github-script@v3.1" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -400,7 +400,7 @@ jobs: }) - name: "Approve pull request" - uses: "actions/github-script@v3.0.0" + uses: "actions/github-script@v3.1" if: "github.actor != '${{ env.ERGEBNIS_BOT_NAME }}'" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" @@ -416,7 +416,7 @@ jobs: }) - name: "Merge pull request" - uses: "actions/github-script@v3.0.0" + uses: "actions/github-script@v3.1" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index f86c120a..070fc5e3 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -15,7 +15,7 @@ jobs: steps: - name: "Add labels based on branch name" - uses: "actions/github-script@v3.0.0" + uses: "actions/github-script@v3.1" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | From 185cd28791ad95a53045cb7d51f9f908ab2b5f67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Nov 2020 05:31:48 +0000 Subject: [PATCH 097/305] composer(deps-dev): bump ergebnis/test-util from 1.3.0 to 1.4.0 Bumps [ergebnis/test-util](https://github.com/ergebnis/test-util) from 1.3.0 to 1.4.0. - [Release notes](https://github.com/ergebnis/test-util/releases) - [Changelog](https://github.com/ergebnis/test-util/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/test-util/compare/1.3.0...1.4.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 129 ++++++++++++++++++++++++++------------------------ 2 files changed, 67 insertions(+), 64 deletions(-) diff --git a/composer.json b/composer.json index 8b70cdb7..33a65f29 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.5.3", - "ergebnis/test-util": "^1.3.0", + "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", diff --git a/composer.lock b/composer.lock index 9ad6e99e..390100d6 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": "ebfd92e3c5f604ed80f767ae615a377a", + "content-hash": "e6ba1da8e965d3469848deddd8effff0", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2352,39 +2352,45 @@ }, { "name": "ergebnis/test-util", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/ergebnis/test-util.git", - "reference": "6dd7ff94848c5f8f98321192a9405fe7fe8251f9" + "reference": "825611c9b3c25514f17c64d7e7b522ca060b9e7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/test-util/zipball/6dd7ff94848c5f8f98321192a9405fe7fe8251f9", - "reference": "6dd7ff94848c5f8f98321192a9405fe7fe8251f9", + "url": "https://api.github.com/repos/ergebnis/test-util/zipball/825611c9b3c25514f17c64d7e7b522ca060b9e7a", + "reference": "825611c9b3c25514f17c64d7e7b522ca060b9e7a", "shasum": "" }, "require": { "ergebnis/classy": "^1.1.0", - "fzaninotto/faker": "^1.9.0", + "fakerphp/faker": "^1.11.0", "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.8.2", + "ergebnis/composer-normalize": "^2.10.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.2.2", - "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/php-cs-fixer-config": "^2.5.2", + "ergebnis/phpstan-rules": "~0.15.3", "infection/infection": "~0.15.3", "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.48", + "phpstan/phpstan": "~0.12.53", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", "phpstan/phpstan-strict-rules": "~0.12.5", "phpunit/phpunit": "^8.5.8", "psalm/plugin-phpunit": "~0.12.2", - "vimeo/psalm": "^3.16" + "vimeo/psalm": "^3.18" }, "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, "autoload": { "psr-4": { "Ergebnis\\Test\\Util\\": "src/" @@ -2414,7 +2420,55 @@ "type": "github" } ], - "time": "2020-10-05T12:15:43+00:00" + "time": "2020-11-17T17:57:47+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "f228dc5112bafc14c77d40a2acc0c48058e184b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/f228dc5112bafc14c77d40a2acc0c48058e184b0", + "reference": "f228dc5112bafc14c77d40a2acc0c48058e184b0", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-intl": "*", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.4.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2020-11-15T20:27:00+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -2601,57 +2655,6 @@ ], "time": "2020-10-27T22:44:27+00:00" }, - { - "name": "fzaninotto/faker", - "version": "v1.9.1", - "source": { - "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^2.9.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "abandoned": true, - "time": "2019-12-12T13:22:17+00:00" - }, { "name": "infection/infection", "version": "0.15.3", From 521afceb9f16c44e00173389ff8b167516aabf18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Nov 2020 05:42:31 +0000 Subject: [PATCH 098/305] github-actions(deps): bump actions/stale from v3.0.13 to v3.0.14 Bumps [actions/stale](https://github.com/actions/stale) from v3.0.13 to v3.0.14. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.13...87c2b794b9b47a9bec68ae03c01aeb572ffebdb1) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 39eb419c..2dacad1b 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.13" + uses: "actions/stale@v3.0.14" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From ddf128c139ad30dd106d0b35d323b318488ce366 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Nov 2020 05:26:52 +0000 Subject: [PATCH 099/305] github-actions(deps): bump shivammathur/setup-php from 2.8.0 to 2.9.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.8.0 to 2.9.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.8.0...0ff18c5985f05a165abda4a6aa835b36d8793405) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index bd8f32d7..85db5e71 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -40,7 +40,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.8.0" + uses: "shivammathur/setup-php@2.9.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -98,7 +98,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.8.0" + uses: "shivammathur/setup-php@2.9.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -140,7 +140,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.8.0" + uses: "shivammathur/setup-php@2.9.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -209,7 +209,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.8.0" + uses: "shivammathur/setup-php@2.9.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -260,7 +260,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.8.0" + uses: "shivammathur/setup-php@2.9.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -310,7 +310,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.8.0" + uses: "shivammathur/setup-php@2.9.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 216146c5..6293bece 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.8.0" + uses: "shivammathur/setup-php@2.9.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From e1a3605b95d1d4958b00d23698df7883c5c1a471 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Nov 2020 05:40:09 +0000 Subject: [PATCH 100/305] github-actions(deps): bump gr2m/create-or-update-pull-request-action Bumps [gr2m/create-or-update-pull-request-action](https://github.com/gr2m/create-or-update-pull-request-action) from v1.3.1 to v1.3.3. - [Release notes](https://github.com/gr2m/create-or-update-pull-request-action/releases) - [Commits](https://github.com/gr2m/create-or-update-pull-request-action/compare/v1.3.1...8f047d21b7a3d8541258d50d6327bcc8366f866c) Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 6293bece..6cb295f1 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" - name: "Open pull request updating license year" - uses: "gr2m/create-or-update-pull-request-action@v1.3.1" + uses: "gr2m/create-or-update-pull-request-action@v1.3.3" with: author: "${{ env.ERGEBNIS_BOT_NAME }} <${{ env.ERGEBNIS_BOT_EMAIL }}>" branch: "feature/license-year" From e974d5c3fc9e6c7a0d8354e337f968d875162041 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Nov 2020 05:41:41 +0000 Subject: [PATCH 101/305] composer(deps-dev): bump phpunit/phpunit from 8.5.9 to 8.5.11 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.9 to 8.5.11. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.9...8.5.11) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 40 +++++++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/composer.json b/composer.json index 33a65f29..79b09d15 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^8.5.9", + "phpunit/phpunit": "^8.5.11", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.18", diff --git a/composer.lock b/composer.lock index 390100d6..1c320bc9 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": "e6ba1da8e965d3469848deddd8effff0", + "content-hash": "3ebd65538abad9f1353a627b7dfab23b", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2877,16 +2877,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.10.1", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5" + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", - "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { @@ -2927,7 +2927,7 @@ "type": "tidelift" } ], - "time": "2020-06-29T13:22:24+00:00" + "time": "2020-11-13T09:40:50+00:00" }, { "name": "netresearch/jsonmapper", @@ -3491,16 +3491,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "7.0.10", + "version": "7.0.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf" + "reference": "52f55786aa2e52c26cd9e2db20aff2981e0f7399" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf", - "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/52f55786aa2e52c26cd9e2db20aff2981e0f7399", + "reference": "52f55786aa2e52c26cd9e2db20aff2981e0f7399", "shasum": "" }, "require": { @@ -3550,7 +3550,13 @@ "testing", "xunit" ], - "time": "2019-11-20T13:55:58+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-27T06:08:35+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3744,16 +3750,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.9", + "version": "8.5.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f5c8a5dd5e7e8d68d7562bfb48d47287d33937d6" + "reference": "3123601e3b29339b20129acc3f989cfec3274566" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f5c8a5dd5e7e8d68d7562bfb48d47287d33937d6", - "reference": "f5c8a5dd5e7e8d68d7562bfb48d47287d33937d6", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3123601e3b29339b20129acc3f989cfec3274566", + "reference": "3123601e3b29339b20129acc3f989cfec3274566", "shasum": "" }, "require": { @@ -3769,7 +3775,7 @@ "phar-io/version": "^2.0.1", "php": "^7.2", "phpspec/prophecy": "^1.10.3", - "phpunit/php-code-coverage": "^7.0.10", + "phpunit/php-code-coverage": "^7.0.12", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.1.2", @@ -3833,7 +3839,7 @@ "type": "github" } ], - "time": "2020-11-10T12:51:38+00:00" + "time": "2020-11-27T12:46:45+00:00" }, { "name": "pimple/pimple", From 31586ebd519d8707f6c2e4b1b5b6e607965d916f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Dec 2020 05:47:42 +0000 Subject: [PATCH 102/305] composer(deps-dev): bump phpunit/phpunit from 8.5.11 to 8.5.13 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.11 to 8.5.13. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.11...8.5.13) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 343 +++++++++++++++++++++++++++++++------------------- 2 files changed, 215 insertions(+), 130 deletions(-) diff --git a/composer.json b/composer.json index 79b09d15..d5daed2f 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^8.5.11", + "phpunit/phpunit": "^8.5.13", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.18", diff --git a/composer.lock b/composer.lock index 1c320bc9..5aa44187 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": "3ebd65538abad9f1353a627b7dfab23b", + "content-hash": "f8f1a7377ac7661db012621db5a098ef", "packages": [ { "name": "composer/package-versions-deprecated", @@ -3026,28 +3026,29 @@ }, { "name": "phar-io/manifest", - "version": "1.0.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3077,24 +3078,24 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" + "time": "2020-06-27T14:33:11+00:00" }, { "name": "phar-io/version", - "version": "2.0.1", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae", + "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -3124,7 +3125,7 @@ } ], "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" + "time": "2020-11-30T09:21:21+00:00" }, { "name": "php-cs-fixer/diff", @@ -3491,22 +3492,22 @@ }, { "name": "phpunit/php-code-coverage", - "version": "7.0.12", + "version": "7.0.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "52f55786aa2e52c26cd9e2db20aff2981e0f7399" + "reference": "ad0dcd7b184e76f7198a1fe07685bfbec3ae911a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/52f55786aa2e52c26cd9e2db20aff2981e0f7399", - "reference": "52f55786aa2e52c26cd9e2db20aff2981e0f7399", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ad0dcd7b184e76f7198a1fe07685bfbec3ae911a", + "reference": "ad0dcd7b184e76f7198a1fe07685bfbec3ae911a", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.2", + "php": ">=7.2", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", "phpunit/php-token-stream": "^3.1.1", @@ -3556,27 +3557,27 @@ "type": "github" } ], - "time": "2020-11-27T06:08:35+00:00" + "time": "2020-11-30T08:35:22+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -3606,7 +3607,13 @@ "filesystem", "iterator" ], - "time": "2018-09-13T20:33:42+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:25:21+00:00" }, { "name": "phpunit/php-text-template", @@ -3651,23 +3658,23 @@ }, { "name": "phpunit/php-timer", - "version": "2.1.2", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -3696,25 +3703,31 @@ "keywords": [ "timer" ], - "time": "2019-06-07T04:22:29+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:20:02+00:00" }, { "name": "phpunit/php-token-stream", - "version": "3.1.1", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "reference": "472b687829041c24b25f475e14c2f38a09edf1c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/472b687829041c24b25f475e14c2f38a09edf1c2", + "reference": "472b687829041c24b25f475e14c2f38a09edf1c2", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.0" @@ -3745,21 +3758,27 @@ "keywords": [ "tokenizer" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "abandoned": true, - "time": "2019-09-17T06:23:10+00:00" + "time": "2020-11-30T08:38:46+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.11", + "version": "8.5.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3123601e3b29339b20129acc3f989cfec3274566" + "reference": "8e86be391a58104ef86037ba8a846524528d784e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3123601e3b29339b20129acc3f989cfec3274566", - "reference": "3123601e3b29339b20129acc3f989cfec3274566", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e86be391a58104ef86037ba8a846524528d784e", + "reference": "8e86be391a58104ef86037ba8a846524528d784e", "shasum": "" }, "require": { @@ -3771,9 +3790,9 @@ "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.10.0", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.2", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.2", "phpspec/prophecy": "^1.10.3", "phpunit/php-code-coverage": "^7.0.12", "phpunit/php-file-iterator": "^2.0.2", @@ -3839,7 +3858,7 @@ "type": "github" } ], - "time": "2020-11-27T12:46:45+00:00" + "time": "2020-12-01T04:53:52+00:00" }, { "name": "pimple/pimple", @@ -3945,23 +3964,23 @@ }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -3986,29 +4005,35 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", "shasum": "" }, "require": { - "php": "^7.1", + "php": ">=7.1", "sebastian/diff": "^3.0", "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -4026,6 +4051,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -4037,10 +4066,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -4050,24 +4075,30 @@ "compare", "equality" ], - "time": "2018-07-12T15:12:46+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:04:30+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5 || ^8.0", @@ -4089,13 +4120,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -4106,24 +4137,30 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:59:04+00:00" }, { "name": "sebastian/environment", - "version": "4.2.3", + "version": "4.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5" @@ -4159,24 +4196,30 @@ "environment", "hhvm" ], - "time": "2019-11-20T08:46:58+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:53:42+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/recursion-context": "^3.0" }, "require-dev": { @@ -4226,24 +4269,30 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:47:53+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", "shasum": "" }, "require": { - "php": "^7.2", + "php": ">=7.2", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -4280,24 +4329,30 @@ "keywords": [ "global state" ], - "time": "2019-02-01T05:30:01+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:43:24+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -4327,24 +4382,30 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -4372,24 +4433,30 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -4410,14 +4477,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -4425,24 +4492,30 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "type": "library", "extra": { @@ -4467,24 +4540,30 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:30:19+00:00" }, { "name": "sebastian/type", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", "shasum": "" }, "require": { - "php": "^7.2" + "php": ">=7.2" }, "require-dev": { "phpunit/phpunit": "^8.2" @@ -4513,7 +4592,13 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "time": "2019-07-02T08:10:15+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:25:11+00:00" }, { "name": "sebastian/version", From 2ca713006f121c148620d4d7e7f4765e9e0f04a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Dec 2020 05:28:00 +0000 Subject: [PATCH 103/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.5.3 to 2.7.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.5.3...2.7.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 130 +++++++++++++++++++++++++------------------------- 2 files changed, 67 insertions(+), 65 deletions(-) diff --git a/composer.json b/composer.json index d5daed2f..6a2fc24e 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.5.3", + "ergebnis/php-cs-fixer-config": "^2.7.0", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 5aa44187..1462a64f 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": "f8f1a7377ac7661db012621db5a098ef", + "content-hash": "2a0ead543cac939a4e1868eec81dc175", "packages": [ { "name": "composer/package-versions-deprecated", @@ -77,16 +77,16 @@ }, { "name": "composer/xdebug-handler", - "version": "1.4.4", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba" + "reference": "f28d44c286812c714741478d968104c5e604a1d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6e076a124f7ee146f2487554a94b6a19a74887ba", - "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", "shasum": "" }, "require": { @@ -131,7 +131,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:39:10+00:00" + "time": "2020-11-13T08:04:11+00:00" }, { "name": "jean85/pretty-package-versions", @@ -983,16 +983,16 @@ }, { "name": "symfony/console", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "20f73dd143a5815d475e0838ff867bce1eebd9d5" + "reference": "c8e37f6928c19816437a4dd7bf16e3bd79941470" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/20f73dd143a5815d475e0838ff867bce1eebd9d5", - "reference": "20f73dd143a5815d475e0838ff867bce1eebd9d5", + "url": "https://api.github.com/repos/symfony/console/zipball/c8e37f6928c19816437a4dd7bf16e3bd79941470", + "reference": "c8e37f6928c19816437a4dd7bf16e3bd79941470", "shasum": "" }, "require": { @@ -1065,20 +1065,20 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-11-28T10:15:42+00:00" }, { "name": "symfony/finder", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "26f63b8d4e92f2eecd90f6791a563ebb001abe31" + "reference": "9f1d1d883b79a91ef320c0c6e803494e042ef36e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/26f63b8d4e92f2eecd90f6791a563ebb001abe31", - "reference": "26f63b8d4e92f2eecd90f6791a563ebb001abe31", + "url": "https://api.github.com/repos/symfony/finder/zipball/9f1d1d883b79a91ef320c0c6e803494e042ef36e", + "reference": "9f1d1d883b79a91ef320c0c6e803494e042ef36e", "shasum": "" }, "require": { @@ -1123,7 +1123,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-11-17T19:45:34+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -1588,23 +1588,23 @@ }, { "name": "composer/semver", - "version": "3.2.2", + "version": "3.2.4", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "4089fddb67bcf6bf860d91b979e95be303835002" + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/4089fddb67bcf6bf860d91b979e95be303835002", - "reference": "4089fddb67bcf6bf860d91b979e95be303835002", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.19", + "phpstan/phpstan": "^0.12.54", "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", @@ -1660,7 +1660,7 @@ "type": "tidelift" } ], - "time": "2020-10-14T08:51:15+00:00" + "time": "2020-11-13T08:59:24+00:00" }, { "name": "container-interop/container-interop", @@ -2284,36 +2284,36 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.5.3", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "fef2ad86f34dcb2f268cc00f8fb477fe03d6e921" + "reference": "27818ccef13e29f3a20c0336ea5b2d9d8b6aa657" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/fef2ad86f34dcb2f268cc00f8fb477fe03d6e921", - "reference": "fef2ad86f34dcb2f268cc00f8fb477fe03d6e921", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/27818ccef13e29f3a20c0336ea5b2d9d8b6aa657", + "reference": "27818ccef13e29f3a20c0336ea5b2d9d8b6aa657", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.16.7", - "php": "^7.2" + "friendsofphp/php-cs-fixer": "~2.17.1", + "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.10.0", + "ergebnis/composer-normalize": "^2.11.0", "ergebnis/license": "^1.1.0", "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.3.0", + "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.52", + "phpstan/phpstan": "~0.12.59", "phpstan/phpstan-deprecation-rules": "~0.12.5", "phpstan/phpstan-phpunit": "~0.12.16", "phpstan/phpstan-strict-rules": "~0.12.5", - "phpunit/phpunit": "^8.5.8", + "phpunit/phpunit": "^8.5.13", "psalm/plugin-phpunit": "~0.12.2", "symfony/filesystem": "^4.4.0", "vimeo/psalm": "^3.18" @@ -2348,7 +2348,7 @@ "type": "github" } ], - "time": "2020-11-10T07:47:32+00:00" + "time": "2020-12-08T22:24:01+00:00" }, { "name": "ergebnis/test-util", @@ -2560,16 +2560,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.16.7", + "version": "v2.17.1", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "4e35806a6d7d8510d6842ae932e8832363d22c87" + "reference": "5198b7308ed63f26799387fd7f3901c3db6bd7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/4e35806a6d7d8510d6842ae932e8832363d22c87", - "reference": "4e35806a6d7d8510d6842ae932e8832363d22c87", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/5198b7308ed63f26799387fd7f3901c3db6bd7fd", + "reference": "5198b7308ed63f26799387fd7f3901c3db6bd7fd", "shasum": "" }, "require": { @@ -2578,7 +2578,7 @@ "doctrine/annotations": "^1.2", "ext-json": "*", "ext-tokenizer": "*", - "php": "^7.1", + "php": "^5.6 || ^7.0 || ^8.0", "php-cs-fixer/diff": "^1.3", "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", @@ -2600,6 +2600,7 @@ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1", + "phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/traits": "^1.9.1", "symfony/phpunit-bridge": "^5.1", "symfony/yaml": "^3.0 || ^4.0 || ^5.0" @@ -2653,7 +2654,7 @@ "type": "github" } ], - "time": "2020-10-27T22:44:27+00:00" + "time": "2020-12-08T13:47:02+00:00" }, { "name": "infection/infection", @@ -4768,16 +4769,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "4204f13d2d0b7ad09454f221bb2195fccdf1fe98" + "reference": "f029d6f21eac61ab23198e7aca40e7638e8c8924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4204f13d2d0b7ad09454f221bb2195fccdf1fe98", - "reference": "4204f13d2d0b7ad09454f221bb2195fccdf1fe98", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f029d6f21eac61ab23198e7aca40e7638e8c8924", + "reference": "f029d6f21eac61ab23198e7aca40e7638e8c8924", "shasum": "" }, "require": { @@ -4844,7 +4845,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-10-31T22:44:29+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4924,16 +4925,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.1.8", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "df08650ea7aee2d925380069c131a66124d79177" + "reference": "bb92ba7f38b037e531908590a858a04d85c0e238" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/df08650ea7aee2d925380069c131a66124d79177", - "reference": "df08650ea7aee2d925380069c131a66124d79177", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/bb92ba7f38b037e531908590a858a04d85c0e238", + "reference": "bb92ba7f38b037e531908590a858a04d85c0e238", "shasum": "" }, "require": { @@ -4979,25 +4980,26 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:01:57+00:00" + "time": "2020-11-12T09:58:18+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.1.8", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "c6a02905e4ffc7a1498e8ee019db2b477cd1cc02" + "reference": "87a2a4a766244e796dd9cb9d6f58c123358cd986" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/c6a02905e4ffc7a1498e8ee019db2b477cd1cc02", - "reference": "c6a02905e4ffc7a1498e8ee019db2b477cd1cc02", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/87a2a4a766244e796dd9cb9d6f58c123358cd986", + "reference": "87a2a4a766244e796dd9cb9d6f58c123358cd986", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php73": "~1.0", "symfony/polyfill-php80": "^1.15" }, "type": "library", @@ -5044,7 +5046,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:01:57+00:00" + "time": "2020-10-24T12:08:07+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5262,16 +5264,16 @@ }, { "name": "symfony/process", - "version": "v5.1.8", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f00872c3f6804150d6a0f73b4151daab96248101" + "reference": "240e74140d4d956265048f3025c0aecbbc302d54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f00872c3f6804150d6a0f73b4151daab96248101", - "reference": "f00872c3f6804150d6a0f73b4151daab96248101", + "url": "https://api.github.com/repos/symfony/process/zipball/240e74140d4d956265048f3025c0aecbbc302d54", + "reference": "240e74140d4d956265048f3025c0aecbbc302d54", "shasum": "" }, "require": { @@ -5317,20 +5319,20 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:01:57+00:00" + "time": "2020-11-02T15:47:15+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.1.8", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "3d9f57c89011f0266e6b1d469e5c0110513859d5" + "reference": "2b105c0354f39a63038a1d8bf776ee92852813af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/3d9f57c89011f0266e6b1d469e5c0110513859d5", - "reference": "3d9f57c89011f0266e6b1d469e5c0110513859d5", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/2b105c0354f39a63038a1d8bf776ee92852813af", + "reference": "2b105c0354f39a63038a1d8bf776ee92852813af", "shasum": "" }, "require": { @@ -5376,7 +5378,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:01:57+00:00" + "time": "2020-11-01T16:14:45+00:00" }, { "name": "symfony/yaml", From 296c7999d723930ce97925f3d95ff21234f89ca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 13 Dec 2020 10:35:00 +0100 Subject: [PATCH 104/305] Enhancement: Synchronize with ergebnis/php-library-template --- .gitattributes | 1 - .github/actions/composer/composer/install/run.sh | 6 +++--- .github/dependabot.yaml | 2 +- phive.xml => .phive/phars.xml | 0 .php_cs | 4 ++-- Makefile | 2 +- phpstan.neon | 6 ++++++ psalm.xml | 4 ---- test/Integration/phpunit.xml | 10 +++++----- test/Unit/phpunit.xml | 10 +++++----- 10 files changed, 23 insertions(+), 22 deletions(-) rename phive.xml => .phive/phars.xml (100%) diff --git a/.gitattributes b/.gitattributes index d62bb983..4ce803a8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,7 +8,6 @@ /composer-require-checker.json export-ignore /infection.json export-ignore /Makefile export-ignore -/phive.xml export-ignore /phpstan-baseline.neon export-ignore /phpstan.neon export-ignore /psalm-baseline.xml export-ignore diff --git a/.github/actions/composer/composer/install/run.sh b/.github/actions/composer/composer/install/run.sh index 3cc3df12..a052ba6a 100755 --- a/.github/actions/composer/composer/install/run.sh +++ b/.github/actions/composer/composer/install/run.sh @@ -3,19 +3,19 @@ dependencies="${COMPOSER_INSTALL_DEPENDENCIES}" if [[ ${dependencies} == "lowest" ]]; then - composer update --no-interaction --no-progress --no-suggest --prefer-lowest + composer update --no-interaction --no-progress --prefer-lowest exit $? fi if [[ ${dependencies} == "locked" ]]; then - composer install --no-interaction --no-progress --no-suggest + composer install --no-interaction --no-progress exit $? fi if [[ ${dependencies} == "highest" ]]; then - composer update --no-interaction --no-progress --no-suggest + composer update --no-interaction --no-progress exit $? fi diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 1eedeb94..bfdee0ab 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -19,7 +19,7 @@ updates: - ">= 0" labels: - "dependency" - open-pull-requests-limit: 10 + open-pull-requests-limit: 1 package-ecosystem: "composer" schedule: interval: "daily" diff --git a/phive.xml b/.phive/phars.xml similarity index 100% rename from phive.xml rename to .phive/phars.xml diff --git a/.php_cs b/.php_cs index 721ebdcf..ca937a5f 100644 --- a/.php_cs +++ b/.php_cs @@ -29,14 +29,14 @@ $license->save(); $config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php71($license->header())); $config->getFinder() - ->ignoreDotFiles(false) - ->in(__DIR__) ->exclude([ '.build/', '.github/', '.notes/', 'test/Fixture/', ]) + ->ignoreDotFiles(false) + ->in(__DIR__) ->name('.php_cs'); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php_cs.cache'); diff --git a/Makefile b/Makefile index 30541784..95a21ba1 100644 --- a/Makefile +++ b/Makefile @@ -53,4 +53,4 @@ tests: vendor ## Runs auto-review, unit, and integration tests with phpunit/phpu vendor: composer.json composer.lock composer validate --strict - composer install --no-interaction --no-progress --no-suggest + composer install --no-interaction --no-progress diff --git a/phpstan.neon b/phpstan.neon index 8b48fa46..e7cdc355 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -4,15 +4,21 @@ includes: parameters: checkMissingIterableValueType: false + ergebnis: classesAllowedToBeExtended: - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase - PHPStan\Testing\RuleTestCase + excludes_analyse: - %currentWorkingDirectory%/test/Fixture/ + inferPrivatePropertyTypeFromConstructor: true + level: max + paths: - src/ - test/ + tmpDir: .build/phpstan/ diff --git a/psalm.xml b/psalm.xml index a4c89a87..c41d418f 100644 --- a/psalm.xml +++ b/psalm.xml @@ -10,10 +10,6 @@ resolveFromConfigFile="true" strictBinaryOperands="true" > - - - - diff --git a/test/Integration/phpunit.xml b/test/Integration/phpunit.xml index 91d7970f..6b68ce51 100644 --- a/test/Integration/phpunit.xml +++ b/test/Integration/phpunit.xml @@ -22,14 +22,14 @@ stopOnSkipped="false" verbose="true" > - - - . - - ../../src/ + + + . + + diff --git a/test/Unit/phpunit.xml b/test/Unit/phpunit.xml index 5d606146..b8e3b731 100644 --- a/test/Unit/phpunit.xml +++ b/test/Unit/phpunit.xml @@ -22,14 +22,14 @@ stopOnSkipped="false" verbose="true" > - - - . - - ../../src/ + + + . + + From 50634e5c3f139a6f010b2c6849f87d9e43e051b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Dec 2020 05:54:30 +0000 Subject: [PATCH 105/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.7.0 to 2.8.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.7.0...2.8.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 86 ++++++++++++++++++++++++++------------------------- 2 files changed, 45 insertions(+), 43 deletions(-) diff --git a/composer.json b/composer.json index 6a2fc24e..4e219a47 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.7.0", + "ergebnis/php-cs-fixer-config": "^2.8.0", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 1462a64f..095cdfab 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": "2a0ead543cac939a4e1868eec81dc175", + "content-hash": "86e1a613c8aa071a67dba3a95eb2b061", "packages": [ { "name": "composer/package-versions-deprecated", @@ -983,16 +983,16 @@ }, { "name": "symfony/console", - "version": "v4.4.17", + "version": "v4.4.18", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c8e37f6928c19816437a4dd7bf16e3bd79941470" + "reference": "12e071278e396cc3e1c149857337e9e192deca0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c8e37f6928c19816437a4dd7bf16e3bd79941470", - "reference": "c8e37f6928c19816437a4dd7bf16e3bd79941470", + "url": "https://api.github.com/repos/symfony/console/zipball/12e071278e396cc3e1c149857337e9e192deca0b", + "reference": "12e071278e396cc3e1c149857337e9e192deca0b", "shasum": "" }, "require": { @@ -1065,20 +1065,20 @@ "type": "tidelift" } ], - "time": "2020-11-28T10:15:42+00:00" + "time": "2020-12-18T07:41:31+00:00" }, { "name": "symfony/finder", - "version": "v4.4.17", + "version": "v4.4.18", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9f1d1d883b79a91ef320c0c6e803494e042ef36e" + "reference": "ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9f1d1d883b79a91ef320c0c6e803494e042ef36e", - "reference": "9f1d1d883b79a91ef320c0c6e803494e042ef36e", + "url": "https://api.github.com/repos/symfony/finder/zipball/ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b", + "reference": "ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b", "shasum": "" }, "require": { @@ -1123,7 +1123,7 @@ "type": "tidelift" } ], - "time": "2020-11-17T19:45:34+00:00" + "time": "2020-12-08T16:59:59+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -2284,16 +2284,16 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "27818ccef13e29f3a20c0336ea5b2d9d8b6aa657" + "reference": "40490fc58c0939c13ff3205cce5e7dfc793c68dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/27818ccef13e29f3a20c0336ea5b2d9d8b6aa657", - "reference": "27818ccef13e29f3a20c0336ea5b2d9d8b6aa657", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/40490fc58c0939c13ff3205cce5e7dfc793c68dc", + "reference": "40490fc58c0939c13ff3205cce5e7dfc793c68dc", "shasum": "" }, "require": { @@ -2308,11 +2308,11 @@ "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", - "phpstan/extension-installer": "^1.0.5", + "phpstan/extension-installer": "^1.1.0", "phpstan/phpstan": "~0.12.59", - "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-deprecation-rules": "~0.12.6", "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.5", + "phpstan/phpstan-strict-rules": "~0.12.7", "phpunit/phpunit": "^8.5.13", "psalm/plugin-phpunit": "~0.12.2", "symfony/filesystem": "^4.4.0", @@ -2348,7 +2348,7 @@ "type": "github" } ], - "time": "2020-12-08T22:24:01+00:00" + "time": "2020-12-18T17:31:35+00:00" }, { "name": "ergebnis/test-util", @@ -2560,16 +2560,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.17.1", + "version": "v2.17.2", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "5198b7308ed63f26799387fd7f3901c3db6bd7fd" + "reference": "aaee4f3d16a996fc0b570be0c69d3b80c909c507" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/5198b7308ed63f26799387fd7f3901c3db6bd7fd", - "reference": "5198b7308ed63f26799387fd7f3901c3db6bd7fd", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/aaee4f3d16a996fc0b570be0c69d3b80c909c507", + "reference": "aaee4f3d16a996fc0b570be0c69d3b80c909c507", "shasum": "" }, "require": { @@ -2599,9 +2599,11 @@ "php-cs-fixer/accessible-object": "^1.0", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1", + "phpspec/prophecy-phpunit": "^1.1 || ^2.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.4.4 <9.5", "phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/traits": "^1.9.1", + "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", "symfony/phpunit-bridge": "^5.1", "symfony/yaml": "^3.0 || ^4.0 || ^5.0" }, @@ -2654,7 +2656,7 @@ "type": "github" } ], - "time": "2020-12-08T13:47:02+00:00" + "time": "2020-12-17T16:41:55+00:00" }, { "name": "infection/infection", @@ -4769,16 +4771,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.17", + "version": "v4.4.18", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f029d6f21eac61ab23198e7aca40e7638e8c8924" + "reference": "5d4c874b0eb1c32d40328a09dbc37307a5a910b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f029d6f21eac61ab23198e7aca40e7638e8c8924", - "reference": "f029d6f21eac61ab23198e7aca40e7638e8c8924", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5d4c874b0eb1c32d40328a09dbc37307a5a910b0", + "reference": "5d4c874b0eb1c32d40328a09dbc37307a5a910b0", "shasum": "" }, "require": { @@ -4845,7 +4847,7 @@ "type": "tidelift" } ], - "time": "2020-10-31T22:44:29+00:00" + "time": "2020-12-18T07:41:31+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4925,16 +4927,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.2.0", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "bb92ba7f38b037e531908590a858a04d85c0e238" + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/bb92ba7f38b037e531908590a858a04d85c0e238", - "reference": "bb92ba7f38b037e531908590a858a04d85c0e238", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d", "shasum": "" }, "require": { @@ -4980,11 +4982,11 @@ "type": "tidelift" } ], - "time": "2020-11-12T09:58:18+00:00" + "time": "2020-11-30T17:05:38+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.2.0", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", @@ -5264,16 +5266,16 @@ }, { "name": "symfony/process", - "version": "v5.2.0", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "240e74140d4d956265048f3025c0aecbbc302d54" + "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/240e74140d4d956265048f3025c0aecbbc302d54", - "reference": "240e74140d4d956265048f3025c0aecbbc302d54", + "url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd", + "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd", "shasum": "" }, "require": { @@ -5319,11 +5321,11 @@ "type": "tidelift" } ], - "time": "2020-11-02T15:47:15+00:00" + "time": "2020-12-08T17:03:37+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.0", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", From 515e1d14fff45ba9114371f4f2bdf1d1106be7de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Dec 2020 05:26:30 +0000 Subject: [PATCH 106/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.8.0 to 2.9.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.8.0...2.9.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index 4e219a47..43f74d3c 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.8.0", + "ergebnis/php-cs-fixer-config": "^2.9.0", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 095cdfab..d5e569a0 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": "86e1a613c8aa071a67dba3a95eb2b061", + "content-hash": "65ab4192b9b1804eb32e1372efe6e1b1", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2284,21 +2284,21 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.8.0", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "40490fc58c0939c13ff3205cce5e7dfc793c68dc" + "reference": "64a920e1d7b3c01f5f05a2eb33782ade642762af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/40490fc58c0939c13ff3205cce5e7dfc793c68dc", - "reference": "40490fc58c0939c13ff3205cce5e7dfc793c68dc", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/64a920e1d7b3c01f5f05a2eb33782ade642762af", + "reference": "64a920e1d7b3c01f5f05a2eb33782ade642762af", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.17.1", + "friendsofphp/php-cs-fixer": "~2.17.3", "php": "^7.2 || ^8.0" }, "require-dev": { @@ -2309,9 +2309,9 @@ "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.59", + "phpstan/phpstan": "~0.12.64", "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-phpunit": "~0.12.17", "phpstan/phpstan-strict-rules": "~0.12.7", "phpunit/phpunit": "^8.5.13", "psalm/plugin-phpunit": "~0.12.2", @@ -2348,7 +2348,7 @@ "type": "github" } ], - "time": "2020-12-18T17:31:35+00:00" + "time": "2020-12-24T14:52:38+00:00" }, { "name": "ergebnis/test-util", @@ -2560,16 +2560,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.17.2", + "version": "v2.17.3", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "aaee4f3d16a996fc0b570be0c69d3b80c909c507" + "reference": "bd32f5dd72cdfc7b53f54077f980e144bfa2f595" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/aaee4f3d16a996fc0b570be0c69d3b80c909c507", - "reference": "aaee4f3d16a996fc0b570be0c69d3b80c909c507", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/bd32f5dd72cdfc7b53f54077f980e144bfa2f595", + "reference": "bd32f5dd72cdfc7b53f54077f980e144bfa2f595", "shasum": "" }, "require": { @@ -2595,7 +2595,7 @@ "justinrainbow/json-schema": "^5.0", "keradus/cli-executor": "^1.4", "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4.1", + "php-coveralls/php-coveralls": "^2.4.2", "php-cs-fixer/accessible-object": "^1.0", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", @@ -2656,7 +2656,7 @@ "type": "github" } ], - "time": "2020-12-17T16:41:55+00:00" + "time": "2020-12-24T11:14:44+00:00" }, { "name": "infection/infection", From 6d617ccb09e4e228c393f9b67a6df4b4263cf4b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Dec 2020 05:46:16 +0000 Subject: [PATCH 107/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.9.0 to 2.10.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.9.0...2.10.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 43f74d3c..fabc2b4e 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.9.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.9.0", + "ergebnis/php-cs-fixer-config": "^2.10.0", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index d5e569a0..512df449 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": "65ab4192b9b1804eb32e1372efe6e1b1", + "content-hash": "a0dd6e05020a7ec53b9c80f03fe823f7", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2284,16 +2284,16 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.9.0", + "version": "2.10.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "64a920e1d7b3c01f5f05a2eb33782ade642762af" + "reference": "cb5395a2ba10fecd481254bfbf5026ea905f04f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/64a920e1d7b3c01f5f05a2eb33782ade642762af", - "reference": "64a920e1d7b3c01f5f05a2eb33782ade642762af", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/cb5395a2ba10fecd481254bfbf5026ea905f04f6", + "reference": "cb5395a2ba10fecd481254bfbf5026ea905f04f6", "shasum": "" }, "require": { @@ -2348,7 +2348,7 @@ "type": "github" } ], - "time": "2020-12-24T14:52:38+00:00" + "time": "2020-12-26T14:52:34+00:00" }, { "name": "ergebnis/test-util", From c3afc25136b61e1a8cc8eecedd66b9c4fda08208 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Dec 2020 05:05:54 +0000 Subject: [PATCH 108/305] composer(deps-dev): bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.9.0 to 2.13.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.9.0...2.13.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 82 ++++++++++++++++++++++++++------------------------- 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/composer.json b/composer.json index fabc2b4e..67ed7495 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.9.0", + "ergebnis/composer-normalize": "^2.13.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.10.0", "ergebnis/test-util": "^1.4.0", diff --git a/composer.lock b/composer.lock index 512df449..5bc5288a 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": "a0dd6e05020a7ec53b9c80f03fe823f7", + "content-hash": "975cce6ea25aab49f71a3a2119ffd0de", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2014,47 +2014,49 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.9.0", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "4b77c0ee53cde3d868b359b7ecadfb9797df955c" + "reference": "23f34eb43d8c4fccc7acb9173488f48e102f7a30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/4b77c0ee53cde3d868b359b7ecadfb9797df955c", - "reference": "4b77c0ee53cde3d868b359b7ecadfb9797df955c", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/23f34eb43d8c4fccc7acb9173488f48e102f7a30", + "reference": "23f34eb43d8c4fccc7acb9173488f48e102f7a30", "shasum": "" }, "require": { "composer-plugin-api": "^1.1.0 || ^2.0.0", - "ergebnis/json-normalizer": "~0.13.1", + "ergebnis/json-normalizer": "^1.0.1", "ergebnis/json-printer": "^3.1.1", "justinrainbow/json-schema": "^5.2.10", "localheinz/diff": "^1.1.1", "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "^1.10.15 || ^2.0.0", - "composer/package-versions-deprecated": "^1.11.99", + "composer/composer": "^1.10.19 || ^2.0.8", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.3.0", - "ergebnis/phpstan-rules": "~0.15.2", - "ergebnis/test-util": "^1.3.0", - "jangregor/phpstan-prophecy": "~0.8.0", - "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.50", - "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.5", - "phpunit/phpunit": "^8.5.8", + "ergebnis/php-cs-fixer-config": "^2.10.0", + "ergebnis/phpstan-rules": "~0.15.3", + "ergebnis/test-util": "^1.4.0", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.64", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.17", + "phpstan/phpstan-strict-rules": "~0.12.7", + "phpunit/phpunit": "^8.5.13", "psalm/plugin-phpunit": "~0.12.2", - "symfony/filesystem": "^5.1.7", + "symfony/filesystem": "^5.1.8", "vimeo/psalm": "^3.18.2" }, "type": "composer-plugin", "extra": { - "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin" + "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin", + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } }, "autoload": { "psr-4": { @@ -2085,43 +2087,43 @@ "type": "github" } ], - "time": "2020-10-21T08:45:29+00:00" + "time": "2020-12-30T16:06:10+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "0.13.1", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "82897f7a0b6a896462a08ac02bee33ccf4ece0bb" + "reference": "f80e5603ab425b49539951b0a684e138be6ee9a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/82897f7a0b6a896462a08ac02bee33ccf4ece0bb", - "reference": "82897f7a0b6a896462a08ac02bee33ccf4ece0bb", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/f80e5603ab425b49539951b0a684e138be6ee9a7", + "reference": "f80e5603ab425b49539951b0a684e138be6ee9a7", "shasum": "" }, "require": { - "ergebnis/json-printer": "^3.1.0", + "ergebnis/json-printer": "^3.1.1", "ext-json": "*", "justinrainbow/json-schema": "^5.2.10", "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/license": "^1.0.0", - "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/phpstan-rules": "~0.15.2", - "ergebnis/test-util": "^1.1.0", + "ergebnis/license": "^1.1.0", + "ergebnis/php-cs-fixer-config": "^2.10.0", + "ergebnis/phpstan-rules": "~0.15.3", + "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", - "jangregor/phpstan-prophecy": "~0.8.0", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.40", - "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.4", - "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", - "vimeo/psalm": "^3.14.2" + "jangregor/phpstan-prophecy": "~0.8.1", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.60", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.17", + "phpstan/phpstan-strict-rules": "~0.12.7", + "phpunit/phpunit": "^8.5.13", + "psalm/plugin-phpunit": "~0.12.2", + "vimeo/psalm": "^3.18" }, "type": "library", "autoload": { @@ -2151,7 +2153,7 @@ "type": "github" } ], - "time": "2020-08-30T12:00:06+00:00" + "time": "2020-12-30T15:16:58+00:00" }, { "name": "ergebnis/json-printer", From 252d27d8be73ecd5e7c5dcf05e202db997768eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Fri, 1 Jan 2021 14:20:05 +0100 Subject: [PATCH 109/305] Enhancement: Update license year --- .php_cs | 2 +- LICENSE.md | 2 +- src/Classes/FinalRule.php | 2 +- src/Classes/NoExtendsRule.php | 2 +- src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php | 2 +- src/Closures/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Closures/NoParameterWithNullDefaultValueRule.php | 2 +- src/Closures/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Expressions/NoCompactRule.php | 2 +- src/Expressions/NoEmptyRule.php | 2 +- src/Expressions/NoErrorSuppressionRule.php | 2 +- src/Expressions/NoEvalRule.php | 2 +- src/Expressions/NoIssetRule.php | 2 +- src/Files/DeclareStrictTypesRule.php | 2 +- src/Functions/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Functions/NoParameterWithNullDefaultValueRule.php | 2 +- src/Functions/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Methods/FinalInAbstractClassRule.php | 2 +- src/Methods/NoConstructorParameterWithDefaultValueRule.php | 2 +- src/Methods/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Methods/NoParameterWithContainerTypeDeclarationRule.php | 2 +- src/Methods/NoParameterWithNullDefaultValueRule.php | 2 +- src/Methods/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Methods/PrivateInFinalClassRule.php | 2 +- src/Statements/NoSwitchRule.php | 2 +- test/AutoReview/SrcCodeTest.php | 2 +- test/AutoReview/TestCodeTest.php | 2 +- test/Integration/AbstractTestCase.php | 2 +- test/Integration/Classes/FinalRuleTest.php | 2 +- .../Classes/FinalRuleWithAbstractClassesAllowedTest.php | 2 +- .../Integration/Classes/FinalRuleWithExcludedClassNamesTest.php | 2 +- test/Integration/Classes/NoExtendsRuleTest.php | 2 +- .../Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php | 2 +- .../Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php | 2 +- .../Closures/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Closures/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../Closures/NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Expressions/NoCompactRuleTest.php | 2 +- test/Integration/Expressions/NoEmptyRuleTest.php | 2 +- test/Integration/Expressions/NoErrorSuppressionRuleTest.php | 2 +- test/Integration/Expressions/NoEvalRuleTest.php | 2 +- test/Integration/Expressions/NoIssetRuleTest.php | 2 +- test/Integration/Files/DeclareStrictTypesRuleTest.php | 2 +- .../Functions/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Functions/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Methods/FinalInAbstractClassRuleTest.php | 2 +- .../Methods/NoConstructorParameterWithDefaultValueRuleTest.php | 2 +- .../Methods/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Methods/NoParameterWithContainerTypeDeclarationRuleTest.php | 2 +- .../Methods/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../Methods/NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Methods/PrivateInFinalClassRuleTest.php | 2 +- test/Integration/Statements/NoSwitchRuleTest.php | 2 +- 54 files changed, 54 insertions(+), 54 deletions(-) diff --git a/.php_cs b/.php_cs index ca937a5f..20b509d8 100644 --- a/.php_cs +++ b/.php_cs @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/LICENSE.md b/LICENSE.md index 2aa4353a..6a472f62 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # The MIT License (MIT) -Copyright (c) 2018-2020 Andreas Möller +Copyright (c) 2018-2021 Andreas Möller Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the _Software_), to deal in the Software without restriction, including without limitation the diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index 07ae514a..79d09969 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Classes/NoExtendsRule.php b/src/Classes/NoExtendsRule.php index 677b1815..03abf5da 100644 --- a/src/Classes/NoExtendsRule.php +++ b/src/Classes/NoExtendsRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index ccfaa66e..bcfb38d2 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoNullableReturnTypeDeclarationRule.php b/src/Closures/NoNullableReturnTypeDeclarationRule.php index 4a7dd5d2..194ad926 100644 --- a/src/Closures/NoNullableReturnTypeDeclarationRule.php +++ b/src/Closures/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoParameterWithNullDefaultValueRule.php b/src/Closures/NoParameterWithNullDefaultValueRule.php index ebef9de3..b4dff496 100644 --- a/src/Closures/NoParameterWithNullDefaultValueRule.php +++ b/src/Closures/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php index ee7450fc..9f4ba6d0 100644 --- a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoCompactRule.php b/src/Expressions/NoCompactRule.php index 949021a5..bd45c357 100644 --- a/src/Expressions/NoCompactRule.php +++ b/src/Expressions/NoCompactRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoEmptyRule.php b/src/Expressions/NoEmptyRule.php index 848159b9..b7146729 100644 --- a/src/Expressions/NoEmptyRule.php +++ b/src/Expressions/NoEmptyRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoErrorSuppressionRule.php b/src/Expressions/NoErrorSuppressionRule.php index f0940f34..73c82cb6 100644 --- a/src/Expressions/NoErrorSuppressionRule.php +++ b/src/Expressions/NoErrorSuppressionRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoEvalRule.php b/src/Expressions/NoEvalRule.php index 1a58b22a..9ccb38ec 100644 --- a/src/Expressions/NoEvalRule.php +++ b/src/Expressions/NoEvalRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoIssetRule.php b/src/Expressions/NoIssetRule.php index 6c2d4923..dae9c03c 100644 --- a/src/Expressions/NoIssetRule.php +++ b/src/Expressions/NoIssetRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Files/DeclareStrictTypesRule.php b/src/Files/DeclareStrictTypesRule.php index bb315d26..a5d89d2d 100644 --- a/src/Files/DeclareStrictTypesRule.php +++ b/src/Files/DeclareStrictTypesRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index e3e926fd..fe837df3 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoParameterWithNullDefaultValueRule.php b/src/Functions/NoParameterWithNullDefaultValueRule.php index e1bdae09..70cf8a4e 100644 --- a/src/Functions/NoParameterWithNullDefaultValueRule.php +++ b/src/Functions/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php index 9f3b4326..1abd966f 100644 --- a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/FinalInAbstractClassRule.php b/src/Methods/FinalInAbstractClassRule.php index edfed251..281fffc5 100644 --- a/src/Methods/FinalInAbstractClassRule.php +++ b/src/Methods/FinalInAbstractClassRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoConstructorParameterWithDefaultValueRule.php b/src/Methods/NoConstructorParameterWithDefaultValueRule.php index 4abc341f..6699d82a 100644 --- a/src/Methods/NoConstructorParameterWithDefaultValueRule.php +++ b/src/Methods/NoConstructorParameterWithDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoNullableReturnTypeDeclarationRule.php b/src/Methods/NoNullableReturnTypeDeclarationRule.php index 8761a3c4..df8131da 100644 --- a/src/Methods/NoNullableReturnTypeDeclarationRule.php +++ b/src/Methods/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index 9ae29378..c8ca9a8e 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithNullDefaultValueRule.php b/src/Methods/NoParameterWithNullDefaultValueRule.php index 74d9986e..279c31c9 100644 --- a/src/Methods/NoParameterWithNullDefaultValueRule.php +++ b/src/Methods/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php index 49bf33f2..052e88a4 100644 --- a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/PrivateInFinalClassRule.php b/src/Methods/PrivateInFinalClassRule.php index 486a80e4..13e23919 100644 --- a/src/Methods/PrivateInFinalClassRule.php +++ b/src/Methods/PrivateInFinalClassRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Statements/NoSwitchRule.php b/src/Statements/NoSwitchRule.php index edb0b511..f73af7f6 100644 --- a/src/Statements/NoSwitchRule.php +++ b/src/Statements/NoSwitchRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/AutoReview/SrcCodeTest.php b/test/AutoReview/SrcCodeTest.php index 4283ddd3..836df581 100644 --- a/test/AutoReview/SrcCodeTest.php +++ b/test/AutoReview/SrcCodeTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/AutoReview/TestCodeTest.php b/test/AutoReview/TestCodeTest.php index 507e78a6..2ab95b0c 100644 --- a/test/AutoReview/TestCodeTest.php +++ b/test/AutoReview/TestCodeTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/AbstractTestCase.php b/test/Integration/AbstractTestCase.php index 6aeb0f66..415e3d8f 100644 --- a/test/Integration/AbstractTestCase.php +++ b/test/Integration/AbstractTestCase.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleTest.php b/test/Integration/Classes/FinalRuleTest.php index 1f197c61..6166fe77 100644 --- a/test/Integration/Classes/FinalRuleTest.php +++ b/test/Integration/Classes/FinalRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php index 750e3705..c955a0b4 100644 --- a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php +++ b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php index 90614265..dce1a4bf 100644 --- a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php +++ b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/NoExtendsRuleTest.php b/test/Integration/Classes/NoExtendsRuleTest.php index 527c375f..0a215536 100644 --- a/test/Integration/Classes/NoExtendsRuleTest.php +++ b/test/Integration/Classes/NoExtendsRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php index 8f3cc6f1..503796cb 100644 --- a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php +++ b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php index 72d0f9d8..ac1ea73e 100644 --- a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php +++ b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php index 92fe728b..0bc14eb4 100644 --- a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php index c0de9ca1..e6fa6ff5 100644 --- a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php index 13aac582..7b9f4792 100644 --- a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoCompactRuleTest.php b/test/Integration/Expressions/NoCompactRuleTest.php index 9fded84a..d71f636e 100644 --- a/test/Integration/Expressions/NoCompactRuleTest.php +++ b/test/Integration/Expressions/NoCompactRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoEmptyRuleTest.php b/test/Integration/Expressions/NoEmptyRuleTest.php index 3b776715..8a27aff4 100644 --- a/test/Integration/Expressions/NoEmptyRuleTest.php +++ b/test/Integration/Expressions/NoEmptyRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php index fc03209a..46f0fc1b 100644 --- a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php +++ b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoEvalRuleTest.php b/test/Integration/Expressions/NoEvalRuleTest.php index a1bd3e7b..4cd2300a 100644 --- a/test/Integration/Expressions/NoEvalRuleTest.php +++ b/test/Integration/Expressions/NoEvalRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoIssetRuleTest.php b/test/Integration/Expressions/NoIssetRuleTest.php index db444309..5ab8b0a2 100644 --- a/test/Integration/Expressions/NoIssetRuleTest.php +++ b/test/Integration/Expressions/NoIssetRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Files/DeclareStrictTypesRuleTest.php b/test/Integration/Files/DeclareStrictTypesRuleTest.php index 32a82a51..d3bc2e6c 100644 --- a/test/Integration/Files/DeclareStrictTypesRuleTest.php +++ b/test/Integration/Files/DeclareStrictTypesRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php index c0028720..ae4878cd 100644 --- a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php index 88923e36..a6e4f569 100644 --- a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php index f7e3a200..e14c5c4c 100644 --- a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/FinalInAbstractClassRuleTest.php b/test/Integration/Methods/FinalInAbstractClassRuleTest.php index 59bebec3..075b45b7 100644 --- a/test/Integration/Methods/FinalInAbstractClassRuleTest.php +++ b/test/Integration/Methods/FinalInAbstractClassRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php index 56e8bcc0..40436c75 100644 --- a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php index 05aa287e..be24885c 100644 --- a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php index 6c282d9e..cba19974 100644 --- a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php index da9a1205..c95d1c70 100644 --- a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php index 65df833b..6a59ad6c 100644 --- a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/PrivateInFinalClassRuleTest.php b/test/Integration/Methods/PrivateInFinalClassRuleTest.php index 444cbcde..f45b78fe 100644 --- a/test/Integration/Methods/PrivateInFinalClassRuleTest.php +++ b/test/Integration/Methods/PrivateInFinalClassRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Statements/NoSwitchRuleTest.php b/test/Integration/Statements/NoSwitchRuleTest.php index e4577ce8..3fec3762 100644 --- a/test/Integration/Statements/NoSwitchRuleTest.php +++ b/test/Integration/Statements/NoSwitchRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2021 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. From 30f306f9ae1d0df9716e76c381dbd2ee3169fac2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Jan 2021 13:23:32 +0000 Subject: [PATCH 110/305] composer(deps-dev): bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.13.0 to 2.13.2. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.13.0...2.13.2) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 67ed7495..d0bf46ca 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.13.0", + "ergebnis/composer-normalize": "^2.13.2", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.10.0", "ergebnis/test-util": "^1.4.0", diff --git a/composer.lock b/composer.lock index 5bc5288a..ef10e889 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": "975cce6ea25aab49f71a3a2119ffd0de", + "content-hash": "e70ee5da975da98a27e485dec592486b", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2014,21 +2014,21 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.13.0", + "version": "2.13.2", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "23f34eb43d8c4fccc7acb9173488f48e102f7a30" + "reference": "1255dbc6acb55cb439ce871513b3877a43473a59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/23f34eb43d8c4fccc7acb9173488f48e102f7a30", - "reference": "23f34eb43d8c4fccc7acb9173488f48e102f7a30", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/1255dbc6acb55cb439ce871513b3877a43473a59", + "reference": "1255dbc6acb55cb439ce871513b3877a43473a59", "shasum": "" }, "require": { "composer-plugin-api": "^1.1.0 || ^2.0.0", - "ergebnis/json-normalizer": "^1.0.1", + "ergebnis/json-normalizer": "^1.0.2", "ergebnis/json-printer": "^3.1.1", "justinrainbow/json-schema": "^5.2.10", "localheinz/diff": "^1.1.1", @@ -2087,20 +2087,20 @@ "type": "github" } ], - "time": "2020-12-30T16:06:10+00:00" + "time": "2020-12-31T09:51:22+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "f80e5603ab425b49539951b0a684e138be6ee9a7" + "reference": "6da58f6b555959c07724181744664e732555d0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/f80e5603ab425b49539951b0a684e138be6ee9a7", - "reference": "f80e5603ab425b49539951b0a684e138be6ee9a7", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/6da58f6b555959c07724181744664e732555d0be", + "reference": "6da58f6b555959c07724181744664e732555d0be", "shasum": "" }, "require": { @@ -2153,7 +2153,7 @@ "type": "github" } ], - "time": "2020-12-30T15:16:58+00:00" + "time": "2020-12-31T09:27:51+00:00" }, { "name": "ergebnis/json-printer", From a32d358bff1886d13f5040ebc4f979a8c9fdf141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 2 Jan 2021 15:45:33 +0100 Subject: [PATCH 111/305] Enhancement: Synchronize with ergebnis/php-library-template --- .github/dependabot.yaml | 2 +- .github/settings.yml | 8 ++++---- .github/workflows/integrate.yaml | 19 ++++++++----------- .github/workflows/renew.yaml | 27 ++++++++++----------------- README.md | 8 ++++---- 5 files changed, 27 insertions(+), 37 deletions(-) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index bfdee0ab..1eedeb94 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -19,7 +19,7 @@ updates: - ">= 0" labels: - "dependency" - open-pull-requests-limit: 1 + open-pull-requests-limit: 10 package-ecosystem: "composer" schedule: interval: "daily" diff --git a/.github/settings.yml b/.github/settings.yml index c4cec541..d96ea741 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -14,11 +14,11 @@ branches: required_approving_review_count: 1 required_status_checks: contexts: - - "Code Coverage (7.4, locked)" + - "Code Coverage (7.2, locked)" - "Coding Standards (7.2, locked)" - - "Dependency Analysis (7.4, locked)" - - "Mutation Tests (7.4, locked)" - - "Static Code Analysis (7.4, locked)" + - "Dependency Analysis (7.2, locked)" + - "Mutation Tests (7.2, locked)" + - "Static Code Analysis (7.2, locked)" - "Tests (7.2, highest)" - "Tests (7.2, locked)" - "Tests (7.2, lowest)" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 85db5e71..bb9b2709 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -9,7 +9,6 @@ on: # yamllint disable-line rule:truthy - "main" env: - ERGEBNIS_BOT_NAME: "ergebnis-bot" MIN_COVERED_MSI: 92 MIN_MSI: 83 PHP_EXTENSIONS: "mbstring" @@ -88,7 +87,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "7.2" dependencies: - "locked" @@ -130,7 +129,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "7.2" dependencies: - "locked" @@ -250,7 +249,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "7.2" dependencies: - "locked" @@ -300,7 +299,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "7.2" dependencies: - "locked" @@ -356,12 +355,11 @@ jobs: ) && ( (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'composer(deps-dev)')) || (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'github-actions(deps)')) || - (github.actor == 'ergebnis-bot' && github.event.pull_request.title == 'Enhancement: Update license year') || (github.actor == 'localheinz' && contains(github.event.pull_request.labels.*.name, 'merge')) ) steps: - - name: "Request review from @${{ env.ERGEBNIS_BOT_NAME }}" + - name: "Request review from @ergebnis-bot" uses: "actions/github-script@v3.1" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" @@ -370,7 +368,7 @@ jobs: const repository = context.repo const reviewers = [ - "${{ env.ERGEBNIS_BOT_NAME }}", + "ergebnis-bot", ] await github.pulls.requestReviewers({ @@ -380,7 +378,7 @@ jobs: reviewers: reviewers, }) - - name: "Assign @${{ env.ERGEBNIS_BOT_NAME }}" + - name: "Assign @ergebnis-bot" uses: "actions/github-script@v3.1" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" @@ -389,7 +387,7 @@ jobs: const repository = context.repo const assignees = [ - "${{ env.ERGEBNIS_BOT_NAME }}", + "ergebnis-bot", ] await github.issues.addAssignees({ @@ -401,7 +399,6 @@ jobs: - name: "Approve pull request" uses: "actions/github-script@v3.1" - if: "github.actor != '${{ env.ERGEBNIS_BOT_NAME }}'" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 6cb295f1..f28d005e 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -4,11 +4,9 @@ name: "Renew" on: # yamllint disable-line rule:truthy schedule: - - cron: "1 0 1 1 *" + - cron: "0 0 1 1 *" env: - ERGEBNIS_BOT_EMAIL: "bot@ergebn.is" - ERGEBNIS_BOT_NAME: "ergebnis-bot" PHP_EXTENSIONS: "mbstring" jobs: @@ -28,6 +26,8 @@ jobs: steps: - name: "Checkout" uses: "actions/checkout@v2.3.4" + with: + token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.9.0" @@ -65,19 +65,12 @@ jobs: restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" + run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose" - - name: "Open pull request updating license year" - uses: "gr2m/create-or-update-pull-request-action@v1.3.3" + - name: "Commit modified files" + uses: "stefanzweifel/git-auto-commit-action@v4.8.0" with: - author: "${{ env.ERGEBNIS_BOT_NAME }} <${{ env.ERGEBNIS_BOT_EMAIL }}>" - branch: "feature/license-year" - body: | - This PR - - * [x] updates the license year - commit-message: "Enhancement: Update license year" - path: "." - title: "Enhancement: Update license year" - env: - GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + commit_author: "ergebnis-bot " + commit_message: "Enhancement: Update license year" + commit_user_email: "bot@ergebn.is" + commit_user_name: "ergebnis-bot" diff --git a/README.md b/README.md index 771a404b..a3f8aa1a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # phpstan-rules -[![Integrate](https://github.com/ergebnis/phpstan-rules/workflows/Integrate/badge.svg?branch=main)](https://github.com/ergebnis/phpstan-rules/actions) -[![Prune](https://github.com/ergebnis/phpstan-rules/workflows/Prune/badge.svg?branch=main)](https://github.com/ergebnis/phpstan-rules/actions) -[![Release](https://github.com/ergebnis/phpstan-rules/workflows/Release/badge.svg?branch=main)](https://github.com/ergebnis/phpstan-rules/actions) -[![Renew](https://github.com/ergebnis/phpstan-rules/workflows/Renew/badge.svg?branch=main)](https://github.com/ergebnis/phpstan-rules/actions) +[![Integrate](https://github.com/ergebnis/phpstan-rules/workflows/Integrate/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) +[![Prune](https://github.com/ergebnis/phpstan-rules/workflows/Prune/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) +[![Release](https://github.com/ergebnis/phpstan-rules/workflows/Release/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) +[![Renew](https://github.com/ergebnis/phpstan-rules/workflows/Renew/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) [![Code Coverage](https://codecov.io/gh/ergebnis/phpstan-rules/branch/main/graph/badge.svg)](https://codecov.io/gh/ergebnis/phpstan-rules) [![Type Coverage](https://shepherd.dev/github/ergebnis/phpstan-rules/coverage.svg)](https://shepherd.dev/github/ergebnis/phpstan-rules) From 0ec9deb10d164417eb101ef7751388946fd87e57 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Jan 2021 05:50:29 +0000 Subject: [PATCH 112/305] composer(deps-dev): bump phpunit/phpunit from 8.5.13 to 8.5.14 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.13 to 8.5.14. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.13...8.5.14) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 64 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/composer.json b/composer.json index d0bf46ca..a4509390 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^8.5.13", + "phpunit/phpunit": "^8.5.14", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.18", diff --git a/composer.lock b/composer.lock index ef10e889..3565802d 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": "e70ee5da975da98a27e485dec592486b", + "content-hash": "2d6444add08c3519f841ccf470db47b6", "packages": [ { "name": "composer/package-versions-deprecated", @@ -883,6 +883,20 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpstan", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" + } + ], "time": "2019-10-22T20:20:22+00:00" }, { @@ -3087,16 +3101,16 @@ }, { "name": "phar-io/version", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae" + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae", - "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae", + "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", "shasum": "" }, "require": { @@ -3130,7 +3144,7 @@ } ], "description": "Library for handling version information and constraints", - "time": "2020-11-30T09:21:21+00:00" + "time": "2020-12-13T23:18:30+00:00" }, { "name": "php-cs-fixer/diff", @@ -3497,16 +3511,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "7.0.13", + "version": "7.0.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ad0dcd7b184e76f7198a1fe07685bfbec3ae911a" + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ad0dcd7b184e76f7198a1fe07685bfbec3ae911a", - "reference": "ad0dcd7b184e76f7198a1fe07685bfbec3ae911a", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", "shasum": "" }, "require": { @@ -3515,7 +3529,7 @@ "php": ">=7.2", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1", + "phpunit/php-token-stream": "^3.1.1 || ^4.0", "sebastian/code-unit-reverse-lookup": "^1.0.1", "sebastian/environment": "^4.2.2", "sebastian/version": "^2.0.1", @@ -3562,7 +3576,7 @@ "type": "github" } ], - "time": "2020-11-30T08:35:22+00:00" + "time": "2020-12-02T13:39:03+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3774,16 +3788,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.13", + "version": "8.5.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "8e86be391a58104ef86037ba8a846524528d784e" + "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e86be391a58104ef86037ba8a846524528d784e", - "reference": "8e86be391a58104ef86037ba8a846524528d784e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c25f79895d27b6ecd5abfa63de1606b786a461a3", + "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3", "shasum": "" }, "require": { @@ -3863,7 +3877,7 @@ "type": "github" } ], - "time": "2020-12-01T04:53:52+00:00" + "time": "2021-01-17T07:37:30+00:00" }, { "name": "pimple/pimple", @@ -5054,16 +5068,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", - "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { @@ -5075,7 +5089,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5126,7 +5140,7 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php70", @@ -5793,12 +5807,12 @@ "version": "4.1.0", "source": { "type": "git", - "url": "https://github.com/webmozart/glob.git", + "url": "https://github.com/webmozarts/glob.git", "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", + "url": "https://api.github.com/repos/webmozarts/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", "shasum": "" }, From 8cbef5d7f18fea0fa99c64dfaf28f31a55abef6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jan 2021 05:26:21 +0000 Subject: [PATCH 113/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.10.0 to 2.11.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.10.0...2.11.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 220 ++++++++++---------------------------------------- 2 files changed, 44 insertions(+), 178 deletions(-) diff --git a/composer.json b/composer.json index a4509390..441fc7d7 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.13.2", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.10.0", + "ergebnis/php-cs-fixer-config": "^2.11.0", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 3565802d..042b9525 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": "2d6444add08c3519f841ccf470db47b6", + "content-hash": "bb0f818e75a457975ff14e7cf57e1031", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1141,16 +1141,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", "shasum": "" }, "require": { @@ -1162,7 +1162,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1214,20 +1214,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { @@ -1236,7 +1236,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1290,20 +1290,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { @@ -1312,7 +1312,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1370,7 +1370,7 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/service-contracts", @@ -2300,39 +2300,44 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.10.0", + "version": "2.11.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "cb5395a2ba10fecd481254bfbf5026ea905f04f6" + "reference": "e46bd1186414d41211753c52f64400e9f0e75d63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/cb5395a2ba10fecd481254bfbf5026ea905f04f6", - "reference": "cb5395a2ba10fecd481254bfbf5026ea905f04f6", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/e46bd1186414d41211753c52f64400e9f0e75d63", + "reference": "e46bd1186414d41211753c52f64400e9f0e75d63", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.17.3", + "friendsofphp/php-cs-fixer": "~2.18.0", "php": "^7.2 || ^8.0" }, + "replace": { + "symfony/polyfill-php70": "*", + "symfony/polyfill-php71": "*", + "symfony/polyfill-php72": "*" + }, "require-dev": { - "ergebnis/composer-normalize": "^2.11.0", + "ergebnis/composer-normalize": "^2.13.2", "ergebnis/license": "^1.1.0", "ergebnis/phpstan-rules": "~0.15.3", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.64", + "phpstan/phpstan": "~0.12.67", "phpstan/phpstan-deprecation-rules": "~0.12.6", "phpstan/phpstan-phpunit": "~0.12.17", - "phpstan/phpstan-strict-rules": "~0.12.7", - "phpunit/phpunit": "^8.5.13", - "psalm/plugin-phpunit": "~0.12.2", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.14", + "psalm/plugin-phpunit": "~0.15.0", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.18" + "vimeo/psalm": "^4.4.1" }, "type": "library", "extra": { @@ -2364,7 +2369,7 @@ "type": "github" } ], - "time": "2020-12-26T14:52:34+00:00" + "time": "2021-01-18T13:09:56+00:00" }, { "name": "ergebnis/test-util", @@ -2576,16 +2581,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.17.3", + "version": "v2.18.0", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "bd32f5dd72cdfc7b53f54077f980e144bfa2f595" + "reference": "cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/bd32f5dd72cdfc7b53f54077f980e144bfa2f595", - "reference": "bd32f5dd72cdfc7b53f54077f980e144bfa2f595", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef", + "reference": "cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef", "shasum": "" }, "require": { @@ -2607,7 +2612,6 @@ "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" }, "require-dev": { - "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", "justinrainbow/json-schema": "^5.0", "keradus/cli-executor": "^1.4", "mikey179/vfsstream": "^1.6", @@ -2616,11 +2620,11 @@ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", "phpspec/prophecy-phpunit": "^1.1 || ^2.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.4.4 <9.5", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5", "phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/traits": "^1.9.1", "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", - "symfony/phpunit-bridge": "^5.1", + "symfony/phpunit-bridge": "^5.2.1", "symfony/yaml": "^3.0 || ^4.0 || ^5.0" }, "suggest": { @@ -2672,7 +2676,7 @@ "type": "github" } ], - "time": "2020-12-24T11:14:44+00:00" + "time": "2021-01-18T03:31:06+00:00" }, { "name": "infection/infection", @@ -5142,144 +5146,6 @@ ], "time": "2021-01-07T16:49:33+00:00" }, - { - "name": "symfony/polyfill-php70", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "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 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "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": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.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": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "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": "2020-10-23T14:02:19+00:00" - }, { "name": "symfony/process", "version": "v5.2.1", From 155086f302487cd0488abe9fb552b2147c875f2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jan 2021 05:39:52 +0000 Subject: [PATCH 114/305] github-actions(deps): bump actions/stale from v3.0.14 to v3.0.15 Bumps [actions/stale](https://github.com/actions/stale) from v3.0.14 to v3.0.15. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.14...86561461b92875de77a8b2d2e75f004c826e8f45) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 2dacad1b..640ce488 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.14" + uses: "actions/stale@v3.0.15" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From b444f5c3612451482c928b0cee4ccae0282ac096 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jan 2021 05:40:05 +0000 Subject: [PATCH 115/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.11.0 to 2.12.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.11.0...2.12.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index 441fc7d7..9bdd49af 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.13.2", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.11.0", + "ergebnis/php-cs-fixer-config": "^2.12.0", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 042b9525..bf723691 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": "bb0f818e75a457975ff14e7cf57e1031", + "content-hash": "8b47da13996ccb77a9d6ea9fff43c895", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2300,21 +2300,21 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.11.0", + "version": "2.12.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "e46bd1186414d41211753c52f64400e9f0e75d63" + "reference": "3185c44d933b607b834936c2ad804f69af109882" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/e46bd1186414d41211753c52f64400e9f0e75d63", - "reference": "e46bd1186414d41211753c52f64400e9f0e75d63", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/3185c44d933b607b834936c2ad804f69af109882", + "reference": "3185c44d933b607b834936c2ad804f69af109882", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.18.0", + "friendsofphp/php-cs-fixer": "~2.18.1", "php": "^7.2 || ^8.0" }, "replace": { @@ -2330,7 +2330,7 @@ "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.67", + "phpstan/phpstan": "~0.12.68", "phpstan/phpstan-deprecation-rules": "~0.12.6", "phpstan/phpstan-phpunit": "~0.12.17", "phpstan/phpstan-strict-rules": "~0.12.9", @@ -2369,7 +2369,7 @@ "type": "github" } ], - "time": "2021-01-18T13:09:56+00:00" + "time": "2021-01-22T09:12:40+00:00" }, { "name": "ergebnis/test-util", @@ -2581,16 +2581,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.18.0", + "version": "v2.18.1", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef" + "reference": "c68ff6231adb276857761e43b7ed082f164dce0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef", - "reference": "cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/c68ff6231adb276857761e43b7ed082f164dce0b", + "reference": "c68ff6231adb276857761e43b7ed082f164dce0b", "shasum": "" }, "require": { @@ -2676,7 +2676,7 @@ "type": "github" } ], - "time": "2021-01-18T03:31:06+00:00" + "time": "2021-01-21T18:50:42+00:00" }, { "name": "infection/infection", @@ -5625,12 +5625,12 @@ "version": "1.8.0", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", + "url": "https://github.com/webmozarts/assert.git", "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", "shasum": "" }, From fa65fba44fa9d97387677a532eaa96d909bf8831 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Jan 2021 05:29:16 +0000 Subject: [PATCH 116/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.12.0 to 2.12.1. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.12.0...2.12.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/composer.json b/composer.json index 9bdd49af..614c606f 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.13.2", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.12.0", + "ergebnis/php-cs-fixer-config": "^2.12.1", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index bf723691..4922683f 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": "8b47da13996ccb77a9d6ea9fff43c895", + "content-hash": "d043a77136b3042d9f31dba476ad2af7", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2300,21 +2300,21 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.12.0", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "3185c44d933b607b834936c2ad804f69af109882" + "reference": "40245b4b3971648c37cd2be275f4974725cfb664" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/3185c44d933b607b834936c2ad804f69af109882", - "reference": "3185c44d933b607b834936c2ad804f69af109882", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/40245b4b3971648c37cd2be275f4974725cfb664", + "reference": "40245b4b3971648c37cd2be275f4974725cfb664", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.18.1", + "friendsofphp/php-cs-fixer": "~2.18.2", "php": "^7.2 || ^8.0" }, "replace": { @@ -2330,12 +2330,12 @@ "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.68", + "phpstan/phpstan": "~0.12.69", "phpstan/phpstan-deprecation-rules": "~0.12.6", "phpstan/phpstan-phpunit": "~0.12.17", "phpstan/phpstan-strict-rules": "~0.12.9", "phpunit/phpunit": "^8.5.14", - "psalm/plugin-phpunit": "~0.15.0", + "psalm/plugin-phpunit": "~0.15.1", "symfony/filesystem": "^4.4.0", "vimeo/psalm": "^4.4.1" }, @@ -2369,7 +2369,7 @@ "type": "github" } ], - "time": "2021-01-22T09:12:40+00:00" + "time": "2021-01-26T08:32:03+00:00" }, { "name": "ergebnis/test-util", @@ -2581,16 +2581,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.18.1", + "version": "v2.18.2", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "c68ff6231adb276857761e43b7ed082f164dce0b" + "reference": "18f8c9d184ba777380794a389fabc179896ba913" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/c68ff6231adb276857761e43b7ed082f164dce0b", - "reference": "c68ff6231adb276857761e43b7ed082f164dce0b", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/18f8c9d184ba777380794a389fabc179896ba913", + "reference": "18f8c9d184ba777380794a389fabc179896ba913", "shasum": "" }, "require": { @@ -2676,7 +2676,7 @@ "type": "github" } ], - "time": "2021-01-21T18:50:42+00:00" + "time": "2021-01-26T00:22:21+00:00" }, { "name": "infection/infection", From 93fbe11f017b605636315d845f5aec14b162d65e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Feb 2021 05:54:45 +0000 Subject: [PATCH 117/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.12.1 to 2.13.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.12.1...2.13.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 241 +++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 188 insertions(+), 55 deletions(-) diff --git a/composer.json b/composer.json index 614c606f..05a017a7 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.13.2", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.12.1", + "ergebnis/php-cs-fixer-config": "^2.13.0", "ergebnis/test-util": "^1.4.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 4922683f..c3a7911d 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": "d043a77136b3042d9f31dba476ad2af7", + "content-hash": "3cf9d3d691af522e6bb39b256e6ce673", "packages": [ { "name": "composer/package-versions-deprecated", @@ -997,16 +997,16 @@ }, { "name": "symfony/console", - "version": "v4.4.18", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "12e071278e396cc3e1c149857337e9e192deca0b" + "reference": "24026c44fc37099fa145707fecd43672831b837a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/12e071278e396cc3e1c149857337e9e192deca0b", - "reference": "12e071278e396cc3e1c149857337e9e192deca0b", + "url": "https://api.github.com/repos/symfony/console/zipball/24026c44fc37099fa145707fecd43672831b837a", + "reference": "24026c44fc37099fa145707fecd43672831b837a", "shasum": "" }, "require": { @@ -1063,7 +1063,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "funding": [ { @@ -1079,20 +1079,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T07:41:31+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/finder", - "version": "v4.4.18", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b" + "reference": "25d79cfccfc12e84e7a63a248c3f0720fdd92db6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b", - "reference": "ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b", + "url": "https://api.github.com/repos/symfony/finder/zipball/25d79cfccfc12e84e7a63a248c3f0720fdd92db6", + "reference": "25d79cfccfc12e84e7a63a248c3f0720fdd92db6", "shasum": "" }, "require": { @@ -1121,7 +1121,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "funding": [ { @@ -1137,7 +1137,7 @@ "type": "tidelift" } ], - "time": "2020-12-08T16:59:59+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -2300,16 +2300,16 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.12.1", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "40245b4b3971648c37cd2be275f4974725cfb664" + "reference": "b1ea74fb5b013293ef06566a0b5dc1a81b49bb21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/40245b4b3971648c37cd2be275f4974725cfb664", - "reference": "40245b4b3971648c37cd2be275f4974725cfb664", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/b1ea74fb5b013293ef06566a0b5dc1a81b49bb21", + "reference": "b1ea74fb5b013293ef06566a0b5dc1a81b49bb21", "shasum": "" }, "require": { @@ -2317,11 +2317,6 @@ "friendsofphp/php-cs-fixer": "~2.18.2", "php": "^7.2 || ^8.0" }, - "replace": { - "symfony/polyfill-php70": "*", - "symfony/polyfill-php71": "*", - "symfony/polyfill-php72": "*" - }, "require-dev": { "ergebnis/composer-normalize": "^2.13.2", "ergebnis/license": "^1.1.0", @@ -2330,7 +2325,7 @@ "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.69", + "phpstan/phpstan": "~0.12.70", "phpstan/phpstan-deprecation-rules": "~0.12.6", "phpstan/phpstan-phpunit": "~0.12.17", "phpstan/phpstan-strict-rules": "~0.12.9", @@ -2369,7 +2364,7 @@ "type": "github" } ], - "time": "2021-01-26T08:32:03+00:00" + "time": "2021-01-30T10:07:31+00:00" }, { "name": "ergebnis/test-util", @@ -4791,16 +4786,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.18", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "5d4c874b0eb1c32d40328a09dbc37307a5a910b0" + "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5d4c874b0eb1c32d40328a09dbc37307a5a910b0", - "reference": "5d4c874b0eb1c32d40328a09dbc37307a5a910b0", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", + "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", "shasum": "" }, "require": { @@ -4851,7 +4846,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony EventDispatcher Component", + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "funding": [ { @@ -4867,7 +4862,7 @@ "type": "tidelift" } ], - "time": "2020-12-18T07:41:31+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4947,16 +4942,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d" + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/fa8f8cab6b65e2d99a118e082935344c5ba8c60d", - "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/262d033b57c73e8b59cd6e68a45c528318b15038", + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038", "shasum": "" }, "require": { @@ -4986,7 +4981,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Filesystem Component", + "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "funding": [ { @@ -5002,20 +4997,20 @@ "type": "tidelift" } ], - "time": "2020-11-30T17:05:38+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "87a2a4a766244e796dd9cb9d6f58c123358cd986" + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/87a2a4a766244e796dd9cb9d6f58c123358cd986", - "reference": "87a2a4a766244e796dd9cb9d6f58c123358cd986", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", "shasum": "" }, "require": { @@ -5047,7 +5042,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony OptionsResolver Component", + "description": "Provides an improved replacement for the array_replace PHP function", "homepage": "https://symfony.com", "keywords": [ "config", @@ -5068,7 +5063,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:08:07+00:00" + "time": "2021-01-27T12:56:27+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5146,18 +5141,156 @@ ], "time": "2021-01-07T16:49:33+00:00" }, + { + "name": "symfony/polyfill-php70", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "metapackage", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "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 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.22.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.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": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "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-01-07T16:49:33+00:00" + }, { "name": "symfony/process", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd" + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd", - "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd", + "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", "shasum": "" }, "require": { @@ -5187,7 +5320,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "funding": [ { @@ -5203,20 +5336,20 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:03:37+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "2b105c0354f39a63038a1d8bf776ee92852813af" + "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/2b105c0354f39a63038a1d8bf776ee92852813af", - "reference": "2b105c0354f39a63038a1d8bf776ee92852813af", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b12274acfab9d9850c52583d136a24398cdf1a0c", + "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c", "shasum": "" }, "require": { @@ -5246,7 +5379,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Stopwatch Component", + "description": "Provides a way to profile code", "homepage": "https://symfony.com", "funding": [ { @@ -5262,7 +5395,7 @@ "type": "tidelift" } ], - "time": "2020-11-01T16:14:45+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/yaml", From 34d320b777860fc32025688bf71ae91ef140688a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Feb 2021 05:19:55 +0000 Subject: [PATCH 118/305] github-actions(deps): bump actions/cache from v2.1.3 to v2.1.4 Bumps [actions/cache](https://github.com/actions/cache) from v2.1.3 to v2.1.4. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.3...26968a09c0ea4f3e233fdddbafd1166051a095f6) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 18 +++++++++--------- .github/workflows/renew.yaml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index bb9b2709..cea039a8 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -52,7 +52,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -70,7 +70,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" @@ -107,7 +107,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -149,7 +149,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -164,7 +164,7 @@ jobs: run: "mkdir -p .build/phpstan" - name: "Cache cache directory for phpstan/phpstan" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: ".build/phpstan" key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" @@ -177,7 +177,7 @@ jobs: run: "mkdir -p .build/psalm" - name: "Cache cache directory for vimeo/psalm" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: ".build/psalm" key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" @@ -221,7 +221,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -272,7 +272,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -319,7 +319,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index f28d005e..0d56620c 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -43,7 +43,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -58,7 +58,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.3" + uses: "actions/cache@v2.1.4" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" From 5d4e9536942131bbcc9b539e75d677cea871a1e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Feb 2021 05:28:30 +0000 Subject: [PATCH 119/305] github-actions(deps): bump actions/stale from v3.0.15 to v3.0.16 Bumps [actions/stale](https://github.com/actions/stale) from v3.0.15 to v3.0.16. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.15...9d6f46564a515a9ea11e7762ab3957ee58ca50da) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 640ce488..d27d7523 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.15" + uses: "actions/stale@v3.0.16" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From f7e8c51c761d9886a54f042419fdc9b833e9e625 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Feb 2021 05:18:54 +0000 Subject: [PATCH 120/305] github-actions(deps): bump actions/stale from v3.0.16 to v3.0.17 Bumps [actions/stale](https://github.com/actions/stale) from v3.0.16 to v3.0.17. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.16...996798eb71ef485dc4c7b4d3285842d714040c4a) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index d27d7523..c855852f 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.16" + uses: "actions/stale@v3.0.17" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From 42491303d38bc6c09c26c222be819b4f2545298b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Feb 2021 05:27:50 +0000 Subject: [PATCH 121/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from v4.8.0 to v4.9.0. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.8.0...268ec0c24022281e267b095789643cf0db356bc6) Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 0d56620c..c90d1aa2 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.8.0" + uses: "stefanzweifel/git-auto-commit-action@v4.9.0" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From f01d68412aa64f9d6754c5c53d3d934c374178bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Feb 2021 05:19:15 +0000 Subject: [PATCH 122/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from v4.9.0 to v4.9.1. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.9.0...296e083b4c312cf3438feb21957a85fa9677f61d) Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index c90d1aa2..0936d30d 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.9.0" + uses: "stefanzweifel/git-auto-commit-action@v4.9.1" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From bf8b552f9cc213334583256fc292250dae7a9247 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Feb 2021 05:19:16 +0000 Subject: [PATCH 123/305] github-actions(deps): bump shivammathur/setup-php from 2.9.0 to 2.10.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.9.0 to 2.10.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.9.0...fa18c2b29fb5bc1e52e8cf211aad2aaa9b79d232) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index cea039a8..ba69ef5c 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.9.0" + uses: "shivammathur/setup-php@2.10.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -97,7 +97,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.9.0" + uses: "shivammathur/setup-php@2.10.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -139,7 +139,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.9.0" + uses: "shivammathur/setup-php@2.10.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -208,7 +208,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.9.0" + uses: "shivammathur/setup-php@2.10.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -259,7 +259,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.9.0" + uses: "shivammathur/setup-php@2.10.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -309,7 +309,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.9.0" + uses: "shivammathur/setup-php@2.10.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index c90d1aa2..53ae81ee 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.9.0" + uses: "shivammathur/setup-php@2.10.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 8567fa82d98c7744652944c1dd18c71615de9f53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Mar 2021 05:16:25 +0000 Subject: [PATCH 124/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from v4.9.1 to v4.9.2. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.9.1...be7095c202abcf573b09f20541e0ee2f6a3a9d9b) Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index ce3a1743..9d4479d7 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.9.1" + uses: "stefanzweifel/git-auto-commit-action@v4.9.2" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From b30bbd2aa1aae2d9a4fddb959307852b9709dd4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Mar 2021 05:29:19 +0000 Subject: [PATCH 125/305] github-actions(deps): bump actions/stale from v3.0.17 to v3.0.18 Bumps [actions/stale](https://github.com/actions/stale) from v3.0.17 to v3.0.18. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.17...3b3c3f03cd4d8e2b61e179ef744a0d20efbe90b4) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index c855852f..94e62f4c 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.17" + uses: "actions/stale@v3.0.18" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From 5570908c1d4a265fd471f828ea5bf3c059c65997 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Mar 2021 05:30:43 +0000 Subject: [PATCH 126/305] composer(deps-dev): bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.13.2 to 2.13.3. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.13.2...2.13.3) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 46 +++++++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/composer.json b/composer.json index 05a017a7..8c85afea 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.13.2", + "ergebnis/composer-normalize": "^2.13.3", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.13.0", "ergebnis/test-util": "^1.4.0", diff --git a/composer.lock b/composer.lock index c3a7911d..5707b287 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": "3cf9d3d691af522e6bb39b256e6ce673", + "content-hash": "c7cbc608c640d650ba23bcd4f0f898a8", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2028,21 +2028,21 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.13.2", + "version": "2.13.3", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "1255dbc6acb55cb439ce871513b3877a43473a59" + "reference": "eff003890c655ee0e4b6ac5d4c5b40ce61247f7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/1255dbc6acb55cb439ce871513b3877a43473a59", - "reference": "1255dbc6acb55cb439ce871513b3877a43473a59", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/eff003890c655ee0e4b6ac5d4c5b40ce61247f7c", + "reference": "eff003890c655ee0e4b6ac5d4c5b40ce61247f7c", "shasum": "" }, "require": { "composer-plugin-api": "^1.1.0 || ^2.0.0", - "ergebnis/json-normalizer": "^1.0.2", + "ergebnis/json-normalizer": "^1.0.3", "ergebnis/json-printer": "^3.1.1", "justinrainbow/json-schema": "^5.2.10", "localheinz/diff": "^1.1.1", @@ -2051,18 +2051,18 @@ "require-dev": { "composer/composer": "^1.10.19 || ^2.0.8", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.10.0", + "ergebnis/php-cs-fixer-config": "^2.13.0", "ergebnis/phpstan-rules": "~0.15.3", "ergebnis/test-util": "^1.4.0", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.64", + "phpstan/phpstan": "~0.12.80", "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.17", - "phpstan/phpstan-strict-rules": "~0.12.7", - "phpunit/phpunit": "^8.5.13", - "psalm/plugin-phpunit": "~0.12.2", - "symfony/filesystem": "^5.1.8", - "vimeo/psalm": "^3.18.2" + "phpstan/phpstan-phpunit": "~0.12.18", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.14", + "psalm/plugin-phpunit": "~0.15.0", + "symfony/filesystem": "^5.2.4", + "vimeo/psalm": "^4.6.2" }, "type": "composer-plugin", "extra": { @@ -2101,20 +2101,20 @@ "type": "github" } ], - "time": "2020-12-31T09:51:22+00:00" + "time": "2021-03-06T14:00:23+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "6da58f6b555959c07724181744664e732555d0be" + "reference": "4a7f064ce34d5a2e382564565cdd433dbc5b9494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/6da58f6b555959c07724181744664e732555d0be", - "reference": "6da58f6b555959c07724181744664e732555d0be", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/4a7f064ce34d5a2e382564565cdd433dbc5b9494", + "reference": "4a7f064ce34d5a2e382564565cdd433dbc5b9494", "shasum": "" }, "require": { @@ -2131,11 +2131,11 @@ "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.60", + "phpstan/phpstan": "~0.12.80", "phpstan/phpstan-deprecation-rules": "~0.12.6", "phpstan/phpstan-phpunit": "~0.12.17", - "phpstan/phpstan-strict-rules": "~0.12.7", - "phpunit/phpunit": "^8.5.13", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.14", "psalm/plugin-phpunit": "~0.12.2", "vimeo/psalm": "^3.18" }, @@ -2167,7 +2167,7 @@ "type": "github" } ], - "time": "2020-12-31T09:27:51+00:00" + "time": "2021-03-06T13:33:57+00:00" }, { "name": "ergebnis/json-printer", From 8ac0ca93dcdf206b3676642da4a68e0a3ea5d64a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Mar 2021 05:17:22 +0000 Subject: [PATCH 127/305] composer(deps-dev): bump phpunit/phpunit from 8.5.14 to 8.5.15 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.14 to 8.5.15. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.14...8.5.15) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 8c85afea..9fe1c048 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^8.5.14", + "phpunit/phpunit": "^8.5.15", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.18", diff --git a/composer.lock b/composer.lock index 5707b287..b7c4e8be 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": "c7cbc608c640d650ba23bcd4f0f898a8", + "content-hash": "9a0271a0f6e6fc9d60e6a668de6d9453", "packages": [ { "name": "composer/package-versions-deprecated", @@ -3100,16 +3100,16 @@ }, { "name": "phar-io/version", - "version": "3.0.4", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" + "reference": "bae7c545bef187884426f042434e561ab1ddb182" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", - "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", "shasum": "" }, "require": { @@ -3143,7 +3143,7 @@ } ], "description": "Library for handling version information and constraints", - "time": "2020-12-13T23:18:30+00:00" + "time": "2021-02-23T14:00:09+00:00" }, { "name": "php-cs-fixer/diff", @@ -3787,16 +3787,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.14", + "version": "8.5.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3" + "reference": "038d4196d8e8cb405cd5e82cedfe413ad6eef9ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c25f79895d27b6ecd5abfa63de1606b786a461a3", - "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/038d4196d8e8cb405cd5e82cedfe413ad6eef9ef", + "reference": "038d4196d8e8cb405cd5e82cedfe413ad6eef9ef", "shasum": "" }, "require": { @@ -3876,7 +3876,7 @@ "type": "github" } ], - "time": "2021-01-17T07:37:30+00:00" + "time": "2021-03-17T07:27:54+00:00" }, { "name": "pimple/pimple", @@ -5067,7 +5067,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", From 90ba16906b9715b13e634d9e8281fdfa086cee5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Mar 2021 05:08:36 +0000 Subject: [PATCH 128/305] composer(deps-dev): bump ergebnis/test-util from 1.4.0 to 1.5.0 Bumps [ergebnis/test-util](https://github.com/ergebnis/test-util) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/ergebnis/test-util/releases) - [Changelog](https://github.com/ergebnis/test-util/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/test-util/compare/1.4.0...1.5.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 95 +++++++++++++++++++++++++++++---------------------- 2 files changed, 55 insertions(+), 42 deletions(-) diff --git a/composer.json b/composer.json index 9fe1c048..8d49d1ec 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "ergebnis/composer-normalize": "^2.13.3", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.13.0", - "ergebnis/test-util": "^1.4.0", + "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", diff --git a/composer.lock b/composer.lock index b7c4e8be..3effdc70 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": "9a0271a0f6e6fc9d60e6a668de6d9453", + "content-hash": "74ac6d55b373a29f28de4d05eecbdb16", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1955,16 +1955,16 @@ }, { "name": "ergebnis/classy", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/ergebnis/classy.git", - "reference": "1479cf8af6a75b11586ab2b2a87482d090c99dfb" + "reference": "72840bda3ce8b7bdc9362e8646141eb3c5ca9947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/classy/zipball/1479cf8af6a75b11586ab2b2a87482d090c99dfb", - "reference": "1479cf8af6a75b11586ab2b2a87482d090c99dfb", + "url": "https://api.github.com/repos/ergebnis/classy/zipball/72840bda3ce8b7bdc9362e8646141eb3c5ca9947", + "reference": "72840bda3ce8b7bdc9362e8646141eb3c5ca9947", "shasum": "" }, "require": { @@ -1972,19 +1972,19 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.7.1", - "ergebnis/license": "^1.0.0", - "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/composer-normalize": "^2.13.2", + "ergebnis/license": "^1.1.0", + "ergebnis/php-cs-fixer-config": "^2.13.0", + "ergebnis/phpstan-rules": "~0.15.3", "ergebnis/test-util": "^1.0.0", "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.40", - "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-strict-rules": "~0.12.4", - "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", - "vimeo/psalm": "^3.14.2", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.70", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.14", + "psalm/plugin-phpunit": "~0.15.0", + "vimeo/psalm": "^4.4.1", "zendframework/zend-file": "^2.8.3" }, "type": "library", @@ -2024,7 +2024,7 @@ "type": "github" } ], - "time": "2020-08-30T10:41:50+00:00" + "time": "2021-02-01T08:25:30+00:00" }, { "name": "ergebnis/composer-normalize", @@ -2368,37 +2368,37 @@ }, { "name": "ergebnis/test-util", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/ergebnis/test-util.git", - "reference": "825611c9b3c25514f17c64d7e7b522ca060b9e7a" + "reference": "7c85925bca8b2d2985eb7a208f53114dc64c780b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/test-util/zipball/825611c9b3c25514f17c64d7e7b522ca060b9e7a", - "reference": "825611c9b3c25514f17c64d7e7b522ca060b9e7a", + "url": "https://api.github.com/repos/ergebnis/test-util/zipball/7c85925bca8b2d2985eb7a208f53114dc64c780b", + "reference": "7c85925bca8b2d2985eb7a208f53114dc64c780b", "shasum": "" }, "require": { - "ergebnis/classy": "^1.1.0", - "fakerphp/faker": "^1.11.0", + "ergebnis/classy": "^1.1.1", + "fakerphp/faker": "^1.14.1", "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.10.0", + "ergebnis/composer-normalize": "^2.13.3", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.5.2", + "ergebnis/php-cs-fixer-config": "^2.13.0", "ergebnis/phpstan-rules": "~0.15.3", "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.0.5", - "phpstan/phpstan": "~0.12.53", - "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.5", - "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.12.2", - "vimeo/psalm": "^3.18" + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.65", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.18", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.15", + "psalm/plugin-phpunit": "~0.15.1", + "vimeo/psalm": "^4.7.0" }, "type": "library", "extra": { @@ -2436,24 +2436,26 @@ "type": "github" } ], - "time": "2020-11-17T17:57:47+00:00" + "time": "2021-03-30T15:07:05+00:00" }, { "name": "fakerphp/faker", - "version": "v1.11.0", + "version": "v1.14.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "f228dc5112bafc14c77d40a2acc0c48058e184b0" + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/f228dc5112bafc14c77d40a2acc0c48058e184b0", - "reference": "f228dc5112bafc14c77d40a2acc0c48058e184b0", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.1 || ^8.0", + "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.2" }, "conflict": { "fzaninotto/faker": "*" @@ -2461,9 +2463,20 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", "ext-intl": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.4.2" + "symfony/phpunit-bridge": "^4.4 || ^5.2" + }, + "suggest": { + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "v1.15-dev" + } + }, "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -2484,7 +2497,7 @@ "faker", "fixtures" ], - "time": "2020-11-15T20:27:00+00:00" + "time": "2021-03-30T06:27:33+00:00" }, { "name": "felixfbecker/advanced-json-rpc", From 0092007d6d09aba5215b599229e283f6df573fd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Apr 2021 05:18:30 +0000 Subject: [PATCH 129/305] github-actions(deps): bump actions/cache from v2.1.4 to v2.1.5 Bumps [actions/cache](https://github.com/actions/cache) from v2.1.4 to v2.1.5. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.4...1a9e2138d905efd099035b49d8b7a3888c653ca8) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 18 +++++++++--------- .github/workflows/renew.yaml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index ba69ef5c..28ac8859 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -52,7 +52,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -70,7 +70,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" @@ -107,7 +107,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -149,7 +149,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -164,7 +164,7 @@ jobs: run: "mkdir -p .build/phpstan" - name: "Cache cache directory for phpstan/phpstan" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: ".build/phpstan" key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" @@ -177,7 +177,7 @@ jobs: run: "mkdir -p .build/psalm" - name: "Cache cache directory for vimeo/psalm" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: ".build/psalm" key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" @@ -221,7 +221,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -272,7 +272,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -319,7 +319,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 9d4479d7..edfbc07a 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -43,7 +43,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -58,7 +58,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.4" + uses: "actions/cache@v2.1.5" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" From 148294c8f9e013949b86416d07a294765ab9a1bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Apr 2021 05:18:32 +0000 Subject: [PATCH 130/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from v4.9.2 to v4.10.0. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.9.2...48d37c1ffbe4639e16d47fef924857386bc4a44a) Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 9d4479d7..d8a2e6bb 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.9.2" + uses: "stefanzweifel/git-auto-commit-action@v4.10.0" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From a756372d9c6a54fc9cc519456695bb56af612715 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Apr 2021 05:10:12 +0000 Subject: [PATCH 131/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.13.0 to 2.13.1. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.13.0...2.13.1) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 133 ++++++++++++++++++++++++-------------------------- 2 files changed, 66 insertions(+), 69 deletions(-) diff --git a/composer.json b/composer.json index 8d49d1ec..1cbdeea8 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.13.3", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.13.0", + "ergebnis/php-cs-fixer-config": "^2.13.1", "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index 3effdc70..abb5c5c3 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": "74ac6d55b373a29f28de4d05eecbdb16", + "content-hash": "18c4f5519bf11b6e24a056936892fdf2", "packages": [ { "name": "composer/package-versions-deprecated", @@ -77,16 +77,16 @@ }, { "name": "composer/xdebug-handler", - "version": "1.4.5", + "version": "1.4.6", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f28d44c286812c714741478d968104c5e604a1d4" + "reference": "f27e06cd9675801df441b3656569b328e04aa37c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", - "reference": "f28d44c286812c714741478d968104c5e604a1d4", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", + "reference": "f27e06cd9675801df441b3656569b328e04aa37c", "shasum": "" }, "require": { @@ -94,7 +94,8 @@ "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "autoload": { @@ -131,7 +132,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T08:04:11+00:00" + "time": "2021-03-25T17:01:18+00:00" }, { "name": "jean85/pretty-package-versions", @@ -997,16 +998,16 @@ }, { "name": "symfony/console", - "version": "v4.4.19", + "version": "v4.4.21", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "24026c44fc37099fa145707fecd43672831b837a" + "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/24026c44fc37099fa145707fecd43672831b837a", - "reference": "24026c44fc37099fa145707fecd43672831b837a", + "url": "https://api.github.com/repos/symfony/console/zipball/1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", + "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", "shasum": "" }, "require": { @@ -1079,20 +1080,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-03-26T09:23:24+00:00" }, { "name": "symfony/finder", - "version": "v4.4.19", + "version": "v4.4.20", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "25d79cfccfc12e84e7a63a248c3f0720fdd92db6" + "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/25d79cfccfc12e84e7a63a248c3f0720fdd92db6", - "reference": "25d79cfccfc12e84e7a63a248c3f0720fdd92db6", + "url": "https://api.github.com/repos/symfony/finder/zipball/2543795ab1570df588b9bbd31e1a2bd7037b94f6", + "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6", "shasum": "" }, "require": { @@ -1137,20 +1138,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-02-12T10:48:09+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", - "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { @@ -1214,11 +1215,11 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -1294,7 +1295,7 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", @@ -1743,16 +1744,16 @@ }, { "name": "doctrine/annotations", - "version": "1.11.1", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad" + "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad", - "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", + "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", "shasum": "" }, "require": { @@ -1767,11 +1768,6 @@ "phpunit/phpunit": "^7.5 || ^9.1.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" @@ -1810,7 +1806,7 @@ "docblock", "parser" ], - "time": "2020-10-26T10:28:16+00:00" + "time": "2021-02-21T21:00:45+00:00" }, { "name": "doctrine/instantiator", @@ -2300,39 +2296,39 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.13.0", + "version": "2.13.1", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "b1ea74fb5b013293ef06566a0b5dc1a81b49bb21" + "reference": "6662debce39a1373b151cd2ee8e00cedd0f371b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/b1ea74fb5b013293ef06566a0b5dc1a81b49bb21", - "reference": "b1ea74fb5b013293ef06566a0b5dc1a81b49bb21", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/6662debce39a1373b151cd2ee8e00cedd0f371b1", + "reference": "6662debce39a1373b151cd2ee8e00cedd0f371b1", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.18.2", + "friendsofphp/php-cs-fixer": "~2.18.6", "php": "^7.2 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.13.2", + "ergebnis/composer-normalize": "^2.13.3", "ergebnis/license": "^1.1.0", "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.4.0", + "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.70", + "phpstan/phpstan": "~0.12.84", "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.17", + "phpstan/phpstan-phpunit": "~0.12.18", "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.14", + "phpunit/phpunit": "^8.5.15", "psalm/plugin-phpunit": "~0.15.1", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^4.4.1" + "vimeo/psalm": "^4.7.0" }, "type": "library", "extra": { @@ -2364,7 +2360,7 @@ "type": "github" } ], - "time": "2021-01-30T10:07:31+00:00" + "time": "2021-04-20T10:12:21+00:00" }, { "name": "ergebnis/test-util", @@ -2589,21 +2585,21 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.18.2", + "version": "v2.18.6", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "18f8c9d184ba777380794a389fabc179896ba913" + "reference": "5fed214993e7863cef88a08f214344891299b9e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/18f8c9d184ba777380794a389fabc179896ba913", - "reference": "18f8c9d184ba777380794a389fabc179896ba913", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/5fed214993e7863cef88a08f214344891299b9e4", + "reference": "5fed214993e7863cef88a08f214344891299b9e4", "shasum": "" }, "require": { "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.2", + "composer/xdebug-handler": "^1.2 || ^2.0", "doctrine/annotations": "^1.2", "ext-json": "*", "ext-tokenizer": "*", @@ -2660,6 +2656,7 @@ "tests/Test/IntegrationCaseFactoryInterface.php", "tests/Test/InternalIntegrationCaseFactory.php", "tests/Test/IsIdenticalConstraint.php", + "tests/Test/TokensWithObservedTransformers.php", "tests/TestCase.php" ] }, @@ -2684,7 +2681,7 @@ "type": "github" } ], - "time": "2021-01-26T00:22:21+00:00" + "time": "2021-04-19T19:45:11+00:00" }, { "name": "infection/infection", @@ -4735,16 +4732,16 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v2.2.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", "shasum": "" }, "require": { @@ -4753,7 +4750,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -4795,11 +4792,11 @@ "type": "tidelift" } ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.19", + "version": "v4.4.20", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -4955,16 +4952,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.2.2", + "version": "v5.2.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "262d033b57c73e8b59cd6e68a45c528318b15038" + "reference": "8c86a82f51658188119e62cff0a050a12d09836f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/262d033b57c73e8b59cd6e68a45c528318b15038", - "reference": "262d033b57c73e8b59cd6e68a45c528318b15038", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/8c86a82f51658188119e62cff0a050a12d09836f", + "reference": "8c86a82f51658188119e62cff0a050a12d09836f", "shasum": "" }, "require": { @@ -5010,11 +5007,11 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:01:46+00:00" + "time": "2021-03-28T14:30:26+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.2.2", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", @@ -5221,7 +5218,7 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", @@ -5294,7 +5291,7 @@ }, { "name": "symfony/process", - "version": "v5.2.2", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", @@ -5353,7 +5350,7 @@ }, { "name": "symfony/stopwatch", - "version": "v5.2.2", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", From eb6bd14a0d8047a6af1534d82293207d1e822f34 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Apr 2021 05:26:16 +0000 Subject: [PATCH 132/305] github-actions(deps): bump actions/github-script from v3.1 to v4.0.2 Bumps [actions/github-script](https://github.com/actions/github-script) from v3.1 to v4.0.2. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v3.1...a3e7071a34d7e1f219a8a4de9a5e0a34d1ee1293) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 8 ++++---- .github/workflows/triage.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 28ac8859..cf469328 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -360,7 +360,7 @@ jobs: steps: - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v3.1" + uses: "actions/github-script@v4.0.2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -379,7 +379,7 @@ jobs: }) - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v3.1" + uses: "actions/github-script@v4.0.2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -398,7 +398,7 @@ jobs: }) - name: "Approve pull request" - uses: "actions/github-script@v3.1" + uses: "actions/github-script@v4.0.2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -413,7 +413,7 @@ jobs: }) - name: "Merge pull request" - uses: "actions/github-script@v3.1" + uses: "actions/github-script@v4.0.2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index 070fc5e3..b54c3bb6 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -15,7 +15,7 @@ jobs: steps: - name: "Add labels based on branch name" - uses: "actions/github-script@v3.1" + uses: "actions/github-script@v4.0.2" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | From bb3e3dd42e65101fcbd9554d5c6d88d7e47df588 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Apr 2021 05:16:56 +0000 Subject: [PATCH 133/305] github-actions(deps): bump shivammathur/setup-php from 2.10.0 to 2.11.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.10.0 to 2.11.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.10.0...15c43e89cdef867065b0213be354c2841860869e) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index cf469328..3b15fc87 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.10.0" + uses: "shivammathur/setup-php@2.11.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -97,7 +97,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.10.0" + uses: "shivammathur/setup-php@2.11.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -139,7 +139,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.10.0" + uses: "shivammathur/setup-php@2.11.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -208,7 +208,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.10.0" + uses: "shivammathur/setup-php@2.11.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -259,7 +259,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.10.0" + uses: "shivammathur/setup-php@2.11.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -309,7 +309,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.10.0" + uses: "shivammathur/setup-php@2.11.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index c6284e15..84432adb 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.10.0" + uses: "shivammathur/setup-php@2.11.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 5a4f3f0241924a62b145ada97472e896d2efb93c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 May 2021 05:08:10 +0000 Subject: [PATCH 134/305] composer(deps-dev): bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 2.13.1 to 2.14.0. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/2.13.1...2.14.0) Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 86 +++++++++++++++++++++++++++------------------------ 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/composer.json b/composer.json index 1cbdeea8..e9d0d46f 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "require-dev": { "ergebnis/composer-normalize": "^2.13.3", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.13.1", + "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", diff --git a/composer.lock b/composer.lock index abb5c5c3..76bc5835 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": "18c4f5519bf11b6e24a056936892fdf2", + "content-hash": "e855f06cef7aaddd66f5dd419a6ecb32", "packages": [ { "name": "composer/package-versions-deprecated", @@ -951,16 +951,16 @@ }, { "name": "psr/log", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "" }, "require": { @@ -984,7 +984,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -994,20 +994,20 @@ "psr", "psr-3" ], - "time": "2020-03-23T09:12:05+00:00" + "time": "2021-05-03T11:20:27+00:00" }, { "name": "symfony/console", - "version": "v4.4.21", + "version": "v4.4.22", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23" + "reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", - "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", + "url": "https://api.github.com/repos/symfony/console/zipball/36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625", + "reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625", "shasum": "" }, "require": { @@ -1080,7 +1080,7 @@ "type": "tidelift" } ], - "time": "2021-03-26T09:23:24+00:00" + "time": "2021-04-16T17:32:19+00:00" }, { "name": "symfony/finder", @@ -2296,21 +2296,21 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.13.1", + "version": "2.14.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "6662debce39a1373b151cd2ee8e00cedd0f371b1" + "reference": "5750f9c35b447619401838e9fb9b25f64b90eb93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/6662debce39a1373b151cd2ee8e00cedd0f371b1", - "reference": "6662debce39a1373b151cd2ee8e00cedd0f371b1", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/5750f9c35b447619401838e9fb9b25f64b90eb93", + "reference": "5750f9c35b447619401838e9fb9b25f64b90eb93", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.18.6", + "friendsofphp/php-cs-fixer": "~2.19.0", "php": "^7.2 || ^8.0" }, "require-dev": { @@ -2319,16 +2319,15 @@ "ergebnis/phpstan-rules": "~0.15.3", "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", - "jangregor/phpstan-prophecy": "~0.8.1", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.84", + "phpstan/phpstan": "~0.12.85", "phpstan/phpstan-deprecation-rules": "~0.12.6", "phpstan/phpstan-phpunit": "~0.12.18", "phpstan/phpstan-strict-rules": "~0.12.9", "phpunit/phpunit": "^8.5.15", "psalm/plugin-phpunit": "~0.15.1", "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^4.7.0" + "vimeo/psalm": "^4.7.2" }, "type": "library", "extra": { @@ -2360,7 +2359,7 @@ "type": "github" } ], - "time": "2021-04-20T10:12:21+00:00" + "time": "2021-05-04T14:04:50+00:00" }, { "name": "ergebnis/test-util", @@ -2585,16 +2584,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.18.6", + "version": "v2.19.0", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "5fed214993e7863cef88a08f214344891299b9e4" + "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/5fed214993e7863cef88a08f214344891299b9e4", - "reference": "5fed214993e7863cef88a08f214344891299b9e4", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/d5b8a9d852b292c2f8a035200fa6844b1f82300b", + "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b", "shasum": "" }, "require": { @@ -2642,6 +2641,11 @@ "php-cs-fixer" ], "type": "application", + "extra": { + "branch-alias": { + "dev-master": "2.19-dev" + } + }, "autoload": { "psr-4": { "PhpCsFixer\\": "src/" @@ -2681,7 +2685,7 @@ "type": "github" } ], - "time": "2021-04-19T19:45:11+00:00" + "time": "2021-05-03T21:43:24+00:00" }, { "name": "infection/infection", @@ -4952,16 +4956,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.2.6", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "8c86a82f51658188119e62cff0a050a12d09836f" + "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/8c86a82f51658188119e62cff0a050a12d09836f", - "reference": "8c86a82f51658188119e62cff0a050a12d09836f", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0", + "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0", "shasum": "" }, "require": { @@ -5007,7 +5011,7 @@ "type": "tidelift" } ], - "time": "2021-03-28T14:30:26+00:00" + "time": "2021-04-01T10:42:13+00:00" }, { "name": "symfony/options-resolver", @@ -5291,16 +5295,16 @@ }, { "name": "symfony/process", - "version": "v5.2.4", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" + "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", - "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", + "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", + "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", "shasum": "" }, "require": { @@ -5346,20 +5350,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:15:41+00:00" + "time": "2021-04-08T10:27:02+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.4", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c" + "reference": "d99310c33e833def36419c284f60e8027d359678" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b12274acfab9d9850c52583d136a24398cdf1a0c", - "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d99310c33e833def36419c284f60e8027d359678", + "reference": "d99310c33e833def36419c284f60e8027d359678", "shasum": "" }, "require": { @@ -5405,7 +5409,7 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:15:41+00:00" + "time": "2021-03-29T15:28:41+00:00" }, { "name": "symfony/yaml", From 36b6d8f11f3c431bee77ec70ccd8745493d38ac1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 May 2021 05:02:13 +0000 Subject: [PATCH 135/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4.10.0 to 4.11.0. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.10.0...v4.11.0) Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index c6284e15..d0deecae 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.10.0" + uses: "stefanzweifel/git-auto-commit-action@v4.11.0" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From e9057c7c60165d0322e864085f9e1ceb26e87569 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 May 2021 05:02:21 +0000 Subject: [PATCH 136/305] github-actions(deps): bump ibiqlik/action-yamllint from 3 to 3.0.1 Bumps [ibiqlik/action-yamllint](https://github.com/ibiqlik/action-yamllint) from 3 to 3.0.1. - [Release notes](https://github.com/ibiqlik/action-yamllint/releases) - [Commits](https://github.com/ibiqlik/action-yamllint/compare/v3...v3.0.1) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index cf469328..b5545a5a 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -32,7 +32,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v3" + uses: "ibiqlik/action-yamllint@v3.0.1" with: config_file: ".yamllint.yaml" file_or_dir: "." From d88220f6e85fb60712aa98f83dca9c30273fdb24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 May 2021 05:13:49 +0000 Subject: [PATCH 137/305] github-actions(deps): bump actions/stale from 3.0.18 to 3.0.19 Bumps [actions/stale](https://github.com/actions/stale) from 3.0.18 to 3.0.19. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.18...v3.0.19) Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 94e62f4c..2517bf02 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.18" + uses: "actions/stale@v3.0.19" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From 78afe50782d9e8f6e2ff23d9ef7a565244d8220f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 May 2021 05:04:27 +0000 Subject: [PATCH 138/305] github-actions(deps): bump actions/cache from 2.1.5 to 2.1.6 Bumps [actions/cache](https://github.com/actions/cache) from 2.1.5 to 2.1.6. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.5...v2.1.6) Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 18 +++++++++--------- .github/workflows/renew.yaml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index cf469328..090da995 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -52,7 +52,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -70,7 +70,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" @@ -107,7 +107,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -149,7 +149,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -164,7 +164,7 @@ jobs: run: "mkdir -p .build/phpstan" - name: "Cache cache directory for phpstan/phpstan" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: ".build/phpstan" key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" @@ -177,7 +177,7 @@ jobs: run: "mkdir -p .build/psalm" - name: "Cache cache directory for vimeo/psalm" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: ".build/psalm" key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" @@ -221,7 +221,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -272,7 +272,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -319,7 +319,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index c6284e15..e8b9eff1 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -43,7 +43,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -58,7 +58,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.5" + uses: "actions/cache@v2.1.6" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" From 79798c877f1d5b240d61b7f74d64da900985691e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Jun 2021 09:07:28 +0000 Subject: [PATCH 139/305] composer(deps-dev): bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.13.3 to 2.15.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.13.3...2.15.0) --- updated-dependencies: - dependency-name: ergebnis/composer-normalize dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index e9d0d46f..a9b5e08f 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "~0.11.15 || ~0.12.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.13.3", + "ergebnis/composer-normalize": "^2.15.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", diff --git a/composer.lock b/composer.lock index 76bc5835..ab2791e7 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": "e855f06cef7aaddd66f5dd419a6ecb32", + "content-hash": "5d4ac9d64e190597c0e8e34dbc44c1ec", "packages": [ { "name": "composer/package-versions-deprecated", @@ -2024,16 +2024,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.13.3", + "version": "2.15.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "eff003890c655ee0e4b6ac5d4c5b40ce61247f7c" + "reference": "d469a15b916441959446d52a0f5d3fc9f7720317" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/eff003890c655ee0e4b6ac5d4c5b40ce61247f7c", - "reference": "eff003890c655ee0e4b6ac5d4c5b40ce61247f7c", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d469a15b916441959446d52a0f5d3fc9f7720317", + "reference": "d469a15b916441959446d52a0f5d3fc9f7720317", "shasum": "" }, "require": { @@ -2045,20 +2045,20 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "^1.10.19 || ^2.0.8", + "composer/composer": "^1.10.22 || ^2.0.13", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.13.0", + "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.4.0", + "ergebnis/test-util": "^1.5.0", "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.80", + "phpstan/phpstan": "~0.12.89", "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.18", + "phpstan/phpstan-phpunit": "~0.12.19", "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.14", - "psalm/plugin-phpunit": "~0.15.0", - "symfony/filesystem": "^5.2.4", - "vimeo/psalm": "^4.6.2" + "phpunit/phpunit": "^8.5.16", + "psalm/plugin-phpunit": "~0.16.0", + "symfony/filesystem": "^5.3.0", + "vimeo/psalm": "^4.7.3" }, "type": "composer-plugin", "extra": { @@ -2097,7 +2097,7 @@ "type": "github" } ], - "time": "2021-03-06T14:00:23+00:00" + "time": "2021-06-15T08:06:45+00:00" }, { "name": "ergebnis/json-normalizer", From cfe17ee0aec3273b5c7aaa7f0c446a568d78dd5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Jun 2021 09:10:45 +0000 Subject: [PATCH 140/305] composer(deps-dev): bump phpunit/phpunit from 8.5.15 to 8.5.17 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.15 to 8.5.17. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.15...8.5.17) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index a9b5e08f..dd560364 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^8.5.15", + "phpunit/phpunit": "^8.5.17", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.18", diff --git a/composer.lock b/composer.lock index ab2791e7..c1dc9330 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": "5d4ac9d64e190597c0e8e34dbc44c1ec", + "content-hash": "4616469a392470f0a8e7c3f533e36e40", "packages": [ { "name": "composer/package-versions-deprecated", @@ -3801,16 +3801,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.15", + "version": "8.5.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "038d4196d8e8cb405cd5e82cedfe413ad6eef9ef" + "reference": "79067856d85421c56d413bd238d4e2cd6b0e54da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/038d4196d8e8cb405cd5e82cedfe413ad6eef9ef", - "reference": "038d4196d8e8cb405cd5e82cedfe413ad6eef9ef", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/79067856d85421c56d413bd238d4e2cd6b0e54da", + "reference": "79067856d85421c56d413bd238d4e2cd6b0e54da", "shasum": "" }, "require": { @@ -3890,7 +3890,7 @@ "type": "github" } ], - "time": "2021-03-17T07:27:54+00:00" + "time": "2021-06-23T05:12:43+00:00" }, { "name": "pimple/pimple", @@ -5081,16 +5081,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "shasum": "" }, "require": { @@ -5102,7 +5102,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5153,7 +5153,7 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php70", From 2b4e976dff012db32b66ce6b8d6c075e5bbf6d6f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Jun 2021 09:01:27 +0000 Subject: [PATCH 141/305] github-actions(deps): bump ibiqlik/action-yamllint from 3.0.1 to 3.0.2 Bumps [ibiqlik/action-yamllint](https://github.com/ibiqlik/action-yamllint) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/ibiqlik/action-yamllint/releases) - [Commits](https://github.com/ibiqlik/action-yamllint/compare/v3.0.1...v3.0.2) --- updated-dependencies: - dependency-name: ibiqlik/action-yamllint dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 5bbc54d2..4cf6dd6d 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -32,7 +32,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v3.0.1" + uses: "ibiqlik/action-yamllint@v3.0.2" with: config_file: ".yamllint.yaml" file_or_dir: "." From aadf68be07457f1bfae434b46493e2ede088214b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Sep 2021 09:01:07 +0000 Subject: [PATCH 142/305] github-actions(deps): bump actions/github-script from 4.0.2 to 5 Bumps [actions/github-script](https://github.com/actions/github-script) from 4.0.2 to 5. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v4.0.2...v5) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 8 ++++---- .github/workflows/triage.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 4cf6dd6d..39262c39 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -360,7 +360,7 @@ jobs: steps: - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v4.0.2" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -379,7 +379,7 @@ jobs: }) - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v4.0.2" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -398,7 +398,7 @@ jobs: }) - name: "Approve pull request" - uses: "actions/github-script@v4.0.2" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -413,7 +413,7 @@ jobs: }) - name: "Merge pull request" - uses: "actions/github-script@v4.0.2" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index b54c3bb6..f0fc133d 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -15,7 +15,7 @@ jobs: steps: - name: "Add labels based on branch name" - uses: "actions/github-script@v4.0.2" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | From 368fb0ee8810af0ecc422f741b8133f8afb62881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 27 Sep 2021 11:12:29 +0200 Subject: [PATCH 143/305] Enhancement: Restore auto-merge of dependabot pull requests --- .github/CONTRIBUTING.md | 1 + .github/settings.yml | 4 -- .github/workflows/integrate.yaml | 94 -------------------------------- .github/workflows/merge.yaml | 94 ++++++++++++++++++++++++++++++++ README.md | 1 + 5 files changed, 96 insertions(+), 98 deletions(-) create mode 100644 .github/workflows/merge.yaml diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index d0d33d0b..8186f37d 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -5,6 +5,7 @@ We are using [GitHub Actions](https://github.com/features/actions) as a continuo For details, take a look at the following workflow configuration files: - [`workflows/integrate.yaml`](workflows/integrate.yaml) +- [`workflows/merge.yaml`](workflows/merge.yaml) - [`workflows/prune.yaml`](workflows/prune.yaml) - [`workflows/release.yaml`](workflows/release.yaml) - [`workflows/renew.yaml`](workflows/renew.yaml) diff --git a/.github/settings.yml b/.github/settings.yml index d96ea741..12370bb5 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -57,10 +57,6 @@ labels: color: "0e8a16" description: "" - - name: "merge" - color: "6f42c1" - description: "" - - name: "question" color: "cc317c" description: "" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 39262c39..40b8517c 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -332,97 +332,3 @@ jobs: - name: "Run mutation tests with pcov and infection/infection" run: "vendor/bin/infection --ignore-msi-with-no-mutations --min-covered-msi=${{ env.MIN_COVERED_MSI }} --min-msi=${{ env.MIN_MSI }}" - - merge: - name: "Merge" - - runs-on: "ubuntu-latest" - - needs: - - "code-coverage" - - "coding-standards" - - "dependency-analysis" - - "mutation-tests" - - "static-code-analysis" - - "tests" - - if: > - github.event_name == 'pull_request' && - github.event.pull_request.draft == false && ( - github.event.action == 'opened' || - github.event.action == 'reopened' || - github.event.action == 'synchronize' - ) && ( - (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'composer(deps-dev)')) || - (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'github-actions(deps)')) || - (github.actor == 'localheinz' && contains(github.event.pull_request.labels.*.name, 'merge')) - ) - - steps: - - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v5" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - - const reviewers = [ - "ergebnis-bot", - ] - - await github.pulls.requestReviewers({ - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - reviewers: reviewers, - }) - - - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v5" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - - const assignees = [ - "ergebnis-bot", - ] - - await github.issues.addAssignees({ - assignees: assignees, - issue_number: pullRequest.number, - owner: repository.owner, - repo: repository.repo, - }) - - - name: "Approve pull request" - uses: "actions/github-script@v5" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - - await github.pulls.createReview({ - event: "APPROVE", - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - }) - - - name: "Merge pull request" - uses: "actions/github-script@v5" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - - await github.pulls.merge({ - merge_method: "merge", - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - }) diff --git a/.github/workflows/merge.yaml b/.github/workflows/merge.yaml new file mode 100644 index 00000000..bb9269e6 --- /dev/null +++ b/.github/workflows/merge.yaml @@ -0,0 +1,94 @@ +# https://docs.github.com/en/actions + +name: "Merge" + +on: # yamllint disable-line rule:truthy + workflow_run: + types: + - "completed" + workflows: + - "Integrate" + +jobs: + merge: + name: "Merge" + + runs-on: "ubuntu-latest" + + if: > + github.event.workflow_run.event == 'pull_request' && + github.event.workflow_run.conclusion == 'success' && + github.actor == 'dependabot[bot]' && ( + startsWith(github.event.workflow_run.head_commit.message, 'composer(deps-dev)') || + startsWith(github.event.workflow_run.head_commit.message, 'github-actions(deps)') + ) + + steps: + + - name: "Request review from @ergebnis-bot" + uses: "actions/github-script@v4.1" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + script: | + const pullRequest = context.payload.workflow_run.pull_requests[0] + const repository = context.repo + + const reviewers = [ + "ergebnis-bot", + ] + + await github.rest.pulls.requestReviewers({ + owner: repository.owner, + repo: repository.repo, + pull_number: pullRequest.number, + reviewers: reviewers, + }) + + - name: "Assign @ergebnis-bot" + uses: "actions/github-script@v4.1" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + script: | + const pullRequest = context.payload.workflow_run.pull_requests[0] + const repository = context.repo + + const assignees = [ + "ergebnis-bot", + ] + + await github.rest.issues.addAssignees({ + owner: repository.owner, + repo: repository.repo, + assignees: assignees, + issue_number: pullRequest.number + }) + + - name: "Approve pull request" + uses: "actions/github-script@v4.1" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + script: | + const pullRequest = context.payload.workflow_run.pull_requests[0] + const repository = context.repo + + await github.rest.pulls.createReview({ + event: "APPROVE", + owner: repository.owner, + repo: repository.repo, + pull_number: pullRequest.number, + }) + + - name: "Merge pull request" + uses: "actions/github-script@v4.1" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + script: | + const pullRequest = context.payload.workflow_run.pull_requests[0] + const repository = context.repo + + await github.rest.pulls.merge({ + merge_method: "merge", + owner: repository.owner, + pull_number: pullRequest.number, + repo: repository.repo, + }) diff --git a/README.md b/README.md index a3f8aa1a..151b22be 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # phpstan-rules [![Integrate](https://github.com/ergebnis/phpstan-rules/workflows/Integrate/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) +[![Merge](https://github.com/ergebnis/phpstan-rules/workflows/Merge/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) [![Prune](https://github.com/ergebnis/phpstan-rules/workflows/Prune/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) [![Release](https://github.com/ergebnis/phpstan-rules/workflows/Release/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) [![Renew](https://github.com/ergebnis/phpstan-rules/workflows/Renew/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) From 6d2117aeca5cacdf44c64fc5d05359a6280a3b0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Sep 2021 09:16:09 +0000 Subject: [PATCH 144/305] github-actions(deps): bump actions/stale from 3.0.19 to 4 Bumps [actions/stale](https://github.com/actions/stale) from 3.0.19 to 4. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v3.0.19...v4) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 2517bf02..5b90815d 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v3.0.19" + uses: "actions/stale@v4" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From 650906ac535d512e67f0abb13ad5299b291447c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Sep 2021 09:16:09 +0000 Subject: [PATCH 145/305] github-actions(deps): bump ibiqlik/action-yamllint from 3.0.2 to 3.0.4 Bumps [ibiqlik/action-yamllint](https://github.com/ibiqlik/action-yamllint) from 3.0.2 to 3.0.4. - [Release notes](https://github.com/ibiqlik/action-yamllint/releases) - [Commits](https://github.com/ibiqlik/action-yamllint/compare/v3.0.2...v3.0.4) --- updated-dependencies: - dependency-name: ibiqlik/action-yamllint dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 40b8517c..788df54f 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -32,7 +32,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v3.0.2" + uses: "ibiqlik/action-yamllint@v3.0.4" with: config_file: ".yamllint.yaml" file_or_dir: "." From a599dbfe1d91024709f85d6da6681698e5635629 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Sep 2021 09:16:12 +0000 Subject: [PATCH 146/305] github-actions(deps): bump shivammathur/setup-php from 2.11.0 to 2.14.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.11.0 to 2.14.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.11.0...2.14.0) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 40b8517c..b5b05d7e 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.11.0" + uses: "shivammathur/setup-php@2.14.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -97,7 +97,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.11.0" + uses: "shivammathur/setup-php@2.14.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -139,7 +139,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.11.0" + uses: "shivammathur/setup-php@2.14.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -208,7 +208,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.11.0" + uses: "shivammathur/setup-php@2.14.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -259,7 +259,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.11.0" + uses: "shivammathur/setup-php@2.14.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -309,7 +309,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.11.0" + uses: "shivammathur/setup-php@2.14.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 740763aa..628beba9 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.11.0" + uses: "shivammathur/setup-php@2.14.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 84fca68026163c65311464518c4b968c1ddc6c1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Sep 2021 09:16:18 +0000 Subject: [PATCH 147/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4.11.0 to 4.12.0. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.11.0...v4.12.0) --- updated-dependencies: - dependency-name: stefanzweifel/git-auto-commit-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 740763aa..82729d55 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.11.0" + uses: "stefanzweifel/git-auto-commit-action@v4.12.0" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From 10330f42000fc4f9d7303f2022dbe9257979919a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Sep 2021 09:17:05 +0000 Subject: [PATCH 148/305] github-actions(deps): bump actions/github-script from 4.1 to 5 Bumps [actions/github-script](https://github.com/actions/github-script) from 4.1 to 5. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v4.1...v5) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/merge.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/merge.yaml b/.github/workflows/merge.yaml index bb9269e6..aa2f28ae 100644 --- a/.github/workflows/merge.yaml +++ b/.github/workflows/merge.yaml @@ -26,7 +26,7 @@ jobs: steps: - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v4.1" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -45,7 +45,7 @@ jobs: }) - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v4.1" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -64,7 +64,7 @@ jobs: }) - name: "Approve pull request" - uses: "actions/github-script@v4.1" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -79,7 +79,7 @@ jobs: }) - name: "Merge pull request" - uses: "actions/github-script@v4.1" + uses: "actions/github-script@v5" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | From 5b4ef8c7dbb718db147f5c4c91ae24214d7a7dd5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Sep 2021 09:18:03 +0000 Subject: [PATCH 149/305] composer(deps-dev): bump phpunit/phpunit from 8.5.17 to 8.5.21 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.17 to 8.5.21. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.17...8.5.21) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 81 ++++++++++++++++++++++++++------------------------- 2 files changed, 42 insertions(+), 41 deletions(-) diff --git a/composer.json b/composer.json index dd560364..09412ee5 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "nette/di": "^3.0.1", "phpstan/phpstan-deprecation-rules": "~0.11.2", "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^8.5.17", + "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", "vimeo/psalm": "^3.18", diff --git a/composer.lock b/composer.lock index c1dc9330..5a7f84a6 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": "4616469a392470f0a8e7c3f533e36e40", + "content-hash": "9faad95bf1f9315195de25fb6f1222f4", "packages": [ { "name": "composer/package-versions-deprecated", @@ -3058,16 +3058,16 @@ }, { "name": "phar-io/manifest", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { @@ -3110,7 +3110,7 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2020-06-27T14:33:11+00:00" + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", @@ -3314,16 +3314,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "reference": "30f38bffc6f24293dadd1823936372dfa9e86e2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/30f38bffc6f24293dadd1823936372dfa9e86e2f", + "reference": "30f38bffc6f24293dadd1823936372dfa9e86e2f", "shasum": "" }, "require": { @@ -3331,7 +3331,8 @@ "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "*" + "ext-tokenizer": "*", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -3355,7 +3356,7 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-09-17T18:55:26+00:00" + "time": "2021-09-17T15:28:14+00:00" }, { "name": "phpspec/prophecy", @@ -3524,16 +3525,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "7.0.14", + "version": "7.0.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" + "reference": "819f92bba8b001d4363065928088de22f25a3a48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", - "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", + "reference": "819f92bba8b001d4363065928088de22f25a3a48", "shasum": "" }, "require": { @@ -3542,7 +3543,7 @@ "php": ">=7.2", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1 || ^4.0", + "phpunit/php-token-stream": "^3.1.3 || ^4.0", "sebastian/code-unit-reverse-lookup": "^1.0.1", "sebastian/environment": "^4.2.2", "sebastian/version": "^2.0.1", @@ -3589,20 +3590,20 @@ "type": "github" } ], - "time": "2020-12-02T13:39:03+00:00" + "time": "2021-07-26T12:20:09+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" + "reference": "28af674ff175d0768a5a978e6de83f697d4a7f05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", - "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/28af674ff175d0768a5a978e6de83f697d4a7f05", + "reference": "28af674ff175d0768a5a978e6de83f697d4a7f05", "shasum": "" }, "require": { @@ -3645,7 +3646,7 @@ "type": "github" } ], - "time": "2020-11-30T08:25:21+00:00" + "time": "2021-07-19T06:46:01+00:00" }, { "name": "phpunit/php-text-template", @@ -3745,16 +3746,16 @@ }, { "name": "phpunit/php-token-stream", - "version": "3.1.2", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "472b687829041c24b25f475e14c2f38a09edf1c2" + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/472b687829041c24b25f475e14c2f38a09edf1c2", - "reference": "472b687829041c24b25f475e14c2f38a09edf1c2", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", "shasum": "" }, "require": { @@ -3797,20 +3798,20 @@ } ], "abandoned": true, - "time": "2020-11-30T08:38:46+00:00" + "time": "2021-07-26T12:15:06+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.17", + "version": "8.5.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "79067856d85421c56d413bd238d4e2cd6b0e54da" + "reference": "50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/79067856d85421c56d413bd238d4e2cd6b0e54da", - "reference": "79067856d85421c56d413bd238d4e2cd6b0e54da", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984", + "reference": "50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984", "shasum": "" }, "require": { @@ -3822,12 +3823,12 @@ "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.10.0", - "phar-io/manifest": "^2.0.1", + "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.2", "phpspec/prophecy": "^1.10.3", "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-file-iterator": "^2.0.4", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.1.2", "sebastian/comparator": "^3.0.2", @@ -3890,7 +3891,7 @@ "type": "github" } ], - "time": "2021-06-23T05:12:43+00:00" + "time": "2021-09-25T07:37:20+00:00" }, { "name": "pimple/pimple", @@ -5623,16 +5624,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -5665,7 +5666,7 @@ "type": "github" } ], - "time": "2020-07-12T23:59:07+00:00" + "time": "2021-07-28T10:34:58+00:00" }, { "name": "vimeo/psalm", From 2935a8d949d0e813eaa003744730d307a6f45afe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Sep 2021 09:01:24 +0000 Subject: [PATCH 150/305] github-actions(deps): bump shivammathur/setup-php from 2.14.0 to 2.15.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.14.0 to 2.15.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.14.0...2.15.0) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 86a00414..13e9b35d 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.14.0" + uses: "shivammathur/setup-php@2.15.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -97,7 +97,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.14.0" + uses: "shivammathur/setup-php@2.15.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -139,7 +139,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.14.0" + uses: "shivammathur/setup-php@2.15.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -208,7 +208,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.14.0" + uses: "shivammathur/setup-php@2.15.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -259,7 +259,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.14.0" + uses: "shivammathur/setup-php@2.15.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -309,7 +309,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.14.0" + uses: "shivammathur/setup-php@2.15.0" with: coverage: "pcov" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index cf0b0aef..72dbef2e 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.14.0" + uses: "shivammathur/setup-php@2.15.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 2ef81232fc20d07c97015e6fa6b17c16da081e4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Oct 2021 09:01:11 +0000 Subject: [PATCH 151/305] github-actions(deps): bump ibiqlik/action-yamllint from 3.0.4 to 3.1 Bumps [ibiqlik/action-yamllint](https://github.com/ibiqlik/action-yamllint) from 3.0.4 to 3.1. - [Release notes](https://github.com/ibiqlik/action-yamllint/releases) - [Commits](https://github.com/ibiqlik/action-yamllint/compare/v3.0.4...v3.1) --- updated-dependencies: - dependency-name: ibiqlik/action-yamllint dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 13e9b35d..d312c5a4 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -32,7 +32,7 @@ jobs: uses: "actions/checkout@v2.3.4" - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v3.0.4" + uses: "ibiqlik/action-yamllint@v3.1" with: config_file: ".yamllint.yaml" file_or_dir: "." From d615ec45085a778f9e56546db3d1e8caf0334c25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Oct 2021 09:01:27 +0000 Subject: [PATCH 152/305] github-actions(deps): bump actions/checkout from 2.3.4 to 2.3.5 Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.3.5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.4...v2.3.5) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index d312c5a4..1c06b506 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -29,7 +29,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.4" + uses: "actions/checkout@v2.3.5" - name: "Lint YAML files" uses: "ibiqlik/action-yamllint@v3.1" @@ -94,7 +94,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.4" + uses: "actions/checkout@v2.3.5" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" @@ -136,7 +136,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.4" + uses: "actions/checkout@v2.3.5" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" @@ -205,7 +205,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.4" + uses: "actions/checkout@v2.3.5" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" @@ -256,7 +256,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.4" + uses: "actions/checkout@v2.3.5" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" @@ -306,7 +306,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.4" + uses: "actions/checkout@v2.3.5" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 72dbef2e..d85c49a1 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.4" + uses: "actions/checkout@v2.3.5" with: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" From 44ce7ba2d04a90d204fef0e632f4e13503cc9825 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Nov 2021 09:01:08 +0000 Subject: [PATCH 153/305] github-actions(deps): bump actions/checkout from 2.3.5 to 2.4.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.5 to 2.4.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.5...v2.4.0) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 1c06b506..99011e8f 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -29,7 +29,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.5" + uses: "actions/checkout@v2.4.0" - name: "Lint YAML files" uses: "ibiqlik/action-yamllint@v3.1" @@ -94,7 +94,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.5" + uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" @@ -136,7 +136,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.5" + uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" @@ -205,7 +205,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.5" + uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" @@ -256,7 +256,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.5" + uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" @@ -306,7 +306,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.5" + uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index d85c49a1..026b0993 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.3.5" + uses: "actions/checkout@v2.4.0" with: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" From a13fee6ea7adf80d90bbdc5b972215819dce3c7b Mon Sep 17 00:00:00 2001 From: Remon van de Kamp Date: Mon, 1 Nov 2021 22:38:15 +0100 Subject: [PATCH 154/305] Bump support for PHPStan to version 1.0 --- CHANGELOG.md | 6 + composer-require-checker.json | 8 +- composer.json | 6 +- composer.lock | 4514 ++++++++--------- phpstan-baseline.neon | 15 +- phpstan.neon | 3 +- src/Classes/FinalRule.php | 8 +- .../Framework/TestCaseWithSuffixRule.php | 12 +- ...ameterWithContainerTypeDeclarationRule.php | 11 +- .../Framework/TestCaseWithSuffixRuleTest.php | 2 +- ...erWithContainerTypeDeclarationRuleTest.php | 2 +- 11 files changed, 2199 insertions(+), 2388 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68c7647f..2ad1e378 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), For a full diff see [`0.15.3...main`][0.15.3...main]. +### Changed + +* Added support for `phpstan/phpstan:^1.0.0` and dropped support for non-stable versions of `phpstan/phpstan` ([#381]), by [@rpkamp] + ## [`0.15.3`][0.15.3] For a full diff see [`0.15.2...0.15.3`][0.15.2...0.15.3]. @@ -431,8 +435,10 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#248]: https://github.com/ergebnis/phpstan-rules/pull/248 [#259]: https://github.com/ergebnis/phpstan-rules/pull/259 [#294]: https://github.com/ergebnis/phpstan-rules/pull/294 +[#381]: https://github.com/ergebnis/phpstan-rules/pull/381 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique [@localheinz]: https://github.com/localheinz +[@rpkamp]: https://github.com/rpkamp [@Slamdunk]: https://github.com/Slamdunk diff --git a/composer-require-checker.json b/composer-require-checker.json index 67d0aa16..c16fa801 100644 --- a/composer-require-checker.json +++ b/composer-require-checker.json @@ -14,6 +14,12 @@ "static", "string", "true", - "void" + "void", + "PHPStan\\Analyser\\Scope", + "PHPStan\\Node\\FileNode", + "PHPStan\\Reflection\\ClassReflection", + "PHPStan\\Reflection\\ReflectionProvider", + "PHPStan\\Rules\\Rule", + "PHPStan\\ShouldNotHappenException" ] } diff --git a/composer.json b/composer.json index 09412ee5..6fc177ac 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "php": "^7.2 || ^8.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", - "phpstan/phpstan": "~0.11.15 || ~0.12.0" + "phpstan/phpstan": "^1.0.0" }, "require-dev": { "ergebnis/composer-normalize": "^2.15.0", @@ -28,8 +28,8 @@ "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", "nette/di": "^3.0.1", - "phpstan/phpstan-deprecation-rules": "~0.11.2", - "phpstan/phpstan-strict-rules": "~0.11.1", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.0.0", "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.12.2", "psr/container": "^1.0.0", diff --git a/composer.lock b/composer.lock index 5a7f84a6..63b77c4d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,167 +4,166 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9faad95bf1f9315195de25fb6f1222f4", + "content-hash": "8c640b4601abebaf4b67c043ed0f3c5f", "packages": [ { - "name": "composer/package-versions-deprecated", - "version": "1.11.99", + "name": "nikic/php-parser", + "version": "v4.3.0", "source": { "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", - "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" + "ext-tokenizer": "*", + "php": ">=7.0" }, "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" + "ircmaxell/php-yacc": "0.0.5", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, - "type": "composer-plugin", + "bin": [ + "bin/php-parse" + ], + "type": "library", "extra": { - "class": "PackageVersions\\Installer", "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "PackageVersions\\": "src/PackageVersions" + "PhpParser\\": "lib/PhpParser" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" + "name": "Nikita Popov" } ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" ], - "time": "2020-08-25T05:50:16+00:00" + "time": "2019-11-08T13:50:10+00:00" }, { - "name": "composer/xdebug-handler", - "version": "1.4.6", + "name": "phpstan/phpstan", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c" + "url": "https://github.com/phpstan/phpstan.git", + "reference": "cb317029197236c571c1b9305b8dd12850d8d85c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cb317029197236c571c1b9305b8dd12850d8d85c", + "reference": "cb317029197236c571c1b9305b8dd12850d8d85c", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0" + "php": "^7.1|^8.0" }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "conflict": { + "phpstan/phpstan-shim": "*" }, + "bin": [ + "phpstan", + "phpstan.phar" + ], "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" } }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], + "description": "PHPStan - PHP Static Analysis Tool", + "support": { + "issues": "https://github.com/phpstan/phpstan/issues", + "source": "https://github.com/phpstan/phpstan/tree/1.1.1" + }, "funding": [ { - "url": "https://packagist.com", - "type": "custom" + "url": "https://github.com/ondrejmirtes", + "type": "github" }, { - "url": "https://github.com/composer", + "url": "https://github.com/phpstan", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "url": "https://www.patreon.com/phpstan", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", "type": "tidelift" } ], - "time": "2021-03-25T17:01:18+00:00" - }, + "time": "2021-11-06T22:46:47+00:00" + } + ], + "packages-dev": [ { - "name": "jean85/pretty-package-versions", - "version": "1.2", + "name": "amphp/amp", + "version": "v2.5.0", "source": { "type": "git", - "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48" + "url": "https://github.com/amphp/amp.git", + "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/75c7effcf3f77501d0e0caa75111aff4daa0dd48", - "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48", + "url": "https://api.github.com/repos/amphp/amp/zipball/f220a51458bf4dd0dedebb171ac3457813c72bbc", + "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc", "shasum": "" }, "require": { - "ocramius/package-versions": "^1.2.0", - "php": "^7.0" + "php": ">=7" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6.0.9 | ^7", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "Jean85\\": "src/" - } + "Amp\\": "lib" + }, + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -172,760 +171,775 @@ ], "authors": [ { - "name": "Alessandro Lai", - "email": "alessandro.lai85@gmail.com" + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "A wrapper for ocramius/package-versions to get pretty versions strings", + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "http://amphp.org/amp", "keywords": [ - "composer", - "package", - "release", - "versions" + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } ], - "time": "2018-06-13T13:22:40+00:00" + "time": "2020-07-14T21:47:18+00:00" }, { - "name": "nette/bootstrap", - "version": "v3.0.1", + "name": "amphp/byte-stream", + "version": "v1.8.0", "source": { "type": "git", - "url": "https://github.com/nette/bootstrap.git", - "reference": "b45a1e33b6a44beb307756522396551e5a9ff249" + "url": "https://github.com/amphp/byte-stream.git", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/bootstrap/zipball/b45a1e33b6a44beb307756522396551e5a9ff249", - "reference": "b45a1e33b6a44beb307756522396551e5a9ff249", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", "shasum": "" }, "require": { - "nette/di": "^3.0", - "nette/utils": "^3.0", + "amphp/amp": "^2", "php": ">=7.1" }, - "conflict": { - "tracy/tracy": "<2.6" - }, "require-dev": { - "latte/latte": "^2.2", - "nette/application": "^3.0", - "nette/caching": "^3.0", - "nette/database": "^3.0", - "nette/forms": "^3.0", - "nette/http": "^3.0", - "nette/mail": "^3.0", - "nette/robot-loader": "^3.0", - "nette/safe-stream": "^2.2", - "nette/security": "^3.0", - "nette/tester": "^2.0", - "tracy/tracy": "^2.6" - }, - "suggest": { - "nette/robot-loader": "to use Configurator::createRobotLoader()", - "tracy/tracy": "to use Configurator::enableTracy()" + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Amp\\ByteStream\\": "lib" + }, + "files": [ + "lib/functions.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", - "homepage": "https://nette.org", + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", "keywords": [ - "bootstrapping", - "configurator", - "nette" + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" ], - "time": "2019-09-30T08:19:38+00:00" + "time": "2020-06-29T18:35:05+00:00" }, { - "name": "nette/di", - "version": "v3.0.1", + "name": "composer/package-versions-deprecated", + "version": "1.11.99", "source": { "type": "git", - "url": "https://github.com/nette/di.git", - "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d" + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/4aff517a1c6bb5c36fa09733d4cea089f529de6d", - "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", + "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "nette/neon": "^3.0", - "nette/php-generator": "^3.2.2", - "nette/robot-loader": "^3.2", - "nette/schema": "^1.0", - "nette/utils": "^3.0", - "php": ">=7.1" + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" }, - "conflict": { - "nette/bootstrap": "<3.0" + "replace": { + "ocramius/package-versions": "1.11.99" }, "require-dev": { - "nette/tester": "^2.2", - "tracy/tracy": "^2.3" + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" }, - "type": "library", + "type": "composer-plugin", "extra": { + "class": "PackageVersions\\Installer", "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ], - "files": [ - "src/compatibility.php" - ] + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } ], - "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", - "homepage": "https://nette.org", - "keywords": [ - "compiled", - "di", - "dic", - "factory", - "ioc", - "nette", - "static" + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } ], - "time": "2019-08-07T12:11:33+00:00" + "time": "2020-08-25T05:50:16+00:00" }, { - "name": "nette/finder", - "version": "v2.5.1", + "name": "composer/semver", + "version": "3.2.4", "source": { "type": "git", - "url": "https://github.com/nette/finder.git", - "reference": "14164e1ddd69e9c5f627ff82a10874b3f5bba5fe" + "url": "https://github.com/composer/semver.git", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/14164e1ddd69e9c5f627ff82a10874b3f5bba5fe", - "reference": "14164e1ddd69e9c5f627ff82a10874b3f5bba5fe", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", "shasum": "" }, "require": { - "nette/utils": "^2.4 || ~3.0.0", - "php": ">=7.1" - }, - "conflict": { - "nette/nette": "<2.2" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "nette/tester": "^2.0", - "tracy/tracy": "^2.3" + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev" + "dev-main": "3.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Composer\\Semver\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "🔍 Nette Finder: find files and directories with an intuitive API.", - "homepage": "https://nette.org", + "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ - "filesystem", - "glob", - "iterator", - "nette" + "semantic", + "semver", + "validation", + "versioning" ], - "time": "2019-07-11T18:02:17+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:59:24+00:00" }, { - "name": "nette/neon", - "version": "v3.0.0", + "name": "composer/xdebug-handler", + "version": "1.4.6", "source": { "type": "git", - "url": "https://github.com/nette/neon.git", - "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f27e06cd9675801df441b3656569b328e04aa37c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/cbff32059cbdd8720deccf9e9eace6ee516f02eb", - "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", + "reference": "f27e06cd9675801df441b3656569b328e04aa37c", "shasum": "" }, "require": { - "ext-iconv": "*", - "ext-json": "*", - "php": ">=7.0" + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" }, "require-dev": { - "nette/tester": "^2.0", - "tracy/tracy": "^2.3" + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "? Nette NEON: encodes and decodes NEON file format.", - "homepage": "http://ne-on.org", + "description": "Restarts a process without Xdebug.", "keywords": [ - "export", - "import", - "neon", - "nette", - "yaml" + "Xdebug", + "performance" ], - "time": "2019-02-05T21:30:40+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-03-25T17:01:18+00:00" }, { - "name": "nette/php-generator", - "version": "v3.3.1", + "name": "container-interop/container-interop", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/nette/php-generator.git", - "reference": "4240fd7adf499138c07b814ef9b9a6df9f6d7187" + "url": "https://github.com/container-interop/container-interop.git", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/4240fd7adf499138c07b814ef9b9a6df9f6d7187", - "reference": "4240fd7adf499138c07b814ef9b9a6df9f6d7187", + "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", "shasum": "" }, "require": { - "nette/utils": "^2.4.2 || ~3.0.0", - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "^2.0", - "tracy/tracy": "^2.3" + "psr/container": "^1.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Interop\\Container\\": "src/Interop/Container/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.3 features.", - "homepage": "https://nette.org", - "keywords": [ - "code", - "nette", - "php", - "scaffolding" + "MIT" ], - "time": "2019-11-22T11:12:11+00:00" - }, + "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", + "homepage": "https://github.com/container-interop/container-interop", + "abandoned": "psr/container", + "time": "2017-02-14T19:40:03+00:00" + }, { - "name": "nette/robot-loader", - "version": "v3.2.0", + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", "source": { "type": "git", - "url": "https://github.com/nette/robot-loader.git", - "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c" + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", - "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "nette/finder": "^2.5", - "nette/utils": "^3.0", - "php": ">=7.1" + "php": ">=5.3.2" }, "require-dev": { - "nette/tester": "^2.0", - "tracy/tracy": "^2.3" + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "XdgBaseDir\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "? Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", - "homepage": "https://nette.org", - "keywords": [ - "autoload", - "class", - "interface", - "nette", - "trait" + "MIT" ], - "time": "2019-03-08T21:57:24+00:00" + "description": "implementation of xdg base directory specification for php", + "time": "2019-12-04T15:06:13+00:00" }, { - "name": "nette/schema", - "version": "v1.0.1", + "name": "doctrine/annotations", + "version": "1.12.1", "source": { "type": "git", - "url": "https://github.com/nette/schema.git", - "reference": "337117df1dade22e2ba1fdc4a4b832c1e9b06b76" + "url": "https://github.com/doctrine/annotations.git", + "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/337117df1dade22e2ba1fdc4a4b832c1e9b06b76", - "reference": "337117df1dade22e2ba1fdc4a4b832c1e9b06b76", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", + "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", "shasum": "" }, "require": { - "nette/utils": "^3.0.1", - "php": ">=7.1" + "doctrine/lexer": "1.*", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0" }, "require-dev": { - "nette/tester": "^2.2", - "tracy/tracy": "^2.3" + "doctrine/cache": "1.*", + "doctrine/coding-standard": "^6.0 || ^8.1", + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^9.1.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "📐 Nette Schema: validating data structures against a given Schema.", - "homepage": "https://nette.org", + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", "keywords": [ - "config", - "nette" + "annotations", + "docblock", + "parser" ], - "time": "2019-10-31T20:52:19+00:00" + "time": "2021-02-21T21:00:45+00:00" }, { - "name": "nette/utils", - "version": "v3.0.2", + "name": "doctrine/instantiator", + "version": "1.4.0", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "c133e18c922dcf3ad07673077d92d92cef25a148" + "url": "https://github.com/doctrine/instantiator.git", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/c133e18c922dcf3ad07673077d92d92cef25a148", - "reference": "c133e18c922dcf3ad07673077d92d92cef25a148", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { - "php": ">=7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "nette/tester": "~2.0", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize() and toAscii()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "doctrine/coding-standard": "^8.0", + "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" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" } ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" + "constructor", + "instantiate" ], - "time": "2019-10-21T20:40:16+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%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-11-10T18:47:58+00:00" }, { - "name": "nikic/php-parser", - "version": "v4.3.0", + "name": "doctrine/lexer", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" + "url": "https://github.com/doctrine/lexer.git", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=7.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "ircmaxell/php-yacc": "0.0.5", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, - "bin": [ - "bin/php-parse" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { "psr-4": { - "PhpParser\\": "lib/PhpParser" + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ + "annotations", + "docblock", + "lexer", "parser", "php" ], - "time": "2019-11-08T13:50: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%2Flexer", + "type": "tidelift" + } + ], + "time": "2020-05-25T17:44:05+00:00" }, { - "name": "phpstan/phpdoc-parser", - "version": "0.3.5", + "name": "ergebnis/classy", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4" + "url": "https://github.com/ergebnis/classy.git", + "reference": "72840bda3ce8b7bdc9362e8646141eb3c5ca9947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8c4ef2aefd9788238897b678a985e1d5c8df6db4", - "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4", + "url": "https://api.github.com/repos/ergebnis/classy/zipball/72840bda3ce8b7bdc9362e8646141eb3c5ca9947", + "reference": "72840bda3ce8b7bdc9362e8646141eb3c5ca9947", "shasum": "" }, "require": { - "php": "~7.1" + "ext-tokenizer": "*", + "php": "^7.2 || ^8.0" }, "require-dev": { - "consistence/coding-standard": "^3.5", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "phing/phing": "^2.16.0", - "phpstan/phpstan": "^0.10", - "phpunit/phpunit": "^6.3", - "slevomat/coding-standard": "^4.7.2", - "squizlabs/php_codesniffer": "^3.3.2", - "symfony/process": "^3.4 || ^4.0" + "ergebnis/composer-normalize": "^2.13.2", + "ergebnis/license": "^1.1.0", + "ergebnis/php-cs-fixer-config": "^2.13.0", + "ergebnis/phpstan-rules": "~0.15.3", + "ergebnis/test-util": "^1.0.0", + "infection/infection": "~0.15.3", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.70", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.14", + "psalm/plugin-phpunit": "~0.15.0", + "vimeo/psalm": "^4.4.1", + "zendframework/zend-file": "^2.8.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.3-dev" + "dev-main": "1.0-dev" } }, "autoload": { "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] + "Ergebnis\\Classy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "time": "2019-06-07T19:13:52+00:00" + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "description": "Provides a finder for classy constructs (classes, interfaces, and traits).", + "homepage": "https://github.com/ergebnis/classy", + "keywords": [ + "classes", + "classy", + "constructs", + "finder", + "interfaces", + "traits" + ], + "funding": [ + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], + "time": "2021-02-01T08:25:30+00:00" }, { - "name": "phpstan/phpstan", - "version": "0.11.19", + "name": "ergebnis/composer-normalize", + "version": "2.15.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7" + "url": "https://github.com/ergebnis/composer-normalize.git", + "reference": "d469a15b916441959446d52a0f5d3fc9f7720317" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/63cc502f6957b7f74efbac444b4cf219dcadffd7", - "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d469a15b916441959446d52a0f5d3fc9f7720317", + "reference": "d469a15b916441959446d52a0f5d3fc9f7720317", "shasum": "" }, "require": { - "composer/xdebug-handler": "^1.3.0", - "jean85/pretty-package-versions": "^1.0.3", - "nette/bootstrap": "^2.4 || ^3.0", - "nette/di": "^2.4.7 || ^3.0", - "nette/neon": "^2.4.3 || ^3.0", - "nette/robot-loader": "^3.0.1", - "nette/schema": "^1.0", - "nette/utils": "^2.4.5 || ^3.0", - "nikic/php-parser": "^4.2.3", - "php": "~7.1", - "phpstan/phpdoc-parser": "^0.3.5", - "symfony/console": "~3.2 || ~4.0", - "symfony/finder": "~3.2 || ~4.0" - }, - "conflict": { - "symfony/console": "3.4.16 || 4.1.5" + "composer-plugin-api": "^1.1.0 || ^2.0.0", + "ergebnis/json-normalizer": "^1.0.3", + "ergebnis/json-printer": "^3.1.1", + "justinrainbow/json-schema": "^5.2.10", + "localheinz/diff": "^1.1.1", + "php": "^7.2 || ^8.0" }, "require-dev": { - "brianium/paratest": "^2.0 || ^3.0", - "consistence/coding-standard": "^3.5", - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", - "ext-intl": "*", - "ext-mysqli": "*", - "ext-simplexml": "*", - "ext-soap": "*", - "ext-zip": "*", - "jakub-onderka/php-parallel-lint": "^1.0", - "localheinz/composer-normalize": "^1.1.0", - "phing/phing": "^2.16.0", - "phpstan/phpstan-deprecation-rules": "^0.11", - "phpstan/phpstan-php-parser": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^7.5.14 || ^8.0", - "slevomat/coding-standard": "^4.7.2", - "squizlabs/php_codesniffer": "^3.3.2" + "composer/composer": "^1.10.22 || ^2.0.13", + "ergebnis/license": "^1.1.0", + "ergebnis/php-cs-fixer-config": "^2.14.0", + "ergebnis/phpstan-rules": "~0.15.3", + "ergebnis/test-util": "^1.5.0", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.89", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.19", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.16", + "psalm/plugin-phpunit": "~0.16.0", + "symfony/filesystem": "^5.3.0", + "vimeo/psalm": "^4.7.3" }, - "bin": [ - "bin/phpstan" - ], - "type": "library", + "type": "composer-plugin", "extra": { - "branch-alias": { - "dev-master": "0.11-dev" + "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin", + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" } }, "autoload": { "psr-4": { - "PHPStan\\": [ - "src/" - ] + "Ergebnis\\Composer\\Normalize\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPStan - PHP Static Analysis Tool", + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "description": "Provides a composer plugin for normalizing composer.json.", + "homepage": "https://github.com/ergebnis/composer-normalize", + "keywords": [ + "composer", + "normalize", + "normalizer", + "plugin" + ], "funding": [ { - "url": "https://github.com/ondrejmirtes", + "url": "https://github.com/localheinz", "type": "github" - }, - { - "url": "https://www.patreon.com/phpstan", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], - "time": "2019-10-22T20:20:22+00:00" + "time": "2021-06-15T08:06:45+00:00" }, { - "name": "psr/container", - "version": "1.0.0", + "name": "ergebnis/json-normalizer", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + "url": "https://github.com/ergebnis/json-normalizer.git", + "reference": "4a7f064ce34d5a2e382564565cdd433dbc5b9494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/4a7f064ce34d5a2e382564565cdd433dbc5b9494", + "reference": "4a7f064ce34d5a2e382564565cdd433dbc5b9494", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ergebnis/json-printer": "^3.1.1", + "ext-json": "*", + "justinrainbow/json-schema": "^5.2.10", + "php": "^7.2 || ^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "require-dev": { + "ergebnis/license": "^1.1.0", + "ergebnis/php-cs-fixer-config": "^2.10.0", + "ergebnis/phpstan-rules": "~0.15.3", + "ergebnis/test-util": "^1.4.0", + "infection/infection": "~0.15.3", + "jangregor/phpstan-prophecy": "~0.8.1", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.80", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.17", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.14", + "psalm/plugin-phpunit": "~0.12.2", + "vimeo/psalm": "^3.18" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "Ergebnis\\Json\\Normalizer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -934,47 +948,62 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Andreas Möller", + "email": "am@localheinz.com" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "homepage": "https://github.com/ergebnis/json-normalizer", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "json", + "normalizer" ], - "time": "2017-02-14T16:28:37+00:00" + "funding": [ + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], + "time": "2021-03-06T13:33:57+00:00" }, { - "name": "psr/log", - "version": "1.1.4", + "name": "ergebnis/json-printer", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "url": "https://github.com/ergebnis/json-printer.git", + "reference": "e4190dadd9937a77d8afcaf2b6c42a528ab367d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/e4190dadd9937a77d8afcaf2b6c42a528ab367d6", + "reference": "e4190dadd9937a77d8afcaf2b6c42a528ab367d6", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-json": "*", + "ext-mbstring": "*", + "php": "^7.2 || ^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } + "require-dev": { + "ergebnis/license": "^1.0.0", + "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/test-util": "^1.1.0", + "infection/infection": "~0.15.3", + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-strict-rules": "~0.12.4", + "phpunit/phpunit": "^8.5.8", + "psalm/plugin-phpunit": "~0.11.0", + "vimeo/psalm": "^3.14.2" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Ergebnis\\Json\\Printer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -983,72 +1012,65 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Andreas Möller", + "email": "am@localheinz.com" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "Provides a JSON printer, allowing for flexible indentation.", + "homepage": "https://github.com/ergebnis/json-printer", "keywords": [ - "log", - "psr", - "psr-3" + "formatter", + "json", + "printer" ], - "time": "2021-05-03T11:20:27+00:00" + "funding": [ + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], + "time": "2020-08-30T12:17:03+00:00" }, { - "name": "symfony/console", - "version": "v4.4.22", + "name": "ergebnis/license", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625" + "url": "https://github.com/ergebnis/license.git", + "reference": "7b3022e34d650cffa907c123946ec2332a0c8780" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625", - "reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625", + "url": "https://api.github.com/repos/ergebnis/license/zipball/7b3022e34d650cffa907c123946ec2332a0c8780", + "reference": "7b3022e34d650cffa907c123946ec2332a0c8780", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", - "symfony/lock": "<4.4", - "symfony/process": "<3.3" - }, - "provide": { - "psr/log-implementation": "1.0" + "ext-filter": "*", + "php": "^7.2 || ^8.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/event-dispatcher": "^4.3", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.3|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "ergebnis/composer-normalize": "^2.7.1", + "ergebnis/php-cs-fixer-config": "^2.2.1", + "ergebnis/phpstan-rules": "~0.15.2", + "ergebnis/test-util": "^1.1.0", + "infection/infection": "~0.15.3", + "jangregor/phpstan-prophecy": "~0.8.0", + "phpstan/extension-installer": "^1.0.4", + "phpstan/phpstan": "~0.12.40", + "phpstan/phpstan-deprecation-rules": "~0.12.5", + "phpstan/phpstan-phpunit": "~0.12.16", + "phpstan/phpstan-strict-rules": "~0.12.4", + "phpunit/phpunit": "^8.5.8", + "psalm/plugin-phpunit": "~0.11.0", + "symfony/filesystem": "^4.4.11", + "vimeo/psalm": "^3.14.2" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Ergebnis\\License\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1056,57 +1078,69 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Andreas Möller", + "email": "am@localheinz.com" } ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", + "description": "Provides an abstraction of an open-source license.", + "homepage": "https://github.com/ergebnis/license", + "keywords": [ + "license" + ], "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/localheinz", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2021-04-16T17:32:19+00:00" + "time": "2020-08-30T11:41:26+00:00" }, { - "name": "symfony/finder", - "version": "v4.4.20", + "name": "ergebnis/php-cs-fixer-config", + "version": "2.14.0", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6" + "url": "https://github.com/ergebnis/php-cs-fixer-config.git", + "reference": "5750f9c35b447619401838e9fb9b25f64b90eb93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2543795ab1570df588b9bbd31e1a2bd7037b94f6", - "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/5750f9c35b447619401838e9fb9b25f64b90eb93", + "reference": "5750f9c35b447619401838e9fb9b25f64b90eb93", "shasum": "" }, "require": { - "php": ">=7.1.3" + "ext-filter": "*", + "friendsofphp/php-cs-fixer": "~2.19.0", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.13.3", + "ergebnis/license": "^1.1.0", + "ergebnis/phpstan-rules": "~0.15.3", + "ergebnis/test-util": "^1.5.0", + "infection/infection": "~0.15.3", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.85", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.18", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.15", + "psalm/plugin-phpunit": "~0.15.1", + "symfony/filesystem": "^4.4.0", + "vimeo/psalm": "^4.7.2" }, "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, "autoload": { "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Ergebnis\\PhpCsFixer\\Config\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1114,69 +1148,65 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Andreas Möller", + "email": "am@localheinz.com" } ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", + "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", + "homepage": "https://github.com/ergebnis/php-cs-fixer-config", "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/localheinz", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2021-02-12T10:48:09+00:00" + "time": "2021-05-04T14:04:50+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "name": "ergebnis/test-util", + "version": "1.5.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "url": "https://github.com/ergebnis/test-util.git", + "reference": "7c85925bca8b2d2985eb7a208f53114dc64c780b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/ergebnis/test-util/zipball/7c85925bca8b2d2985eb7a208f53114dc64c780b", + "reference": "7c85925bca8b2d2985eb7a208f53114dc64c780b", "shasum": "" }, "require": { - "php": ">=7.1" + "ergebnis/classy": "^1.1.1", + "fakerphp/faker": "^1.14.1", + "php": "^7.2 || ^8.0" }, - "suggest": { - "ext-mbstring": "For best performance" + "require-dev": { + "ergebnis/composer-normalize": "^2.13.3", + "ergebnis/license": "^1.1.0", + "ergebnis/php-cs-fixer-config": "^2.13.0", + "ergebnis/phpstan-rules": "~0.15.3", + "infection/infection": "~0.15.3", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "~0.12.65", + "phpstan/phpstan-deprecation-rules": "~0.12.6", + "phpstan/phpstan-phpunit": "~0.12.18", + "phpstan/phpstan-strict-rules": "~0.12.9", + "phpunit/phpunit": "^8.5.15", + "psalm/plugin-phpunit": "~0.15.1", + "vimeo/psalm": "^4.7.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] + "Ergebnis\\Test\\Util\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1184,76 +1214,69 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Andreas Möller", + "email": "am@localheinz.com" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", + "description": "Provides a helper trait and generic data providers for tests.", + "homepage": "https://github.com/ergebnis/test-util", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "assertion", + "faker", + "phpunit", + "test" ], "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/localheinz", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-03-30T15:07:05+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "name": "fakerphp/faker", + "version": "v1.14.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", "shasum": "" }, "require": { - "php": ">=7.1" + "php": "^7.1 || ^8.0", + "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.2" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-intl": "*", + "symfony/phpunit-bridge": "^4.4 || ^5.2" + }, + "suggest": { + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-main": "v1.15-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] + "Faker\\": "src/Faker/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1261,949 +1284,186 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "François Zaninotto" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "Faker is a PHP library that generates fake data for you.", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "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" - } + "data", + "faker", + "fixtures" ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-03-30T06:27:33+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.1.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/0ed363f8de17d284d479ec813c9ad3f6834b5c40", + "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40", "shasum": "" }, "require": { - "php": ">=7.1" + "netresearch/jsonmapper": "^1.0 || ^2.0", + "php": ">=7.0", + "phpdocumentor/reflection-docblock": "^4.0.0 || ^5.0.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "require-dev": { + "phpunit/phpunit": "^6.0.0" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] + "AdvancedJsonRpc\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], "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 backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "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" + "name": "Felix Becker", + "email": "felix.b@outlook.com" } ], - "time": "2021-01-07T16:49:33+00:00" + "description": "A more advanced JSONRPC implementation", + "time": "2020-03-11T15:21:41+00:00" }, { - "name": "symfony/service-contracts", - "version": "v2.2.0", + "name": "felixfbecker/language-server-protocol", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "378801f6139bb74ac215d81cca1272af61df9a9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/378801f6139bb74ac215d81cca1272af61df9a9f", + "reference": "378801f6139bb74ac215d81cca1272af61df9a9f", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.0" + "php": "^7.0" }, - "suggest": { - "symfony/service-implementation": "" + "require-dev": { + "phpstan/phpstan": "*", + "phpunit/phpunit": "^6.3", + "squizlabs/php_codesniffer": "^3.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" + "LanguageServerProtocol\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Felix Becker", + "email": "felix.b@outlook.com" } ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", + "description": "PHP classes for the Language Server Protocol", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "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" - } + "language", + "microsoft", + "php", + "server" ], - "time": "2020-09-07T11:33:47+00:00" - } - ], - "packages-dev": [ + "time": "2019-06-23T21:03:50+00:00" + }, { - "name": "amphp/amp", - "version": "v2.5.0", + "name": "friendsofphp/php-cs-fixer", + "version": "v2.19.0", "source": { "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc" + "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", + "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/f220a51458bf4dd0dedebb171ac3457813c72bbc", - "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/d5b8a9d852b292c2f8a035200fa6844b1f82300b", + "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b", "shasum": "" }, "require": { - "php": ">=7" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.2 || ^2.0", + "doctrine/annotations": "^1.2", "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6.0.9 | ^7", - "psalm/phar": "^3.11@dev", - "react/promise": "^2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Amp\\": "lib" - }, - "files": [ - "lib/functions.php", - "lib/Internal/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "http://amphp.org/amp", - "keywords": [ - "async", - "asynchronous", - "awaitable", - "concurrency", - "event", - "event-loop", - "future", - "non-blocking", - "promise" - ], - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2020-07-14T21:47:18+00:00" - }, - { - "name": "amphp/byte-stream", - "version": "v1.8.0", - "source": { - "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", - "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", - "shasum": "" - }, - "require": { - "amphp/amp": "^2", - "php": ">=7.1" + "ext-tokenizer": "*", + "php": "^5.6 || ^7.0 || ^8.0", + "php-cs-fixer/diff": "^1.3", + "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", + "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", + "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", + "symfony/finder": "^3.0 || ^4.0 || ^5.0", + "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0", + "symfony/polyfill-php70": "^1.0", + "symfony/polyfill-php72": "^1.4", + "symfony/process": "^3.0 || ^4.0 || ^5.0", + "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.4", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "psalm/phar": "^3.11.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } + "justinrainbow/json-schema": "^5.0", + "keradus/cli-executor": "^1.4", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.4.2", + "php-cs-fixer/accessible-object": "^1.0", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", + "phpspec/prophecy-phpunit": "^1.1 || ^2.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5", + "phpunitgoodpractices/polyfill": "^1.5", + "phpunitgoodpractices/traits": "^1.9.1", + "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", + "symfony/phpunit-bridge": "^5.2.1", + "symfony/yaml": "^3.0 || ^4.0 || ^5.0" }, - "autoload": { - "psr-4": { - "Amp\\ByteStream\\": "lib" - }, - "files": [ - "lib/functions.php" - ] + "suggest": { + "ext-dom": "For handling output formats in XML", + "ext-mbstring": "For handling non-UTF8 characters.", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", + "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "http://amphp.org/byte-stream", - "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" + "bin": [ + "php-cs-fixer" ], - "time": "2020-06-29T18:35:05+00:00" - }, - { - "name": "composer/semver", - "version": "3.2.4", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", - "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.54", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", + "type": "application", "extra": { "branch-alias": { - "dev-main": "3.x-dev" + "dev-master": "2.19-dev" } }, "autoload": { "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" + "PhpCsFixer\\": "src/" }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2020-11-13T08:59:24+00:00" - }, - { - "name": "container-interop/container-interop", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/container-interop/container-interop.git", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "shasum": "" - }, - "require": { - "psr/container": "^1.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Interop\\Container\\": "src/Interop/Container/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", - "homepage": "https://github.com/container-interop/container-interop", - "abandoned": "psr/container", - "time": "2017-02-14T19:40:03+00:00" - }, - { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" - }, - "type": "library", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php", - "time": "2019-12-04T15:06:13+00:00" - }, - { - "name": "doctrine/annotations", - "version": "1.12.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/cache": "1.*", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^9.1.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "time": "2021-02-21T21:00:45+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^8.0", - "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" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "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%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2020-11-10T18:47:58+00:00" - }, - { - "name": "doctrine/lexer", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "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%2Flexer", - "type": "tidelift" - } - ], - "time": "2020-05-25T17:44:05+00:00" - }, - { - "name": "ergebnis/classy", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/classy.git", - "reference": "72840bda3ce8b7bdc9362e8646141eb3c5ca9947" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/classy/zipball/72840bda3ce8b7bdc9362e8646141eb3c5ca9947", - "reference": "72840bda3ce8b7bdc9362e8646141eb3c5ca9947", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.13.2", - "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.13.0", - "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.0.0", - "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.70", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.14", - "psalm/plugin-phpunit": "~0.15.0", - "vimeo/psalm": "^4.4.1", - "zendframework/zend-file": "^2.8.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Ergebnis\\Classy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides a finder for classy constructs (classes, interfaces, and traits).", - "homepage": "https://github.com/ergebnis/classy", - "keywords": [ - "classes", - "classy", - "constructs", - "finder", - "interfaces", - "traits" - ], - "funding": [ - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], - "time": "2021-02-01T08:25:30+00:00" - }, - { - "name": "ergebnis/composer-normalize", - "version": "2.15.0", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "d469a15b916441959446d52a0f5d3fc9f7720317" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d469a15b916441959446d52a0f5d3fc9f7720317", - "reference": "d469a15b916441959446d52a0f5d3fc9f7720317", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0.0", - "ergebnis/json-normalizer": "^1.0.3", - "ergebnis/json-printer": "^3.1.1", - "justinrainbow/json-schema": "^5.2.10", - "localheinz/diff": "^1.1.1", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "composer/composer": "^1.10.22 || ^2.0.13", - "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.14.0", - "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.5.0", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.89", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.19", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.16", - "psalm/plugin-phpunit": "~0.16.0", - "symfony/filesystem": "^5.3.0", - "vimeo/psalm": "^4.7.3" - }, - "type": "composer-plugin", - "extra": { - "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin", - "composer-normalize": { - "indent-size": 2, - "indent-style": "space" - } - }, - "autoload": { - "psr-4": { - "Ergebnis\\Composer\\Normalize\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides a composer plugin for normalizing composer.json.", - "homepage": "https://github.com/ergebnis/composer-normalize", - "keywords": [ - "composer", - "normalize", - "normalizer", - "plugin" - ], - "funding": [ - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], - "time": "2021-06-15T08:06:45+00:00" - }, - { - "name": "ergebnis/json-normalizer", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "4a7f064ce34d5a2e382564565cdd433dbc5b9494" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/4a7f064ce34d5a2e382564565cdd433dbc5b9494", - "reference": "4a7f064ce34d5a2e382564565cdd433dbc5b9494", - "shasum": "" - }, - "require": { - "ergebnis/json-printer": "^3.1.1", - "ext-json": "*", - "justinrainbow/json-schema": "^5.2.10", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.10.0", - "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.4.0", - "infection/infection": "~0.15.3", - "jangregor/phpstan-prophecy": "~0.8.1", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.80", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.17", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.14", - "psalm/plugin-phpunit": "~0.12.2", - "vimeo/psalm": "^3.18" - }, - "type": "library", - "autoload": { - "psr-4": { - "Ergebnis\\Json\\Normalizer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", - "homepage": "https://github.com/ergebnis/json-normalizer", - "keywords": [ - "json", - "normalizer" - ], - "funding": [ - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], - "time": "2021-03-06T13:33:57+00:00" - }, - { - "name": "ergebnis/json-printer", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/json-printer.git", - "reference": "e4190dadd9937a77d8afcaf2b6c42a528ab367d6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/e4190dadd9937a77d8afcaf2b6c42a528ab367d6", - "reference": "e4190dadd9937a77d8afcaf2b6c42a528ab367d6", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-mbstring": "*", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "ergebnis/license": "^1.0.0", - "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/phpstan-rules": "~0.15.2", - "ergebnis/test-util": "^1.1.0", - "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.40", - "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.4", - "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", - "vimeo/psalm": "^3.14.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Ergebnis\\Json\\Printer\\": "src/" - } + "classmap": [ + "tests/Test/AbstractFixerTestCase.php", + "tests/Test/AbstractIntegrationCaseFactory.php", + "tests/Test/AbstractIntegrationTestCase.php", + "tests/Test/Assert/AssertTokensTrait.php", + "tests/Test/IntegrationCase.php", + "tests/Test/IntegrationCaseFactory.php", + "tests/Test/IntegrationCaseFactoryInterface.php", + "tests/Test/InternalIntegrationCaseFactory.php", + "tests/Test/IsIdenticalConstraint.php", + "tests/Test/TokensWithObservedTransformers.php", + "tests/TestCase.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2211,134 +1471,154 @@ ], "authors": [ { - "name": "Andreas Möller", - "email": "am@localheinz.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Dariusz Rumiński", + "email": "dariusz.ruminski@gmail.com" } ], - "description": "Provides a JSON printer, allowing for flexible indentation.", - "homepage": "https://github.com/ergebnis/json-printer", - "keywords": [ - "formatter", - "json", - "printer" - ], + "description": "A tool to automatically fix PHP code style", "funding": [ { - "url": "https://github.com/localheinz", + "url": "https://github.com/keradus", "type": "github" } ], - "time": "2020-08-30T12:17:03+00:00" + "time": "2021-05-03T21:43:24+00:00" }, { - "name": "ergebnis/license", - "version": "1.1.0", + "name": "infection/infection", + "version": "0.15.3", "source": { "type": "git", - "url": "https://github.com/ergebnis/license.git", - "reference": "7b3022e34d650cffa907c123946ec2332a0c8780" + "url": "https://github.com/infection/infection.git", + "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/license/zipball/7b3022e34d650cffa907c123946ec2332a0c8780", - "reference": "7b3022e34d650cffa907c123946ec2332a0c8780", + "url": "https://api.github.com/repos/infection/infection/zipball/c3fc380317eb14d213e1e1962801ee9325129fb2", + "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2", "shasum": "" }, "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0" + "composer/xdebug-handler": "^1.3.3", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "justinrainbow/json-schema": "^5.2", + "nikic/php-parser": "^4.2.2", + "ocramius/package-versions": "^1.2", + "php": "^7.2.9", + "pimple/pimple": "^3.2", + "sebastian/diff": "^3.0.2 || ^4.0", + "seld/jsonlint": "^1.7", + "symfony/console": "^3.4.29 || ^4.0 || ^5.0", + "symfony/filesystem": "^3.4.29 || ^4.0 || ^5.0", + "symfony/finder": "^3.4.29 || ^4.0 || ^5.0", + "symfony/process": "^3.4.29 || ^4.0 || ^5.0", + "symfony/yaml": "^3.4.29 || ^4.0 || ^5.0", + "thecodingmachine/safe": "^1.0", + "webmozart/assert": "^1.3", + "webmozart/path-util": "^2.3" + }, + "conflict": { + "symfony/console": "=4.1.5" }, "require-dev": { - "ergebnis/composer-normalize": "^2.7.1", - "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/phpstan-rules": "~0.15.2", - "ergebnis/test-util": "^1.1.0", - "infection/infection": "~0.15.3", - "jangregor/phpstan-prophecy": "~0.8.0", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.40", - "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.4", - "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", - "symfony/filesystem": "^4.4.11", - "vimeo/psalm": "^3.14.2" + "helmich/phpunit-json-assert": "^3.0", + "phpunit/phpunit": "^8.2.5 <8.4", + "symfony/phpunit-bridge": "^4.3.4 || ^5.0" }, + "bin": [ + "bin/infection" + ], "type": "library", "autoload": { "psr-4": { - "Ergebnis\\License\\": "src/" + "Infection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ + { + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com", + "homepage": "https://twitter.com/maks_rafalko" + }, + { + "name": "Oleg Zhulnev", + "homepage": "https://github.com/sidz" + }, + { + "name": "Gert de Pagter", + "homepage": "https://github.com/BackEndTea" + }, + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com", + "homepage": "https://twitter.com/tfidry" + }, + { + "name": "Alexey Kopytko", + "email": "alexey@kopytko.com", + "homepage": "https://www.alexeykopytko.com" + }, { "name": "Andreas Möller", - "email": "am@localheinz.com" + "email": "am@localheinz.com", + "homepage": "https://localheinz.com" } ], - "description": "Provides an abstraction of an open-source license.", - "homepage": "https://github.com/ergebnis/license", + "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", "keywords": [ - "license" - ], - "funding": [ - { - "url": "https://github.com/localheinz", - "type": "github" - } + "coverage", + "mutant", + "mutation framework", + "mutation testing", + "testing", + "unit testing" ], - "time": "2020-08-30T11:41:26+00:00" + "time": "2020-02-16T19:33:49+00:00" }, { - "name": "ergebnis/php-cs-fixer-config", - "version": "2.14.0", + "name": "justinrainbow/json-schema", + "version": "5.2.10", "source": { "type": "git", - "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "5750f9c35b447619401838e9fb9b25f64b90eb93" + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/5750f9c35b447619401838e9fb9b25f64b90eb93", - "reference": "5750f9c35b447619401838e9fb9b25f64b90eb93", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", "shasum": "" }, "require": { - "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.19.0", - "php": "^7.2 || ^8.0" + "php": ">=5.3.3" }, "require-dev": { - "ergebnis/composer-normalize": "^2.13.3", - "ergebnis/license": "^1.1.0", - "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.5.0", - "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.85", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.18", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.15", - "psalm/plugin-phpunit": "~0.15.1", - "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^4.7.2" + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" }, + "bin": [ + "bin/validate-json" + ], "type": "library", "extra": { - "composer-normalize": { - "indent-size": 2, - "indent-style": "space" + "branch-alias": { + "dev-master": "5.0.x-dev" } }, "autoload": { "psr-4": { - "Ergebnis\\PhpCsFixer\\Config\\": "src" + "JsonSchema\\": "src/JsonSchema/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2347,531 +1627,472 @@ ], "authors": [ { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", - "homepage": "https://github.com/ergebnis/php-cs-fixer-config", - "funding": [ + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, { - "url": "https://github.com/localheinz", - "type": "github" + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" } ], - "time": "2021-05-04T14:04:50+00:00" + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "time": "2020-05-27T16:41:55+00:00" }, { - "name": "ergebnis/test-util", - "version": "1.5.0", + "name": "localheinz/diff", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/ergebnis/test-util.git", - "reference": "7c85925bca8b2d2985eb7a208f53114dc64c780b" + "url": "https://github.com/localheinz/diff.git", + "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/test-util/zipball/7c85925bca8b2d2985eb7a208f53114dc64c780b", - "reference": "7c85925bca8b2d2985eb7a208f53114dc64c780b", + "url": "https://api.github.com/repos/localheinz/diff/zipball/851bb20ea8358c86f677f5f111c4ab031b1c764c", + "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c", "shasum": "" }, "require": { - "ergebnis/classy": "^1.1.1", - "fakerphp/faker": "^1.14.1", - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.13.3", - "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.13.0", - "ergebnis/phpstan-rules": "~0.15.3", - "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.65", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.18", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.15", - "psalm/plugin-phpunit": "~0.15.1", - "vimeo/psalm": "^4.7.0" + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", - "extra": { - "composer-normalize": { - "indent-size": 2, - "indent-style": "space" - } - }, "autoload": { - "psr-4": { - "Ergebnis\\Test\\Util\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Andreas Möller", - "email": "am@localheinz.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], - "description": "Provides a helper trait and generic data providers for tests.", - "homepage": "https://github.com/ergebnis/test-util", + "description": "Fork of sebastian/diff for use with ergebnis/composer-normalize", + "homepage": "https://github.com/localheinz/diff", "keywords": [ - "assertion", - "faker", - "phpunit", - "test" + "diff", + "udiff", + "unidiff", + "unified diff" ], "funding": [ { - "url": "https://github.com/localheinz", + "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2021-03-30T15:07:05+00:00" + "time": "2020-07-06T04:49:32+00:00" }, { - "name": "fakerphp/faker", - "version": "v1.14.1", + "name": "myclabs/deep-copy", + "version": "1.10.2", "source": { "type": "git", - "url": "https://github.com/FakerPHP/Faker.git", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "psr/container": "^1.0", - "symfony/deprecation-contracts": "^2.2" + "php": "^7.1 || ^8.0" }, - "conflict": { - "fzaninotto/faker": "*" + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" - }, - "suggest": { - "ext-curl": "Required by Faker\\Provider\\Image to download images.", - "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", - "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", - "ext-mbstring": "Required for multibyte Unicode string functionality." + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.15-dev" - } - }, "autoload": { "psr-4": { - "Faker\\": "src/Faker/" - } + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "funding": [ { - "name": "François Zaninotto" + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" } ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "time": "2021-03-30T06:27:33+00:00" + "time": "2020-11-13T09:40:50+00:00" }, { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.1.1", + "name": "netresearch/jsonmapper", + "version": "v2.1.0", "source": { "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40" + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/0ed363f8de17d284d479ec813c9ad3f6834b5c40", - "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", "shasum": "" }, "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0", - "php": ">=7.0", - "phpdocumentor/reflection-docblock": "^4.0.0 || ^5.0.0" + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^6.0.0" + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "squizlabs/php_codesniffer": "~3.5" }, "type": "library", "autoload": { - "psr-4": { - "AdvancedJsonRpc\\": "lib/" + "psr-0": { + "JsonMapper": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "OSL-3.0" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" } ], - "description": "A more advanced JSONRPC implementation", - "time": "2020-03-11T15:21:41+00:00" + "description": "Map nested JSON structures onto PHP classes", + "time": "2020-04-16T18:48:43+00:00" }, { - "name": "felixfbecker/language-server-protocol", - "version": "v1.4.0", + "name": "nette/di", + "version": "v3.0.1", "source": { "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "378801f6139bb74ac215d81cca1272af61df9a9f" + "url": "https://github.com/nette/di.git", + "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/378801f6139bb74ac215d81cca1272af61df9a9f", - "reference": "378801f6139bb74ac215d81cca1272af61df9a9f", + "url": "https://api.github.com/repos/nette/di/zipball/4aff517a1c6bb5c36fa09733d4cea089f529de6d", + "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d", "shasum": "" }, "require": { - "php": "^7.0" + "ext-tokenizer": "*", + "nette/neon": "^3.0", + "nette/php-generator": "^3.2.2", + "nette/robot-loader": "^3.2", + "nette/schema": "^1.0", + "nette/utils": "^3.0", + "php": ">=7.1" + }, + "conflict": { + "nette/bootstrap": "<3.0" }, "require-dev": { - "phpstan/phpstan": "*", - "phpunit/phpunit": "^6.3", - "squizlabs/php_codesniffer": "^3.1" + "nette/tester": "^2.2", + "tracy/tracy": "^2.3" }, "type": "library", - "autoload": { - "psr-4": { - "LanguageServerProtocol\\": "src/" + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ], + "files": [ + "src/compatibility.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "PHP classes for the Language Server Protocol", + "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", + "homepage": "https://nette.org", "keywords": [ - "language", - "microsoft", - "php", - "server" + "compiled", + "di", + "dic", + "factory", + "ioc", + "nette", + "static" ], - "time": "2019-06-23T21:03:50+00:00" + "time": "2019-08-07T12:11:33+00:00" }, { - "name": "friendsofphp/php-cs-fixer", - "version": "v2.19.0", + "name": "nette/finder", + "version": "v2.5.1", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b" + "url": "https://github.com/nette/finder.git", + "reference": "14164e1ddd69e9c5f627ff82a10874b3f5bba5fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/d5b8a9d852b292c2f8a035200fa6844b1f82300b", - "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b", + "url": "https://api.github.com/repos/nette/finder/zipball/14164e1ddd69e9c5f627ff82a10874b3f5bba5fe", + "reference": "14164e1ddd69e9c5f627ff82a10874b3f5bba5fe", "shasum": "" }, "require": { - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.2 || ^2.0", - "doctrine/annotations": "^1.2", - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^5.6 || ^7.0 || ^8.0", - "php-cs-fixer/diff": "^1.3", - "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", - "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", - "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", - "symfony/finder": "^3.0 || ^4.0 || ^5.0", - "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0", - "symfony/polyfill-php70": "^1.0", - "symfony/polyfill-php72": "^1.4", - "symfony/process": "^3.0 || ^4.0 || ^5.0", - "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" + "nette/utils": "^2.4 || ~3.0.0", + "php": ">=7.1" }, - "require-dev": { - "justinrainbow/json-schema": "^5.0", - "keradus/cli-executor": "^1.4", - "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4.2", - "php-cs-fixer/accessible-object": "^1.0", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy-phpunit": "^1.1 || ^2.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5", - "phpunitgoodpractices/polyfill": "^1.5", - "phpunitgoodpractices/traits": "^1.9.1", - "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", - "symfony/phpunit-bridge": "^5.2.1", - "symfony/yaml": "^3.0 || ^4.0 || ^5.0" + "conflict": { + "nette/nette": "<2.2" }, - "suggest": { - "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters.", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", - "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, - "bin": [ - "php-cs-fixer" - ], - "type": "application", + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.19-dev" + "dev-master": "2.5-dev" } }, "autoload": { - "psr-4": { - "PhpCsFixer\\": "src/" - }, "classmap": [ - "tests/Test/AbstractFixerTestCase.php", - "tests/Test/AbstractIntegrationCaseFactory.php", - "tests/Test/AbstractIntegrationTestCase.php", - "tests/Test/Assert/AssertTokensTrait.php", - "tests/Test/IntegrationCase.php", - "tests/Test/IntegrationCaseFactory.php", - "tests/Test/IntegrationCaseFactoryInterface.php", - "tests/Test/InternalIntegrationCaseFactory.php", - "tests/Test/IsIdenticalConstraint.php", - "tests/Test/TokensWithObservedTransformers.php", - "tests/TestCase.php" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "A tool to automatically fix PHP code style", - "funding": [ - { - "url": "https://github.com/keradus", - "type": "github" - } + "description": "🔍 Nette Finder: find files and directories with an intuitive API.", + "homepage": "https://nette.org", + "keywords": [ + "filesystem", + "glob", + "iterator", + "nette" ], - "time": "2021-05-03T21:43:24+00:00" + "time": "2019-07-11T18:02:17+00:00" }, { - "name": "infection/infection", - "version": "0.15.3", + "name": "nette/neon", + "version": "v3.0.0", "source": { "type": "git", - "url": "https://github.com/infection/infection.git", - "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2" + "url": "https://github.com/nette/neon.git", + "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/infection/infection/zipball/c3fc380317eb14d213e1e1962801ee9325129fb2", - "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2", + "url": "https://api.github.com/repos/nette/neon/zipball/cbff32059cbdd8720deccf9e9eace6ee516f02eb", + "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb", "shasum": "" }, "require": { - "composer/xdebug-handler": "^1.3.3", - "ext-dom": "*", + "ext-iconv": "*", "ext-json": "*", - "ext-libxml": "*", - "justinrainbow/json-schema": "^5.2", - "nikic/php-parser": "^4.2.2", - "ocramius/package-versions": "^1.2", - "php": "^7.2.9", - "pimple/pimple": "^3.2", - "sebastian/diff": "^3.0.2 || ^4.0", - "seld/jsonlint": "^1.7", - "symfony/console": "^3.4.29 || ^4.0 || ^5.0", - "symfony/filesystem": "^3.4.29 || ^4.0 || ^5.0", - "symfony/finder": "^3.4.29 || ^4.0 || ^5.0", - "symfony/process": "^3.4.29 || ^4.0 || ^5.0", - "symfony/yaml": "^3.4.29 || ^4.0 || ^5.0", - "thecodingmachine/safe": "^1.0", - "webmozart/assert": "^1.3", - "webmozart/path-util": "^2.3" - }, - "conflict": { - "symfony/console": "=4.1.5" + "php": ">=7.0" }, "require-dev": { - "helmich/phpunit-json-assert": "^3.0", - "phpunit/phpunit": "^8.2.5 <8.4", - "symfony/phpunit-bridge": "^4.3.4 || ^5.0" + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, - "bin": [ - "bin/infection" - ], "type": "library", - "autoload": { - "psr-4": { - "Infection\\": "src/" + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Maks Rafalko", - "email": "maks.rafalko@gmail.com", - "homepage": "https://twitter.com/maks_rafalko" - }, - { - "name": "Oleg Zhulnev", - "homepage": "https://github.com/sidz" - }, - { - "name": "Gert de Pagter", - "homepage": "https://github.com/BackEndTea" - }, - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com", - "homepage": "https://twitter.com/tfidry" - }, - { - "name": "Alexey Kopytko", - "email": "alexey@kopytko.com", - "homepage": "https://www.alexeykopytko.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Andreas Möller", - "email": "am@localheinz.com", - "homepage": "https://localheinz.com" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", + "description": "? Nette NEON: encodes and decodes NEON file format.", + "homepage": "http://ne-on.org", "keywords": [ - "coverage", - "mutant", - "mutation framework", - "mutation testing", - "testing", - "unit testing" + "export", + "import", + "neon", + "nette", + "yaml" ], - "time": "2020-02-16T19:33:49+00:00" + "time": "2019-02-05T21:30:40+00:00" }, { - "name": "justinrainbow/json-schema", - "version": "5.2.10", + "name": "nette/php-generator", + "version": "v3.3.1", "source": { "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" + "url": "https://github.com/nette/php-generator.git", + "reference": "4240fd7adf499138c07b814ef9b9a6df9f6d7187" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", - "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "url": "https://api.github.com/repos/nette/php-generator/zipball/4240fd7adf499138c07b814ef9b9a6df9f6d7187", + "reference": "4240fd7adf499138c07b814ef9b9a6df9f6d7187", "shasum": "" }, "require": { - "php": ">=5.3.3" + "nette/utils": "^2.4.2 || ~3.0.0", + "php": ">=7.1" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, - "bin": [ - "bin/validate-json" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.3 features.", + "homepage": "https://nette.org", "keywords": [ - "json", - "schema" + "code", + "nette", + "php", + "scaffolding" ], - "time": "2020-05-27T16:41:55+00:00" + "time": "2019-11-22T11:12:11+00:00" }, { - "name": "localheinz/diff", - "version": "1.1.1", + "name": "nette/robot-loader", + "version": "v3.2.0", "source": { "type": "git", - "url": "https://github.com/localheinz/diff.git", - "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c" + "url": "https://github.com/nette/robot-loader.git", + "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/localheinz/diff/zipball/851bb20ea8358c86f677f5f111c4ab031b1c764c", - "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", + "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "ext-tokenizer": "*", + "nette/finder": "^2.5", + "nette/utils": "^3.0", + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^4.2 || ^5" + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -2879,133 +2100,164 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Fork of sebastian/diff for use with ergebnis/composer-normalize", - "homepage": "https://github.com/localheinz/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "time": "2020-07-06T04:49:32+00:00" + "description": "? Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "homepage": "https://nette.org", + "keywords": [ + "autoload", + "class", + "interface", + "nette", + "trait" + ], + "time": "2019-03-08T21:57:24+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.10.2", + "name": "nette/schema", + "version": "v1.0.1", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "url": "https://github.com/nette/schema.git", + "reference": "337117df1dade22e2ba1fdc4a4b832c1e9b06b76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/nette/schema/zipball/337117df1dade22e2ba1fdc4a4b832c1e9b06b76", + "reference": "337117df1dade22e2ba1fdc4a4b832c1e9b06b76", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" - }, - "replace": { - "myclabs/deep-copy": "self.version" + "nette/utils": "^3.0.1", + "php": ">=7.1" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "nette/tester": "^2.2", + "tracy/tracy": "^2.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], - "funding": [ + "authors": [ { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "time": "2020-11-13T09:40:50+00:00" + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "time": "2019-10-31T20:52:19+00:00" }, { - "name": "netresearch/jsonmapper", - "version": "v2.1.0", + "name": "nette/utils", + "version": "v3.0.2", "source": { "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" + "url": "https://github.com/nette/utils.git", + "reference": "c133e18c922dcf3ad07673077d92d92cef25a148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", - "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "url": "https://api.github.com/repos/nette/utils/zipball/c133e18c922dcf3ad07673077d92d92cef25a148", + "reference": "c133e18c922dcf3ad07673077d92d92cef25a148", "shasum": "" }, "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.6" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", - "squizlabs/php_codesniffer": "~3.5" + "nette/tester": "~2.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize() and toAscii()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" }, "type": "library", - "autoload": { - "psr-0": { - "JsonMapper": "src/" + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "OSL-3.0" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Map nested JSON structures onto PHP classes", - "time": "2020-04-16T18:48:43+00:00" + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "time": "2019-10-21T20:40:16+00:00" }, { "name": "openlss/lib-array2xml", @@ -3423,36 +2675,31 @@ }, { "name": "phpstan/phpstan-deprecation-rules", - "version": "0.11.2", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", - "reference": "5685fe48873efc5af1f2cc95d9c1b8ae82c728fe" + "reference": "e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/5685fe48873efc5af1f2cc95d9c1b8ae82c728fe", - "reference": "5685fe48873efc5af1f2cc95d9c1b8ae82c728fe", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682", + "reference": "e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682", "shasum": "" }, "require": { - "nikic/php-parser": "^4.0", - "php": "~7.1", - "phpstan/phpstan": "^0.11.8" + "php": "^7.1 || ^8.0", + "phpstan/phpstan": "^1.0" }, "require-dev": { - "consistence/coding-standard": "^3.0.1", - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", - "jakub-onderka/php-parallel-lint": "^1.0", - "phing/phing": "^2.16.0", - "phpstan/phpstan-phpunit": "^0.11", - "phpunit/phpunit": "^7.0", - "slevomat/coding-standard": "^4.5.2" + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5" }, "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-master": "0.11-dev" + "dev-master": "1.0-dev" }, "phpstan": { "includes": [ @@ -3470,40 +2717,40 @@ "MIT" ], "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.", - "time": "2019-05-28T19:54:04+00:00" + "support": { + "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.0.0" + }, + "time": "2021-09-23T11:02:21+00:00" }, { "name": "phpstan/phpstan-strict-rules", - "version": "0.11.1", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-strict-rules.git", - "reference": "a203a7afdda073d4ea405a6d9007a5b32de3be61" + "reference": "7f50eb112f37fda2ef956813d3f1e9b1e69d7940" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/a203a7afdda073d4ea405a6d9007a5b32de3be61", - "reference": "a203a7afdda073d4ea405a6d9007a5b32de3be61", + "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/7f50eb112f37fda2ef956813d3f1e9b1e69d7940", + "reference": "7f50eb112f37fda2ef956813d3f1e9b1e69d7940", "shasum": "" }, "require": { - "nikic/php-parser": "^4.0", - "php": "~7.1", - "phpstan/phpstan": "^0.11.4" + "php": "^7.1 || ^8.0", + "phpstan/phpstan": "^1.0" }, "require-dev": { - "consistence/coding-standard": "^3.0.1", - "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", - "jakub-onderka/php-parallel-lint": "^1.0", - "phing/phing": "^2.16.0", - "phpstan/phpstan-phpunit": "^0.11", - "phpunit/phpunit": "^7.0", - "slevomat/coding-standard": "^4.5.2" + "nikic/php-parser": "^4.13.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5" }, "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-master": "0.11-dev" + "dev-master": "1.0-dev" }, "phpstan": { "includes": [ @@ -3521,7 +2768,11 @@ "MIT" ], "description": "Extra strict and opinionated rules for PHPStan", - "time": "2019-05-12T16:59:47+00:00" + "support": { + "issues": "https://github.com/phpstan/phpstan-strict-rules/issues", + "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.0.0" + }, + "time": "2021-10-11T06:57:58+00:00" }, { "name": "phpunit/php-code-coverage", @@ -3992,8 +3243,104 @@ "email": "github@muglug.com" } ], - "description": "Psalm plugin for PHPUnit", - "time": "2020-09-28T17:25:39+00:00" + "description": "Psalm plugin for PHPUnit", + "time": "2020-09-28T17:25:39+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2021-05-03T11:20:27+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -4433,118 +3780,406 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:30:19+00:00" + }, + { + "name": "sebastian/type", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:25:11+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.8.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/590cfec960b77fd55e39b7d9246659e95dd6d337", + "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337", "shasum": "" }, "require": { - "php": ">=7.0" + "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, + "bin": [ + "bin/jsonlint" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/Seldaek", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" } ], - "time": "2020-11-30T07:37:18+00:00" + "time": "2020-08-25T06:56:57+00:00" }, { - "name": "sebastian/recursion-context", - "version": "3.0.1", + "name": "symfony/console", + "version": "v4.4.22", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "url": "https://github.com/symfony/console.git", + "reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/symfony/console/zipball/36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625", + "reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, + "type": "library", "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", "funding": [ { - "url": "https://github.com/sebastianbergmann", + "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": "2020-11-30T07:34:24+00:00" + "time": "2021-04-16T17:32:19+00:00" }, { - "name": "sebastian/resource-operations", - "version": "2.0.2", + "name": "symfony/deprecation-contracts", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", "shasum": "" }, "require": { @@ -4553,157 +4188,232 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "classmap": [ - "src/" + "files": [ + "function.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", "funding": [ { - "url": "https://github.com/sebastianbergmann", + "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": "2020-11-30T07:30:19+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { - "name": "sebastian/type", - "version": "1.1.4", + "name": "symfony/event-dispatcher", + "version": "v4.4.20", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", + "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", "shasum": "" }, "require": { - "php": ">=7.2" + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "psr/log": "~1.0", + "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/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, + "type": "library", "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", "funding": [ { - "url": "https://github.com/sebastianbergmann", + "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": "2020-11-30T07:25:11+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { - "name": "sebastian/version", - "version": "2.0.1", + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.9", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "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": "2020-07-06T13:19:58+00:00" }, { - "name": "seld/jsonlint", - "version": "1.8.2", + "name": "symfony/filesystem", + "version": "v5.2.7", "source": { "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337" + "url": "https://github.com/symfony/filesystem.git", + "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/590cfec960b77fd55e39b7d9246659e95dd6d337", - "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0", + "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0", "shasum": "" }, "require": { - "php": "^5.3 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8" }, - "bin": [ - "bin/jsonlint" - ], "type": "library", "autoload": { "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4711,60 +4421,56 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", "funding": [ { - "url": "https://github.com/Seldaek", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2020-08-25T06:56:57+00:00" + "time": "2021-04-01T10:42:13+00:00" }, { - "name": "symfony/deprecation-contracts", - "version": "v2.4.0", + "name": "symfony/finder", + "version": "v4.4.20", "source": { "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" + "url": "https://github.com/symfony/finder.git", + "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "url": "https://api.github.com/repos/symfony/finder/zipball/2543795ab1570df588b9bbd31e1a2bd7037b94f6", + "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, "autoload": { - "files": [ - "function.php" + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4773,15 +4479,15 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "A generic function and convention to trigger deprecation notices", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "funding": [ { @@ -4797,51 +4503,32 @@ "type": "tidelift" } ], - "time": "2021-03-23T23:28:01+00:00" + "time": "2021-02-12T10:48:09+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v4.4.20", + "name": "symfony/options-resolver", + "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" - }, - "conflict": { - "symfony/dependency-injection": "<3.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" - }, - "require-dev": { - "psr/log": "~1.0", - "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/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" + "Symfony\\Component\\OptionsResolver\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -4861,8 +4548,13 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "description": "Provides an improved replacement for the array_replace PHP function", "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], "funding": [ { "url": "https://symfony.com/sponsor", @@ -4877,43 +4569,45 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-01-27T12:56:27+00:00" }, { - "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.9", + "name": "symfony/polyfill-ctype", + "version": "v1.23.0", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.1" }, "suggest": { - "psr/event-dispatcher": "", - "symfony/event-dispatcher-implementation": "" + "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "1.23-dev" }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4921,23 +4615,21 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to dispatching event", + "description": "Symfony polyfill for ctype functions", "homepage": "https://symfony.com", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "compatibility", + "ctype", + "polyfill", + "portable" ], "funding": [ { @@ -4953,33 +4645,44 @@ "type": "tidelift" } ], - "time": "2020-07-06T13:19:58+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { - "name": "symfony/filesystem", - "version": "v5.2.7", + "name": "symfony/polyfill-mbstring", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0", - "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.1" + }, + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { "psr-4": { - "Symfony\\Component\\Filesystem\\": "" + "Symfony\\Polyfill\\Mbstring\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4988,16 +4691,23 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides basic utilities for the filesystem", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], "funding": [ { "url": "https://symfony.com/sponsor", @@ -5012,36 +4722,34 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:42:13+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "symfony/options-resolver", - "version": "v5.2.4", + "name": "symfony/polyfill-php70", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", - "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php73": "~1.0", - "symfony/polyfill-php80": "^1.15" + "php": ">=7.1" }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" + "type": "metapackage", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5049,20 +4757,21 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides an improved replacement for the array_replace PHP function", + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "config", - "configuration", - "options" + "compatibility", + "polyfill", + "portable", + "shim" ], "funding": [ { @@ -5078,32 +4787,29 @@ "type": "tidelift" } ], - "time": "2021-01-27T12:56:27+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.23.0", + "name": "symfony/polyfill-php72", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "" }, "require": { "php": ">=7.1" }, - "suggest": { - "ext-ctype": "For best performance" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5112,7 +4818,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" + "Symfony\\Polyfill\\Php72\\": "" }, "files": [ "bootstrap.php" @@ -5124,21 +4830,21 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for ctype functions", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "ctype", "polyfill", - "portable" + "portable", + "shim" ], "funding": [ { @@ -5154,35 +4860,46 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.20.0", + "name": "symfony/polyfill-php73", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { "php": ">=7.1" }, - "type": "metapackage", + "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -5197,7 +4914,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -5219,20 +4936,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "symfony/polyfill-php72", + "name": "symfony/polyfill-php80", "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { @@ -5250,10 +4967,13 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, "files": [ "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5261,6 +4981,10 @@ "MIT" ], "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -5270,7 +4994,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -5353,6 +5077,82 @@ ], "time": "2021-04-08T10:27:02+00:00" }, + { + "name": "symfony/service-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "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" + ], + "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": "2020-09-07T11:33:47+00:00" + }, { "name": "symfony/stopwatch", "version": "v5.2.7", @@ -5976,5 +5776,5 @@ "platform-overrides": { "php": "7.2.33" }, - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.1.0" } diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index bf9b5964..99efb6ed 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -7,16 +7,6 @@ parameters: count: 1 path: src/Classes/FinalRule.php - - - message: "#^PHPDoc tag @var has invalid value \\(array\\\\)\\: Unexpected token \"\\-string\\>\", expected '\\>' at offset 32$#" - count: 2 - path: src/Classes/NoExtendsRule.php - - - - message: "#^PHPDoc tag @param has invalid value \\(array\\ \\$classesAllowedToBeExtended\\)\\: Unexpected token \"\\-string\\>\", expected '\\>' at offset 34$#" - count: 1 - path: src/Classes/NoExtendsRule.php - - message: "#^Language construct isset\\(\\) should not be used\\.$#" count: 1 @@ -32,4 +22,7 @@ parameters: count: 1 path: src/Functions/NoNullableReturnTypeDeclarationRule.php - + - + message: "#^Parameter \\#1 \\$argument of class ReflectionClass constructor expects class-string\\|T of object, string given\\.$#" + count: 1 + path: test/AutoReview/TestCodeTest.php diff --git a/phpstan.neon b/phpstan.neon index e7cdc355..3630fd05 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -4,13 +4,14 @@ includes: parameters: checkMissingIterableValueType: false + checkGenericClassInNonGenericObjectType: false ergebnis: classesAllowedToBeExtended: - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase - PHPStan\Testing\RuleTestCase - excludes_analyse: + excludePaths: - %currentWorkingDirectory%/test/Fixture/ inferPrivatePropertyTypeFromConstructor: true diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index 79d09969..e03eef97 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -120,7 +120,13 @@ private function isWhitelisted(Node $node): bool return false; } - if (\is_int(\preg_match_all('/@(\S+)(?=\s|$)/', $docComment->getReformattedText(), $matches))) { + $reformattedComment = $docComment->getReformattedText(); + + if (!\is_string($reformattedComment)) { + return false; + } + + if (\is_int(\preg_match_all('/@(\S+)(?=\s|$)/', $reformattedComment, $matches))) { foreach ($matches[1] as $annotation) { foreach (self::$whitelistedAnnotations as $whitelistedAnnotation) { if (0 === \mb_strpos($annotation, $whitelistedAnnotation)) { diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index bcfb38d2..fcf4dea0 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -15,7 +15,7 @@ use PhpParser\Node; use PHPStan\Analyser; -use PHPStan\Broker; +use PHPStan\Reflection; use PHPStan\Rules; use PHPStan\ShouldNotHappenException; @@ -29,13 +29,13 @@ final class TestCaseWithSuffixRule implements Rules\Rule ]; /** - * @var Broker\Broker + * @var Reflection\ReflectionProvider */ - private $broker; + private $reflectionProvider; - public function __construct(Broker\Broker $broker) + public function __construct(Reflection\ReflectionProvider $reflectionProvider) { - $this->broker = $broker; + $this->reflectionProvider = $reflectionProvider; } public function getNodeType(): string @@ -68,7 +68,7 @@ public function processNode(Node $node, Analyser\Scope $scope): array /** @var string $fullyQualifiedClassName */ $fullyQualifiedClassName = $node->namespacedName->toString(); - $classReflection = $this->broker->getClass($fullyQualifiedClassName); + $classReflection = $this->reflectionProvider->getClass($fullyQualifiedClassName); $extendedPhpunitTestCaseClassName = ''; diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index c8ca9a8e..aaab81a0 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -15,7 +15,6 @@ use PhpParser\Node; use PHPStan\Analyser\Scope; -use PHPStan\Broker\Broker; use PHPStan\Reflection; use PHPStan\Rules\Rule; use PHPStan\ShouldNotHappenException; @@ -23,9 +22,9 @@ final class NoParameterWithContainerTypeDeclarationRule implements Rule { /** - * @var Broker + * @var Reflection\ReflectionProvider */ - private $broker; + private $reflectionProvider; /** * @var array @@ -35,9 +34,9 @@ final class NoParameterWithContainerTypeDeclarationRule implements Rule /** * @param array $interfacesImplementedByContainers */ - public function __construct(Broker $broker, array $interfacesImplementedByContainers) + public function __construct(Reflection\ReflectionProvider $reflectionProvider, array $interfacesImplementedByContainers) { - $this->broker = $broker; + $this->reflectionProvider = $reflectionProvider; $this->interfacesImplementedByContainers = \array_filter( \array_map(static function (string $interfaceImplementedByContainers): string { return $interfaceImplementedByContainers; @@ -91,7 +90,7 @@ function (array $errors, Node\Param $node) use ($scope, $containingClass, $metho /** @var string $parameterName */ $parameterName = $variable->name; - $classUsedInTypeDeclaration = $this->broker->getClass($scope->resolveName($type)); + $classUsedInTypeDeclaration = $this->reflectionProvider->getClass($scope->resolveName($type)); if ($classUsedInTypeDeclaration->isInterface()) { foreach ($this->interfacesImplementedByContainers as $interfaceImplementedByContainer) { diff --git a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php index ac1ea73e..8b931d0a 100644 --- a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php +++ b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php @@ -78,6 +78,6 @@ public function provideCasesWhereAnalysisShouldFail(): iterable protected function getRule(): Rule { - return new TestCaseWithSuffixRule($this->createBroker()); + return new TestCaseWithSuffixRule($this->createReflectionProvider()); } } diff --git a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php index cba19974..11a1da18 100644 --- a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php @@ -178,7 +178,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable protected function getRule(): Rule { return new NoParameterWithContainerTypeDeclarationRule( - $this->createBroker(), + $this->createReflectionProvider(), [ Container\ContainerInterface::class, ServiceManager\ServiceLocatorInterface::class, From 4aea76c7e427defac8b33b9120df79cc38142c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 09:17:59 +0100 Subject: [PATCH 155/305] Fix: Rename .php_cs to .php-cs-fixer.php --- .github/workflows/integrate.yaml | 2 +- .github/workflows/renew.yaml | 2 +- .php_cs.fixture => .php-cs-fixer.fixture.php | 0 .php_cs => .php-cs-fixer.php | 2 +- Makefile | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) rename .php_cs.fixture => .php-cs-fixer.fixture.php (100%) rename .php_cs => .php-cs-fixer.php (96%) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 99011e8f..cb3989b7 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -77,7 +77,7 @@ jobs: restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" + run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --dry-run --verbose" dependency-analysis: name: "Dependency Analysis" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 026b0993..c90b28e6 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -65,7 +65,7 @@ jobs: restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose" + run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose" - name: "Commit modified files" uses: "stefanzweifel/git-auto-commit-action@v4.12.0" diff --git a/.php_cs.fixture b/.php-cs-fixer.fixture.php similarity index 100% rename from .php_cs.fixture rename to .php-cs-fixer.fixture.php diff --git a/.php_cs b/.php-cs-fixer.php similarity index 96% rename from .php_cs rename to .php-cs-fixer.php index 20b509d8..3c75c6d2 100644 --- a/.php_cs +++ b/.php-cs-fixer.php @@ -37,7 +37,7 @@ ]) ->ignoreDotFiles(false) ->in(__DIR__) - ->name('.php_cs'); + ->name('.php-cs-fixer.php'); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php_cs.cache'); diff --git a/Makefile b/Makefile index 95a21ba1..d6668281 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ coding-standards: vendor ## Normalizes composer.json with ergebnis/composer-norm composer normalize yamllint -c .yamllint.yaml --strict . mkdir -p .build/php-cs-fixer - vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose + vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose .PHONY: dependency-analysis dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer-require-checker From a42e41ae4dcef19be3984b541aa12c4ad203d874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 09:21:14 +0100 Subject: [PATCH 156/305] Fix: Adjust usage of octokit --- .github/workflows/triage.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index f0fc133d..d606e929 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -34,7 +34,7 @@ jobs: if (matches instanceof Array && branchPrefixLabels.hasOwnProperty(matches[1])) { const label = branchPrefixLabels[matches[1]] - github.issues.addLabels({ + github.rest.issues.addLabels({ issue_number: pullRequest.number, labels: [ label From 850e442545bcf6fc3eea3165b166cd1089303796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 09:26:42 +0100 Subject: [PATCH 157/305] Fix: Use --generate-baseline option for generating baseline for phpstan/phpstan --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d6668281..41af1157 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan static-code-analysis-baseline: vendor ## Generates a baseline for static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan echo '' > phpstan-baseline.neon - vendor/bin/phpstan analyze --configuration=phpstan.neon --error-format=baselineNeon --memory-limit=-1 > phpstan-baseline.neon || true + vendor/bin/phpstan analyze --configuration=phpstan.neon --generate-baseline --memory-limit=-1 mkdir -p .build/psalm vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml From 410cbb7d9069eea9bbf57cf30cad975f4679976a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 09:28:52 +0100 Subject: [PATCH 158/305] Fix: Run 'make static-code-analysis-baseline' --- phpstan-baseline.neon | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 99efb6ed..653e61f8 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,5 +1,3 @@ - - parameters: ignoreErrors: - @@ -23,6 +21,7 @@ parameters: path: src/Functions/NoNullableReturnTypeDeclarationRule.php - - message: "#^Parameter \\#1 \\$argument of class ReflectionClass constructor expects class-string\\|T of object, string given\\.$#" + message: "#^Parameter \\#1 \\$argument of class ReflectionClass constructor expects class\\-string\\\\|T of object, string given\\.$#" count: 1 path: test/AutoReview/TestCodeTest.php + From 8ab19d0a1f79c0011508b8accbd654ebcf1668d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 09:24:11 +0100 Subject: [PATCH 159/305] Enhancement: Update vimeo/psalm --- composer.json | 4 +- composer.lock | 765 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 555 insertions(+), 214 deletions(-) diff --git a/composer.json b/composer.json index 6fc177ac..a03fd9e8 100644 --- a/composer.json +++ b/composer.json @@ -31,9 +31,9 @@ "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.0.0", "phpunit/phpunit": "^8.5.21", - "psalm/plugin-phpunit": "~0.12.2", + "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^3.18", + "vimeo/psalm": "^4.12.0", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 63b77c4d..79bcda73 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8c640b4601abebaf4b67c043ed0f3c5f", + "content-hash": "1dc4ee15469b78b0fc5d40df04881282", "packages": [ { "name": "nikic/php-parser", - "version": "v4.3.0", + "version": "v4.13.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" + "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/63a79e8daa781cac14e5195e63ed8ae231dd10fd", + "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd", "shasum": "" }, "require": { @@ -25,8 +25,8 @@ "php": ">=7.0" }, "require-dev": { - "ircmaxell/php-yacc": "0.0.5", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -34,7 +34,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.9-dev" } }, "autoload": { @@ -56,7 +56,11 @@ "parser", "php" ], - "time": "2019-11-08T13:50:10+00:00" + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.1" + }, + "time": "2021-11-03T20:52:16+00:00" }, { "name": "phpstan/phpstan", @@ -126,27 +130,27 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.5.0", + "version": "v2.6.1", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc" + "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/f220a51458bf4dd0dedebb171ac3457813c72bbc", - "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc", + "url": "https://api.github.com/repos/amphp/amp/zipball/c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", + "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", "shasum": "" }, "require": { - "php": ">=7" + "php": ">=7.1" }, "require-dev": { "amphp/php-cs-fixer-config": "dev-master", "amphp/phpunit-util": "^1", "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6.0.9 | ^7", + "phpunit/phpunit": "^7 | ^8 | ^9", "psalm/phar": "^3.11@dev", "react/promise": "^2" }, @@ -200,26 +204,31 @@ "non-blocking", "promise" ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.6.1" + }, "funding": [ { "url": "https://github.com/amphp", "type": "github" } ], - "time": "2020-07-14T21:47:18+00:00" + "time": "2021-09-23T18:43:08+00:00" }, { "name": "amphp/byte-stream", - "version": "v1.8.0", + "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", - "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", "shasum": "" }, "require": { @@ -272,20 +281,31 @@ "non-blocking", "stream" ], - "time": "2020-06-29T18:35:05+00:00" + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-03-30T17:13:30+00:00" }, { "name": "composer/package-versions-deprecated", - "version": "1.11.99", + "version": "1.11.99.4", "source": { "type": "git", "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855" + "reference": "b174585d1fe49ceed21928a945138948cb394600" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", - "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b174585d1fe49ceed21928a945138948cb394600", + "reference": "b174585d1fe49ceed21928a945138948cb394600", "shasum": "" }, "require": { @@ -327,6 +347,10 @@ } ], "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.4" + }, "funding": [ { "url": "https://packagist.com", @@ -341,20 +365,20 @@ "type": "tidelift" } ], - "time": "2020-08-25T05:50:16+00:00" + "time": "2021-09-13T08:41:34+00:00" }, { "name": "composer/semver", - "version": "3.2.4", + "version": "3.2.6", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" + "reference": "83e511e247de329283478496f7a1e114c9517506" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", - "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506", + "reference": "83e511e247de329283478496f7a1e114c9517506", "shasum": "" }, "require": { @@ -403,6 +427,11 @@ "validation", "versioning" ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.6" + }, "funding": [ { "url": "https://packagist.com", @@ -417,7 +446,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T08:59:24+00:00" + "time": "2021-10-25T11:34:17+00:00" }, { "name": "composer/xdebug-handler", @@ -462,6 +491,11 @@ "Xdebug", "performance" ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" + }, "funding": [ { "url": "https://packagist.com", @@ -541,6 +575,10 @@ "MIT" ], "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, "time": "2019-12-04T15:06:13+00:00" }, { @@ -1297,25 +1335,25 @@ }, { "name": "felixfbecker/advanced-json-rpc", - "version": "v3.1.1", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40" + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/0ed363f8de17d284d479ec813c9ad3f6834b5c40", - "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", "shasum": "" }, "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0", - "php": ">=7.0", - "phpdocumentor/reflection-docblock": "^4.0.0 || ^5.0.0" + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" }, "require-dev": { - "phpunit/phpunit": "^6.0.0" + "phpunit/phpunit": "^7.0 || ^8.0" }, "type": "library", "autoload": { @@ -1334,31 +1372,40 @@ } ], "description": "A more advanced JSONRPC implementation", - "time": "2020-03-11T15:21:41+00:00" + "support": { + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" + }, + "time": "2021-06-11T22:34:44+00:00" }, { "name": "felixfbecker/language-server-protocol", - "version": "v1.4.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "378801f6139bb74ac215d81cca1272af61df9a9f" + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/378801f6139bb74ac215d81cca1272af61df9a9f", - "reference": "378801f6139bb74ac215d81cca1272af61df9a9f", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.1" }, "require-dev": { "phpstan/phpstan": "*", - "phpunit/phpunit": "^6.3", - "squizlabs/php_codesniffer": "^3.1" + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { "psr-4": { "LanguageServerProtocol\\": "src/" @@ -1381,7 +1428,11 @@ "php", "server" ], - "time": "2019-06-23T21:03:50+00:00" + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/1.5.1" + }, + "time": "2021-02-22T14:02:09+00:00" }, { "name": "friendsofphp/php-cs-fixer", @@ -1764,16 +1815,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v2.1.0", + "version": "v4.0.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" + "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", - "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", "shasum": "" }, "require": { @@ -1781,10 +1832,10 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-spl": "*", - "php": ">=5.6" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", "squizlabs/php_codesniffer": "~3.5" }, "type": "library", @@ -1806,7 +1857,12 @@ } ], "description": "Map nested JSON structures onto PHP classes", - "time": "2020-04-16T18:48:43+00:00" + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" + }, + "time": "2020-12-01T19:48:11+00:00" }, { "name": "nette/di", @@ -2306,6 +2362,10 @@ "xml", "xml conversion" ], + "support": { + "issues": "https://github.com/nullivex/lib-array2xml/issues", + "source": "https://github.com/nullivex/lib-array2xml/tree/master" + }, "time": "2019-03-29T20:06:56+00:00" }, { @@ -2509,32 +2569,36 @@ "reflection", "static analysis" ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, "time": "2020-06-27T09:03:43+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.1.0", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", "shasum": "" }, "require": { - "ext-filter": "^7.1", - "php": "^7.2", - "phpdocumentor/reflection-common": "^2.0", - "phpdocumentor/type-resolver": "^1.0", - "webmozart/assert": "^1" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "doctrine/instantiator": "^1", - "mockery/mockery": "^1" + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -2562,20 +2626,24 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-02-22T12:28:44+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "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": { @@ -2608,7 +2676,11 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2021-09-17T15:28:14+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1" + }, + "time": "2021-10-02T14:08:47+00:00" }, { "name": "phpspec/prophecy", @@ -3196,30 +3268,34 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.12.2", + "version": "0.16.1", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "85ee5a080a5281e63085d933b30a06b1b1680758" + "reference": "5dd3be04f37a857d52880ef6af2524a441dfef24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/85ee5a080a5281e63085d933b30a06b1b1680758", - "reference": "85ee5a080a5281e63085d933b30a06b1b1680758", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/5dd3be04f37a857d52880ef6af2524a441dfef24", + "reference": "5dd3be04f37a857d52880ef6af2524a441dfef24", "shasum": "" }, "require": { "composer/package-versions-deprecated": "^1.10", "composer/semver": "^1.4 || ^2.0 || ^3.0", "ext-simplexml": "*", - "php": "^7.1.3 || ^8.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.6.2 || dev-master || dev-4.x" + "php": "^7.1 || ^8.0", + "vimeo/psalm": "dev-master || dev-4.x || ^4.5" + }, + "conflict": { + "phpunit/phpunit": "<7.5" }, "require-dev": { "codeception/codeception": "^4.0.3", + "php": "^7.3 || ^8.0", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", "squizlabs/php_codesniffer": "^3.3.1", - "weirdan/codeception-psalm-module": "^0.7.1", + "weirdan/codeception-psalm-module": "^0.11.0", "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "type": "psalm-plugin", @@ -3244,31 +3320,30 @@ } ], "description": "Psalm plugin for PHPUnit", - "time": "2020-09-28T17:25:39+00:00" + "support": { + "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues", + "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.16.1" + }, + "time": "2021-06-18T23:56:46+00:00" }, { "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/" @@ -3281,7 +3356,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)", @@ -3293,7 +3368,11 @@ "container-interop", "psr" ], - "time": "2017-02-14T16:28:37+00:00" + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.1" + }, + "time": "2021-03-05T17:36:06+00:00" }, { "name": "psr/log", @@ -3340,6 +3419,9 @@ "psr", "psr-3" ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, "time": "2021-05-03T11:20:27+00:00" }, { @@ -3517,6 +3599,10 @@ "unidiff", "unified diff" ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4084,42 +4170,46 @@ }, { "name": "symfony/console", - "version": "v4.4.22", + "version": "v5.3.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625" + "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625", - "reference": "36bbd079b69b94bcc9c9c9e1e37ca3b1e7971625", + "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3", + "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3", "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.15", - "symfony/service-contracts": "^1.1|^2" + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" }, "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", + "psr/log": ">=3", + "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" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/event-dispatcher": "^4.3", + "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": "^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", @@ -4152,6 +4242,15 @@ ], "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/v5.3.10" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -4166,7 +4265,7 @@ "type": "tidelift" } ], - "time": "2021-04-16T17:32:19+00:00" + "time": "2021-10-26T09:30:15+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4216,6 +4315,9 @@ ], "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", @@ -4372,6 +4474,9 @@ "interoperability", "standards" ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.9" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -4631,6 +4736,174 @@ "polyfill", "portable" ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/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-intl-grapheme", + "version": "v1.23.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "16880ba9c5ebe3642d1995ab866db29270b36535" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535", + "reference": "16880ba9c5ebe3642d1995ab866db29270b36535", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "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\\Intl\\Grapheme\\": "" + }, + "files": [ + "bootstrap.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": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.1" + }, + "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-27T12:26:48+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.23.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + }, + "dist": { + "type": "zip", + "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": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "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 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", @@ -4649,16 +4922,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", "shasum": "" }, "require": { @@ -4670,7 +4943,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4708,6 +4981,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -4722,7 +4998,7 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T12:26:48+00:00" }, { "name": "symfony/polyfill-php70", @@ -4864,16 +5140,16 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", "shasum": "" }, "require": { @@ -4882,7 +5158,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4922,6 +5198,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -4936,20 +5215,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", "shasum": "" }, "require": { @@ -4958,7 +5237,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5002,6 +5281,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5016,7 +5298,7 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-07-28T13:41:28+00:00" }, { "name": "symfony/process", @@ -5079,21 +5361,21 @@ }, { "name": "symfony/service-contracts", - "version": "v2.2.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.0" + "psr/container": "^1.1" }, "suggest": { "symfony/service-implementation": "" @@ -5101,7 +5383,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -5137,6 +5419,9 @@ "interoperability", "standards" ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5151,7 +5436,7 @@ "type": "tidelift" } ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2021-04-01T10:43:52+00:00" }, { "name": "symfony/stopwatch", @@ -5212,6 +5497,89 @@ ], "time": "2021-03-29T15:28:41+00:00" }, + { + "name": "symfony/string", + "version": "v5.3.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", + "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", + "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.10" + }, + "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-10-27T18:21:46+00:00" + }, { "name": "symfony/yaml", "version": "v5.1.3", @@ -5470,25 +5838,26 @@ }, { "name": "vimeo/psalm", - "version": "3.18.2", + "version": "4.12.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "19aa905f7c3c7350569999a93c40ae91ae4e1626" + "reference": "e42bc4a23f67acba28a23bb09c348e2ff38a1d87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/19aa905f7c3c7350569999a93c40ae91ae4e1626", - "reference": "19aa905f7c3c7350569999a93c40ae91ae4e1626", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/e42bc4a23f67acba28a23bb09c348e2ff38a1d87", + "reference": "e42bc4a23f67acba28a23bb09c348e2ff38a1d87", "shasum": "" }, "require": { - "amphp/amp": "^2.1", + "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", "composer/package-versions-deprecated": "^1.8.0", "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1", + "composer/xdebug-handler": "^1.1 || ^2.0", "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-ctype": "*", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", @@ -5496,32 +5865,31 @@ "ext-simplexml": "*", "ext-tokenizer": "*", "felixfbecker/advanced-json-rpc": "^3.0.3", - "felixfbecker/language-server-protocol": "^1.4", - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0", - "nikic/php-parser": "4.3.* || 4.4.* || 4.5.* || 4.6.* || ^4.8", + "felixfbecker/language-server-protocol": "^1.5", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.13", "openlss/lib-array2xml": "^1.0", - "php": "^7.1.3|^8", + "php": "^7.1|^8", "sebastian/diff": "^3.0 || ^4.0", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", - "webmozart/glob": "^4.1", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", "webmozart/path-util": "^2.3" }, "provide": { "psalm/psalm": "self.version" }, "require-dev": { - "amphp/amp": "^2.4.2", "bamarni/composer-bin-plugin": "^1.2", - "brianium/paratest": "^4.0.0", + "brianium/paratest": "^4.0||^6.0", "ext-curl": "*", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5", - "phpmyadmin/sql-parser": "5.1.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpdocumentor/reflection-docblock": "^5", + "phpmyadmin/sql-parser": "5.1.0||dev-master", "phpspec/prophecy": ">=1.9.0", - "phpunit/phpunit": "^7.5.16 || ^8.5 || ^9.0", - "psalm/plugin-phpunit": "^0.11", - "slevomat/coding-standard": "^5.0", + "phpunit/phpunit": "^9.0", + "psalm/plugin-phpunit": "^0.16", + "slevomat/coding-standard": "^7.0", "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3", + "symfony/process": "^4.3 || ^5.0 || ^6.0", "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "suggest": { @@ -5537,7 +5905,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev", + "dev-master": "4.x-dev", + "dev-3.x": "3.x-dev", "dev-2.x": "2.x-dev", "dev-1.x": "1.x-dev" } @@ -5566,33 +5935,43 @@ "inspection", "php" ], - "time": "2020-10-20T13:48:22+00:00" + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/4.12.0" + }, + "time": "2021-11-06T10:31:17+00:00" }, { "name": "webmozart/assert", - "version": "1.8.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", + "php": "^7.2 || ^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "vimeo/psalm": "<3.9.1" + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" + "phpunit/phpunit": "^8.5.13" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -5614,54 +5993,11 @@ "check", "validate" ], - "time": "2020-04-18T12:12:48+00:00" - }, - { - "name": "webmozart/glob", - "version": "4.1.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/glob.git", - "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", - "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", - "shasum": "" - }, - "require": { - "php": "^5.3.3|^7.0", - "webmozart/path-util": "^2.2" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1", - "symfony/filesystem": "^2.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Glob\\": "src/" - } + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.10.0" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A PHP implementation of Ant's glob.", - "time": "2015-12-29T11:14:33+00:00" + "time": "2021-03-09T10:59:23+00:00" }, { "name": "webmozart/path-util", @@ -5707,6 +6043,11 @@ } ], "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "support": { + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" + }, + "abandoned": "symfony/filesystem", "time": "2015-12-17T08:42:14+00:00" }, { From 3f3840a6b246557aa808bdf0faaf04b8a14953e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 09:30:17 +0100 Subject: [PATCH 160/305] Fix: Run 'make static-code-analysis-baseline' --- psalm-baseline.xml | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 23aaa551..b04237b4 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,24 +1,39 @@ - + + + $node->namespacedName->toString() + + + toString + toString + true === $allowAbstractClasses - - isset($node->namespacedName) - + + $node->namespacedName->toString() + + + toString + - - isset($node->namespacedName) - - - string - + + toString + + + + + $node->namespacedName->toString() + + + toString + From 5055b512a386574fe209242f815ab318607b773a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 09:31:18 +0100 Subject: [PATCH 161/305] Fix: Do not bother caching cache files for phpstan/phpstan and vimeo/psalm --- .github/workflows/integrate.yaml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index cb3989b7..f766898c 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -163,26 +163,12 @@ jobs: - name: "Create cache directory for phpstan/phpstan" run: "mkdir -p .build/phpstan" - - name: "Cache cache directory for phpstan/phpstan" - uses: "actions/cache@v2.1.6" - with: - path: ".build/phpstan" - key: "php-${{ matrix.php-version }}-phpstan-${{ github.sha }}" - restore-keys: "php-${{ matrix.php-version }}-phpstan-" - - name: "Run phpstan/phpstan" run: "vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1" - name: "Create cache directory for vimeo/psalm" run: "mkdir -p .build/psalm" - - name: "Cache cache directory for vimeo/psalm" - uses: "actions/cache@v2.1.6" - with: - path: ".build/psalm" - key: "php-${{ matrix.php-version }}-psalm-${{ github.sha }}" - restore-keys: "php-${{ matrix.php-version }}-psalm-" - - name: "Run vimeo/psalm" run: "vendor/bin/psalm --config=psalm.xml --diff --shepherd --show-info=false --stats --threads=4" From e8326d49989dcbb4468129a6902ef0e23a87d084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 09:34:44 +0100 Subject: [PATCH 162/305] Fix: Split condition --- src/Classes/FinalRule.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index e03eef97..0c66d117 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -75,9 +75,11 @@ public function processNode(Node $node, Scope $scope): array )); } - if (!isset($node->namespacedName) - || \in_array($node->namespacedName->toString(), $this->classesNotRequiredToBeAbstractOrFinal, true) - ) { + if (!isset($node->namespacedName)) { + return []; + } + + if (\in_array($node->namespacedName->toString(), $this->classesNotRequiredToBeAbstractOrFinal, true)) { return []; } From 8bcf210c51cec5949628223df35e22bfbbe4164c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Nov 2021 09:01:09 +0000 Subject: [PATCH 163/305] composer(deps-dev): bump nette/di from 3.0.1 to 3.0.11 Bumps [nette/di](https://github.com/nette/di) from 3.0.1 to 3.0.11. - [Release notes](https://github.com/nette/di/releases) - [Commits](https://github.com/nette/di/compare/v3.0.1...v3.0.11) --- updated-dependencies: - dependency-name: nette/di dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 200 ++++++++++++++++++++++++++++++-------------------- 2 files changed, 120 insertions(+), 82 deletions(-) diff --git a/composer.json b/composer.json index a03fd9e8..276eb9bf 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", - "nette/di": "^3.0.1", + "nette/di": "^3.0.11", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.0.0", "phpunit/phpunit": "^8.5.21", diff --git a/composer.lock b/composer.lock index 79bcda73..0d31adb5 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": "1dc4ee15469b78b0fc5d40df04881282", + "content-hash": "50925a96a09da5de14e516a172527fca", "packages": [ { "name": "nikic/php-parser", @@ -1866,32 +1866,33 @@ }, { "name": "nette/di", - "version": "v3.0.1", + "version": "v3.0.11", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d" + "reference": "942e406f63b88b57cb4e095ae0fd95c103d12c5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/4aff517a1c6bb5c36fa09733d4cea089f529de6d", - "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d", + "url": "https://api.github.com/repos/nette/di/zipball/942e406f63b88b57cb4e095ae0fd95c103d12c5b", + "reference": "942e406f63b88b57cb4e095ae0fd95c103d12c5b", "shasum": "" }, "require": { "ext-tokenizer": "*", - "nette/neon": "^3.0", - "nette/php-generator": "^3.2.2", + "nette/neon": "^3.3", + "nette/php-generator": "^3.3.3", "nette/robot-loader": "^3.2", - "nette/schema": "^1.0", - "nette/utils": "^3.0", - "php": ">=7.1" + "nette/schema": "^1.1", + "nette/utils": "^3.1.6", + "php": ">=7.1 <8.2" }, "conflict": { "nette/bootstrap": "<3.0" }, "require-dev": { "nette/tester": "^2.2", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", @@ -1903,16 +1904,13 @@ "autoload": { "classmap": [ "src/" - ], - "files": [ - "src/compatibility.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -1924,7 +1922,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", + "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP features.", "homepage": "https://nette.org", "keywords": [ "compiled", @@ -1935,24 +1933,28 @@ "nette", "static" ], - "time": "2019-08-07T12:11:33+00:00" + "support": { + "issues": "https://github.com/nette/di/issues", + "source": "https://github.com/nette/di/tree/v3.0.11" + }, + "time": "2021-10-26T11:44:44+00:00" }, { "name": "nette/finder", - "version": "v2.5.1", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/nette/finder.git", - "reference": "14164e1ddd69e9c5f627ff82a10874b3f5bba5fe" + "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/14164e1ddd69e9c5f627ff82a10874b3f5bba5fe", - "reference": "14164e1ddd69e9c5f627ff82a10874b3f5bba5fe", + "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50", + "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50", "shasum": "" }, "require": { - "nette/utils": "^2.4 || ~3.0.0", + "nette/utils": "^2.4 || ^3.0", "php": ">=7.1" }, "conflict": { @@ -1960,6 +1962,7 @@ }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", @@ -1997,35 +2000,39 @@ "iterator", "nette" ], - "time": "2019-07-11T18:02:17+00:00" + "support": { + "issues": "https://github.com/nette/finder/issues", + "source": "https://github.com/nette/finder/tree/v2.5.2" + }, + "time": "2020-01-03T20:35:40+00:00" }, { "name": "nette/neon", - "version": "v3.0.0", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb" + "reference": "33d262a0c4fb6c6371385f6dc8532f4e32c20ebc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/cbff32059cbdd8720deccf9e9eace6ee516f02eb", - "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb", + "url": "https://api.github.com/repos/nette/neon/zipball/33d262a0c4fb6c6371385f6dc8532f4e32c20ebc", + "reference": "33d262a0c4fb6c6371385f6dc8532f4e32c20ebc", "shasum": "" }, "require": { - "ext-iconv": "*", "ext-json": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -2036,8 +2043,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -2049,8 +2056,8 @@ "homepage": "https://nette.org/contributors" } ], - "description": "? Nette NEON: encodes and decodes NEON file format.", - "homepage": "http://ne-on.org", + "description": "🍸 Nette NEON: encodes and decodes NEON file format.", + "homepage": "https://ne-on.org", "keywords": [ "export", "import", @@ -2058,34 +2065,43 @@ "nette", "yaml" ], - "time": "2019-02-05T21:30:40+00:00" + "support": { + "issues": "https://github.com/nette/neon/issues", + "source": "https://github.com/nette/neon/tree/v3.3.0" + }, + "time": "2021-10-19T22:11:22+00:00" }, { "name": "nette/php-generator", - "version": "v3.3.1", + "version": "v3.6.4", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "4240fd7adf499138c07b814ef9b9a6df9f6d7187" + "reference": "b8375ac20760c62b6816f8c2eaeabbbca305eed7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/4240fd7adf499138c07b814ef9b9a6df9f6d7187", - "reference": "4240fd7adf499138c07b814ef9b9a6df9f6d7187", + "url": "https://api.github.com/repos/nette/php-generator/zipball/b8375ac20760c62b6816f8c2eaeabbbca305eed7", + "reference": "b8375ac20760c62b6816f8c2eaeabbbca305eed7", "shasum": "" }, "require": { - "nette/utils": "^2.4.2 || ~3.0.0", - "php": ">=7.1" + "nette/utils": "^3.1.2", + "php": ">=7.2 <8.2" }, "require-dev": { - "nette/tester": "^2.0", - "tracy/tracy": "^2.3" + "nette/tester": "^2.4", + "nikic/php-parser": "^4.13", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.8" + }, + "suggest": { + "nikic/php-parser": "to use ClassType::withBodiesFrom() & GlobalFunction::withBodyFrom()" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.6-dev" } }, "autoload": { @@ -2096,8 +2112,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -2109,7 +2125,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.3 features.", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.1 features.", "homepage": "https://nette.org", "keywords": [ "code", @@ -2117,36 +2133,41 @@ "php", "scaffolding" ], - "time": "2019-11-22T11:12:11+00:00" + "support": { + "issues": "https://github.com/nette/php-generator/issues", + "source": "https://github.com/nette/php-generator/tree/v3.6.4" + }, + "time": "2021-10-15T10:28:31+00:00" }, { "name": "nette/robot-loader", - "version": "v3.2.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/nette/robot-loader.git", - "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c" + "reference": "e2adc334cb958164c050f485d99c44c430f51fe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", - "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/e2adc334cb958164c050f485d99c44c430f51fe2", + "reference": "e2adc334cb958164c050f485d99c44c430f51fe2", "shasum": "" }, "require": { "ext-tokenizer": "*", - "nette/finder": "^2.5", + "nette/finder": "^2.5 || ^3.0", "nette/utils": "^3.0", "php": ">=7.1" }, "require-dev": { "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -2157,8 +2178,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -2170,7 +2191,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "? Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", "homepage": "https://nette.org", "keywords": [ "autoload", @@ -2179,34 +2200,39 @@ "nette", "trait" ], - "time": "2019-03-08T21:57:24+00:00" + "support": { + "issues": "https://github.com/nette/robot-loader/issues", + "source": "https://github.com/nette/robot-loader/tree/v3.4.1" + }, + "time": "2021-08-25T15:53:54+00:00" }, { "name": "nette/schema", - "version": "v1.0.1", + "version": "v1.2.2", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "337117df1dade22e2ba1fdc4a4b832c1e9b06b76" + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/337117df1dade22e2ba1fdc4a4b832c1e9b06b76", - "reference": "337117df1dade22e2ba1fdc4a4b832c1e9b06b76", + "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", "shasum": "" }, "require": { - "nette/utils": "^3.0.1", - "php": ">=7.1" + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.2" }, "require-dev": { - "nette/tester": "^2.2", - "tracy/tracy": "^2.3" + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -2217,8 +2243,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -2236,32 +2262,40 @@ "config", "nette" ], - "time": "2019-10-31T20:52:19+00:00" + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.2" + }, + "time": "2021-10-15T11:40:02+00:00" }, { "name": "nette/utils", - "version": "v3.0.2", + "version": "v3.2.5", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "c133e18c922dcf3ad07673077d92d92cef25a148" + "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/c133e18c922dcf3ad07673077d92d92cef25a148", - "reference": "c133e18c922dcf3ad07673077d92d92cef25a148", + "url": "https://api.github.com/repos/nette/utils/zipball/9cd80396ca58d7969ab44fc7afcf03624dfa526e", + "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2 <8.2" + }, + "conflict": { + "nette/di": "<3.0.6" }, "require-dev": { "nette/tester": "~2.0", + "phpstan/phpstan": "^0.12", "tracy/tracy": "^2.3" }, "suggest": { "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize() and toAscii()", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", @@ -2271,7 +2305,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -2282,8 +2316,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -2295,7 +2329,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", "homepage": "https://nette.org", "keywords": [ "array", @@ -2313,7 +2347,11 @@ "utility", "validation" ], - "time": "2019-10-21T20:40:16+00:00" + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.5" + }, + "time": "2021-09-20T10:50:11+00:00" }, { "name": "openlss/lib-array2xml", From f50f9474e459869ecac652e10c1a8c43f4a68e7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 13:11:35 +0100 Subject: [PATCH 164/305] Fix: Wrapping --- src/Classes/FinalRule.php | 12 ++++++++---- src/Classes/NoExtendsRule.php | 6 ++++-- .../PHPUnit/Framework/TestCaseWithSuffixRule.php | 6 ++++-- src/Closures/NoNullableReturnTypeDeclarationRule.php | 6 ++++-- src/Closures/NoParameterWithNullDefaultValueRule.php | 6 ++++-- .../NoParameterWithNullableTypeDeclarationRule.php | 6 ++++-- src/Expressions/NoCompactRule.php | 6 ++++-- src/Expressions/NoEmptyRule.php | 6 ++++-- src/Expressions/NoErrorSuppressionRule.php | 6 ++++-- src/Expressions/NoEvalRule.php | 6 ++++-- src/Expressions/NoIssetRule.php | 6 ++++-- src/Files/DeclareStrictTypesRule.php | 6 ++++-- .../NoNullableReturnTypeDeclarationRule.php | 6 ++++-- .../NoParameterWithNullDefaultValueRule.php | 6 ++++-- .../NoParameterWithNullableTypeDeclarationRule.php | 6 ++++-- src/Methods/FinalInAbstractClassRule.php | 6 ++++-- .../NoConstructorParameterWithDefaultValueRule.php | 6 ++++-- src/Methods/NoNullableReturnTypeDeclarationRule.php | 6 ++++-- .../NoParameterWithContainerTypeDeclarationRule.php | 12 ++++++++---- src/Methods/NoParameterWithNullDefaultValueRule.php | 6 ++++-- .../NoParameterWithNullableTypeDeclarationRule.php | 6 ++++-- src/Methods/PrivateInFinalClassRule.php | 6 ++++-- src/Statements/NoSwitchRule.php | 6 ++++-- 23 files changed, 100 insertions(+), 50 deletions(-) diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index 0c66d117..b78d2ec9 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -48,8 +48,10 @@ final class FinalRule implements Rule /** * @param string[] $classesNotRequiredToBeAbstractOrFinal */ - public function __construct(bool $allowAbstractClasses, array $classesNotRequiredToBeAbstractOrFinal) - { + public function __construct( + bool $allowAbstractClasses, + array $classesNotRequiredToBeAbstractOrFinal + ) { $this->allowAbstractClasses = $allowAbstractClasses; $this->classesNotRequiredToBeAbstractOrFinal = \array_map(static function (string $classNotRequiredToBeAbstractOrFinal): string { return $classNotRequiredToBeAbstractOrFinal; @@ -65,8 +67,10 @@ public function getNodeType(): string return Node\Stmt\Class_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\Class_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Classes/NoExtendsRule.php b/src/Classes/NoExtendsRule.php index 03abf5da..058e676f 100644 --- a/src/Classes/NoExtendsRule.php +++ b/src/Classes/NoExtendsRule.php @@ -51,8 +51,10 @@ public function getNodeType(): string return Node\Stmt\Class_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\Class_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index fcf4dea0..f189b09a 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -43,8 +43,10 @@ public function getNodeType(): string return Node\Stmt\Class_::class; } - public function processNode(Node $node, Analyser\Scope $scope): array - { + public function processNode( + Node $node, + Analyser\Scope $scope + ): array { if (!$node instanceof Node\Stmt\Class_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Closures/NoNullableReturnTypeDeclarationRule.php b/src/Closures/NoNullableReturnTypeDeclarationRule.php index 194ad926..170800d5 100644 --- a/src/Closures/NoNullableReturnTypeDeclarationRule.php +++ b/src/Closures/NoNullableReturnTypeDeclarationRule.php @@ -25,8 +25,10 @@ public function getNodeType(): string return Node\Expr\Closure::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Expr\Closure) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Closures/NoParameterWithNullDefaultValueRule.php b/src/Closures/NoParameterWithNullDefaultValueRule.php index b4dff496..6f3c6065 100644 --- a/src/Closures/NoParameterWithNullDefaultValueRule.php +++ b/src/Closures/NoParameterWithNullDefaultValueRule.php @@ -25,8 +25,10 @@ public function getNodeType(): string return Node\Expr\Closure::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Expr\Closure) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php index 9f4ba6d0..8d195377 100644 --- a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php @@ -25,8 +25,10 @@ public function getNodeType(): string return Node\Expr\Closure::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Expr\Closure) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Expressions/NoCompactRule.php b/src/Expressions/NoCompactRule.php index bd45c357..6b460924 100644 --- a/src/Expressions/NoCompactRule.php +++ b/src/Expressions/NoCompactRule.php @@ -25,8 +25,10 @@ public function getNodeType(): string return Node\Expr\FuncCall::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Expr\FuncCall) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Expressions/NoEmptyRule.php b/src/Expressions/NoEmptyRule.php index b7146729..df24221b 100644 --- a/src/Expressions/NoEmptyRule.php +++ b/src/Expressions/NoEmptyRule.php @@ -24,8 +24,10 @@ public function getNodeType(): string return Node\Expr\Empty_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { return [ 'Language construct empty() should not be used.', ]; diff --git a/src/Expressions/NoErrorSuppressionRule.php b/src/Expressions/NoErrorSuppressionRule.php index 73c82cb6..0a12e44e 100644 --- a/src/Expressions/NoErrorSuppressionRule.php +++ b/src/Expressions/NoErrorSuppressionRule.php @@ -24,8 +24,10 @@ public function getNodeType(): string return Node\Expr\ErrorSuppress::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { return [ 'Error suppression via "@" should not be used.', ]; diff --git a/src/Expressions/NoEvalRule.php b/src/Expressions/NoEvalRule.php index 9ccb38ec..666f6cd6 100644 --- a/src/Expressions/NoEvalRule.php +++ b/src/Expressions/NoEvalRule.php @@ -24,8 +24,10 @@ public function getNodeType(): string return Node\Expr\Eval_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { return [ 'Language construct eval() should not be used.', ]; diff --git a/src/Expressions/NoIssetRule.php b/src/Expressions/NoIssetRule.php index dae9c03c..aa492ab3 100644 --- a/src/Expressions/NoIssetRule.php +++ b/src/Expressions/NoIssetRule.php @@ -24,8 +24,10 @@ public function getNodeType(): string return Node\Expr\Isset_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { return [ 'Language construct isset() should not be used.', ]; diff --git a/src/Files/DeclareStrictTypesRule.php b/src/Files/DeclareStrictTypesRule.php index a5d89d2d..23344032 100644 --- a/src/Files/DeclareStrictTypesRule.php +++ b/src/Files/DeclareStrictTypesRule.php @@ -26,8 +26,10 @@ public function getNodeType(): string return FileNode::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof FileNode) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index fe837df3..b39eee7d 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -25,8 +25,10 @@ public function getNodeType(): string return Node\Stmt\Function_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\Function_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Functions/NoParameterWithNullDefaultValueRule.php b/src/Functions/NoParameterWithNullDefaultValueRule.php index 70cf8a4e..eb349ddc 100644 --- a/src/Functions/NoParameterWithNullDefaultValueRule.php +++ b/src/Functions/NoParameterWithNullDefaultValueRule.php @@ -25,8 +25,10 @@ public function getNodeType(): string return Node\Stmt\Function_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\Function_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php index 1abd966f..837f2cc5 100644 --- a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php @@ -25,8 +25,10 @@ public function getNodeType(): string return Node\Stmt\Function_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\Function_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Methods/FinalInAbstractClassRule.php b/src/Methods/FinalInAbstractClassRule.php index 281fffc5..ae7877c5 100644 --- a/src/Methods/FinalInAbstractClassRule.php +++ b/src/Methods/FinalInAbstractClassRule.php @@ -26,8 +26,10 @@ public function getNodeType(): string return Node\Stmt\ClassMethod::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Methods/NoConstructorParameterWithDefaultValueRule.php b/src/Methods/NoConstructorParameterWithDefaultValueRule.php index 6699d82a..0a1f2cfe 100644 --- a/src/Methods/NoConstructorParameterWithDefaultValueRule.php +++ b/src/Methods/NoConstructorParameterWithDefaultValueRule.php @@ -26,8 +26,10 @@ public function getNodeType(): string return Node\Stmt\ClassMethod::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Methods/NoNullableReturnTypeDeclarationRule.php b/src/Methods/NoNullableReturnTypeDeclarationRule.php index df8131da..b562ef60 100644 --- a/src/Methods/NoNullableReturnTypeDeclarationRule.php +++ b/src/Methods/NoNullableReturnTypeDeclarationRule.php @@ -26,8 +26,10 @@ public function getNodeType(): string return Node\Stmt\ClassMethod::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index aaab81a0..8073741c 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -34,8 +34,10 @@ final class NoParameterWithContainerTypeDeclarationRule implements Rule /** * @param array $interfacesImplementedByContainers */ - public function __construct(Reflection\ReflectionProvider $reflectionProvider, array $interfacesImplementedByContainers) - { + public function __construct( + Reflection\ReflectionProvider $reflectionProvider, + array $interfacesImplementedByContainers + ) { $this->reflectionProvider = $reflectionProvider; $this->interfacesImplementedByContainers = \array_filter( \array_map(static function (string $interfaceImplementedByContainers): string { @@ -52,8 +54,10 @@ public function getNodeType(): string return Node\Stmt\ClassMethod::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Methods/NoParameterWithNullDefaultValueRule.php b/src/Methods/NoParameterWithNullDefaultValueRule.php index 279c31c9..d7160e65 100644 --- a/src/Methods/NoParameterWithNullDefaultValueRule.php +++ b/src/Methods/NoParameterWithNullDefaultValueRule.php @@ -26,8 +26,10 @@ public function getNodeType(): string return Node\Stmt\ClassMethod::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php index 052e88a4..ae440b90 100644 --- a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php @@ -26,8 +26,10 @@ public function getNodeType(): string return Node\Stmt\ClassMethod::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Methods/PrivateInFinalClassRule.php b/src/Methods/PrivateInFinalClassRule.php index 13e23919..0628ef36 100644 --- a/src/Methods/PrivateInFinalClassRule.php +++ b/src/Methods/PrivateInFinalClassRule.php @@ -26,8 +26,10 @@ public function getNodeType(): string return Node\Stmt\ClassMethod::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', diff --git a/src/Statements/NoSwitchRule.php b/src/Statements/NoSwitchRule.php index f73af7f6..2c58b53c 100644 --- a/src/Statements/NoSwitchRule.php +++ b/src/Statements/NoSwitchRule.php @@ -24,8 +24,10 @@ public function getNodeType(): string return Node\Stmt\Switch_::class; } - public function processNode(Node $node, Scope $scope): array - { + public function processNode( + Node $node, + Scope $scope + ): array { return [ 'Control structures using switch should not be used.', ]; From 6f87dff0b71e011c34e0ceab3a70ab19bfcffec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 13:14:17 +0100 Subject: [PATCH 165/305] Fix: Use Xdebug instead of pcov for collecting code coverage --- .github/CONTRIBUTING.md | 2 +- .github/workflows/integrate.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 8186f37d..a6263b63 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -87,7 +87,7 @@ to run all the tests. We are using [`infection/infection`](https://github.com/infection/infection) to ensure a minimum quality of the tests. -Enable `pcov` or `Xdebug` and run +Enable `Xdebug` and run ```sh $ make mutation-tests diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index f766898c..1b59e5a8 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -247,7 +247,7 @@ jobs: - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" with: - coverage: "pcov" + coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" @@ -269,7 +269,7 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Collect code coverage with pcov and phpunit/phpunit" + - name: "Collect code coverage with Xdebug and phpunit/phpunit" run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-clover=.build/phpunit/logs/clover.xml" - name: "Send code coverage report to Codecov.io" @@ -297,7 +297,7 @@ jobs: - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.15.0" with: - coverage: "pcov" + coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" @@ -316,5 +316,5 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Run mutation tests with pcov and infection/infection" + - name: "Run mutation tests with Xdebug and infection/infection" run: "vendor/bin/infection --ignore-msi-with-no-mutations --min-covered-msi=${{ env.MIN_COVERED_MSI }} --min-msi=${{ env.MIN_MSI }}" From fdc53d81f42a96320b2e9bcc4816cd0790d835e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 13:17:26 +0100 Subject: [PATCH 166/305] Fix: Split condition --- .github/workflows/integrate.yaml | 2 +- Makefile | 2 +- src/Functions/NoNullableReturnTypeDeclarationRule.php | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 1b59e5a8..efbeed9c 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -10,7 +10,7 @@ on: # yamllint disable-line rule:truthy env: MIN_COVERED_MSI: 92 - MIN_MSI: 83 + MIN_MSI: 82 PHP_EXTENSIONS: "mbstring" jobs: diff --git a/Makefile b/Makefile index 41af1157..94230441 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ MIN_COVERED_MSI:=92 -MIN_MSI:=83 +MIN_MSI:=82 .PHONY: it it: coding-standards static-code-analysis tests ## Runs the coding-standards, static-code-analysis, and tests targets diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index b39eee7d..f26d63d0 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -37,7 +37,11 @@ public function processNode( )); } - if (!isset($node->namespacedName) || !$node->getReturnType() instanceof Node\NullableType) { + if (!isset($node->namespacedName)) { + return []; + } + + if (!$node->getReturnType() instanceof Node\NullableType) { return []; } From 441223c7c82d36cfd8fc853fc201eaaecbecc29a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Wed, 23 Jun 2021 11:16:02 +0200 Subject: [PATCH 167/305] Fix: Run friendsofphp/php-cs-fixer on fixtures --- .github/workflows/integrate.yaml | 3 +++ Makefile | 1 + 2 files changed, 4 insertions(+) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index efbeed9c..476cb0c6 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -79,6 +79,9 @@ jobs: - name: "Run friendsofphp/php-cs-fixer" run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --dry-run --verbose" + - name: "Run friendsofphp/php-cs-fixer on fixtures" + run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --diff-format=udiff --dry-run --verbose" + dependency-analysis: name: "Dependency Analysis" diff --git a/Makefile b/Makefile index 94230441..dfbba522 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,7 @@ coding-standards: vendor ## Normalizes composer.json with ergebnis/composer-norm yamllint -c .yamllint.yaml --strict . mkdir -p .build/php-cs-fixer vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose + vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --diff-format=udiff --verbose .PHONY: dependency-analysis dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer-require-checker From 33d877848cbdc8e32c08c62fced0958d28ce0b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Wed, 23 Jun 2021 11:22:04 +0200 Subject: [PATCH 168/305] Fix: Exclude invalid fixture --- .php-cs-fixer.fixture.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.php-cs-fixer.fixture.php b/.php-cs-fixer.fixture.php index 06d74e48..288aa820 100644 --- a/.php-cs-fixer.fixture.php +++ b/.php-cs-fixer.fixture.php @@ -28,7 +28,9 @@ 'static_lambda' => false, ]); -$config->getFinder()->in(__DIR__ . '/test/Fixture'); +$config->getFinder() + ->exclude('Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ImplicitlyAbstractTestCase.php') + ->in(__DIR__ . '/test/Fixture'); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php_cs.fixture.cache'); From 1049686ee42e810f33f12e4f3be60f7eb71131f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 13:27:57 +0100 Subject: [PATCH 169/305] Fix: Do not configure deprecated lowercase_constants fixer --- .php-cs-fixer.fixture.php | 1 - 1 file changed, 1 deletion(-) diff --git a/.php-cs-fixer.fixture.php b/.php-cs-fixer.fixture.php index 288aa820..00f18a04 100644 --- a/.php-cs-fixer.fixture.php +++ b/.php-cs-fixer.fixture.php @@ -21,7 +21,6 @@ 'final_internal_class' => false, 'final_public_method_for_abstract_class' => false, 'header_comment' => false, - 'lowercase_constants' => false, 'lowercase_keywords' => false, 'magic_method_casing' => false, 'protected_to_private' => false, From 6637f07b282d384974831be5cd33f9cd16f6b327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 13:29:04 +0100 Subject: [PATCH 170/305] Fix: Use notPath() instead of exclude() to exclude file --- .php-cs-fixer.fixture.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.php-cs-fixer.fixture.php b/.php-cs-fixer.fixture.php index 00f18a04..8d5d0c4f 100644 --- a/.php-cs-fixer.fixture.php +++ b/.php-cs-fixer.fixture.php @@ -28,8 +28,8 @@ ]); $config->getFinder() - ->exclude('Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ImplicitlyAbstractTestCase.php') - ->in(__DIR__ . '/test/Fixture'); + ->in(__DIR__ . '/test/Fixture') + ->notPath('Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ImplicitlyAbstractTestCase.php'); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php_cs.fixture.cache'); From 30c8cf2c25ce18fb0efb8b31bafdd6fe7ea85c51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 2 Jan 2021 15:47:43 +0100 Subject: [PATCH 171/305] Enhancement: Run tests on PHP 8.0 --- .github/settings.yml | 3 +++ .github/workflows/integrate.yaml | 1 + 2 files changed, 4 insertions(+) diff --git a/.github/settings.yml b/.github/settings.yml index 12370bb5..3fa2e621 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -28,6 +28,9 @@ branches: - "Tests (7.4, highest)" - "Tests (7.4, locked)" - "Tests (7.4, lowest)" + - "Tests (8.0, highest)" + - "Tests (8.0, locked)" + - "Tests (8.0, lowest)" strict: false restrictions: diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 476cb0c6..aa6c269b 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -186,6 +186,7 @@ jobs: - "7.2" - "7.3" - "7.4" + - "8.0" dependencies: - "lowest" From e41538ab45924eb146408b344c201de71ba96f0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 14:18:34 +0100 Subject: [PATCH 172/305] Fix: DocBlocks --- psalm-baseline.xml | 2 +- src/Classes/FinalRule.php | 4 ++-- src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index b04237b4..86506fa9 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -8,7 +8,6 @@ toString toString - true === $allowAbstractClasses @@ -26,6 +25,7 @@ toString + diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index b78d2ec9..72e49335 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -22,7 +22,7 @@ final class FinalRule implements Rule { /** - * @var string[] + * @var array */ private static $whitelistedAnnotations = [ 'Entity', @@ -46,7 +46,7 @@ final class FinalRule implements Rule private $errorMessageTemplate = 'Class %s is not final.'; /** - * @param string[] $classesNotRequiredToBeAbstractOrFinal + * @param array $classesNotRequiredToBeAbstractOrFinal */ public function __construct( bool $allowAbstractClasses, diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index f189b09a..dd9f210e 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -22,7 +22,7 @@ final class TestCaseWithSuffixRule implements Rules\Rule { /** - * @var string[] + * @var array */ private static $phpunitTestCaseClassNames = [ 'PHPUnit\Framework\TestCase', From 76ec046d34f3cc8814df3c3c589865db0eb079de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 14:22:53 +0100 Subject: [PATCH 173/305] Fix: Avoid comparing boolean with boolean --- psalm-baseline.xml | 3 --- src/Classes/FinalRule.php | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 86506fa9..c227cdb1 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -8,9 +8,6 @@ toString toString - - true === $allowAbstractClasses - diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index 72e49335..5f1300a4 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -57,7 +57,7 @@ public function __construct( return $classNotRequiredToBeAbstractOrFinal; }, $classesNotRequiredToBeAbstractOrFinal); - if (true === $allowAbstractClasses) { + if ($allowAbstractClasses) { $this->errorMessageTemplate = 'Class %s is neither abstract nor final.'; } } @@ -87,7 +87,7 @@ public function processNode( return []; } - if (true === $this->allowAbstractClasses && $node->isAbstract()) { + if ($this->allowAbstractClasses && $node->isAbstract()) { return []; } From 21040cd167c3ab3a1afca244abe8dfcaf9d3bb9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 15:29:04 +0100 Subject: [PATCH 174/305] Fix: Adjust Classes\FinalRule to inspect attributes --- .github/workflows/integrate.yaml | 4 +- CHANGELOG.md | 5 + Makefile | 4 +- README.md | 7 +- composer.json | 1 + composer.lock | 891 +++++++++++++++++- psalm-baseline.xml | 1 + src/Classes/FinalRule.php | 17 +- ...ifiedDoctrineOrmMappingEntityAttribute.php | 10 + ...nalClassWithUnqualifiedEntityAttribute.php | 10 + ...ClassWithUnqualifiedOrmEntityAttribute.php | 10 + ...thUnqualifiedOrmMappingEntityAttribute.php | 10 + ...inalClassWithAliasedOrmEntityAttribute.php | 12 + ...ifiedDoctrineOrmMappingEntityAttribute.php | 10 + ...FinalClassWithQualifiedEntityAttribute.php | 12 + ...assWithQualifiedMappingEntityAttribute.php | 12 + ...WithQualifiedOrmMappingEntityAttribute.php | 12 + .../Classes/FinalRuleWithAttributesTest.php | 107 +++ 18 files changed, 1107 insertions(+), 28 deletions(-) create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedDoctrineOrmMappingEntityAttribute.php create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedEntityAttribute.php create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedOrmEntityAttribute.php create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedOrmMappingEntityAttribute.php create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithAliasedOrmEntityAttribute.php create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithQualifiedDoctrineOrmMappingEntityAttribute.php create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithQualifiedEntityAttribute.php create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithQualifiedMappingEntityAttribute.php create mode 100644 test/Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithQualifiedOrmMappingEntityAttribute.php create mode 100644 test/Integration/Classes/FinalRuleWithAttributesTest.php diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index aa6c269b..e8bd86db 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -9,8 +9,8 @@ on: # yamllint disable-line rule:truthy - "main" env: - MIN_COVERED_MSI: 92 - MIN_MSI: 82 + MIN_COVERED_MSI: 91 + MIN_MSI: 81 PHP_EXTENSIONS: "mbstring" jobs: diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ad1e378..116414ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ For a full diff see [`0.15.3...main`][0.15.3...main]. * Added support for `phpstan/phpstan:^1.0.0` and dropped support for non-stable versions of `phpstan/phpstan` ([#381]), by [@rpkamp] +### Fixed + +* Adjusted `Classes\FinalRule` to not report an error when a non-final class has a `Doctrinbe\ORM\Mapping\Entity` attribute ([#395]), by [@localheinz] + ## [`0.15.3`][0.15.3] For a full diff see [`0.15.2...0.15.3`][0.15.2...0.15.3]. @@ -436,6 +440,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#259]: https://github.com/ergebnis/phpstan-rules/pull/259 [#294]: https://github.com/ergebnis/phpstan-rules/pull/294 [#381]: https://github.com/ergebnis/phpstan-rules/pull/381 +[#395]: https://github.com/ergebnis/phpstan-rules/pull/395 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique diff --git a/Makefile b/Makefile index dfbba522..b2aca0ec 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -MIN_COVERED_MSI:=92 -MIN_MSI:=82 +MIN_COVERED_MSI:=91 +MIN_MSI:=81 .PHONY: it it: coding-standards static-code-analysis tests ## Runs the coding-standards, static-code-analysis, and tests targets diff --git a/README.md b/README.md index 151b22be..c7088760 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,12 @@ This package provides the following rules for use with [`phpstan/phpstan`](https This rule reports an error when a non-anonymous class is not `final`. -:bulb: Doctrine entities are currently ignored when they are annotated with `@ORM\Entity` or `@Entity`. +:bulb: This rule ignores classes that + +- use `@Entity`, `@ORM\Entity`, or `@ORM\Mapping\Entity` annotations +- use `Doctrine\ORM\Mapping\Entity` attributes + +on the class level. ##### Disallowing `abstract` classes diff --git a/composer.json b/composer.json index 276eb9bf..a1a9b874 100644 --- a/composer.json +++ b/composer.json @@ -22,6 +22,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { + "doctrine/orm": "^2.10.2", "ergebnis/composer-normalize": "^2.15.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", diff --git a/composer.lock b/composer.lock index 0d31adb5..02f7cf7f 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": "50925a96a09da5de14e516a172527fca", + "content-hash": "cc13017bab597a9475c7c5218d27c887", "packages": [ { "name": "nikic/php-parser", @@ -583,33 +583,609 @@ }, { "name": "doctrine/annotations", - "version": "1.12.1", + "version": "1.13.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" + "reference": "5b668aef16090008790395c02c893b1ba13f7e08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", + "reference": "5b668aef16090008790395c02c893b1ba13f7e08", "shasum": "" }, "require": { "doctrine/lexer": "1.*", "ext-tokenizer": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" + }, + "require-dev": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^6.0 || ^8.1", + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", + "symfony/cache": "^4.4 || ^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.13.2" + }, + "time": "2021-08-05T19:00:23+00:00" + }, + { + "name": "doctrine/cache", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "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", + "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" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.1.1" + }, + "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%2Fcache", + "type": "tidelift" + } + ], + "time": "2021-07-17T14:49:29+00:00" + }, + { + "name": "doctrine/collections", + "version": "1.6.8", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af", + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af", + "shasum": "" + }, + "require": { + "php": "^7.1.3 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", + "vimeo/psalm": "^4.2.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", + "keywords": [ + "array", + "collections", + "iterators", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/1.6.8" + }, + "time": "2021-08-10T18:51:53+00:00" + }, + { + "name": "doctrine/common", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "6d970a11479275300b5144e9373ce5feacfa9b91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/6d970a11479275300b5144e9373ce5feacfa9b91", + "reference": "6d970a11479275300b5144e9373ce5feacfa9b91", + "shasum": "" + }, + "require": { + "doctrine/persistence": "^2.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0 || ^8.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5", + "vimeo/psalm": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", + "keywords": [ + "common", + "doctrine", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/common/issues", + "source": "https://github.com/doctrine/common/tree/3.2.0" + }, + "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%2Fcommon", + "type": "tidelift" + } + ], + "time": "2021-10-19T06:47:22+00:00" + }, + { + "name": "doctrine/dbal", + "version": "2.13.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "2411a55a2a628e6d8dd598388ab13474802c7b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/2411a55a2a628e6d8dd598388ab13474802c7b6e", + "reference": "2411a55a2a628e6d8dd598388ab13474802c7b6e", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.0|^2.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1 || ^8" + }, + "require-dev": { + "doctrine/coding-standard": "9.0.0", + "jetbrains/phpstorm-stubs": "2021.1", + "phpstan/phpstan": "0.12.99", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.10", + "psalm/plugin-phpunit": "0.16.1", + "squizlabs/php_codesniffer": "3.6.0", + "symfony/cache": "^4.4", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "4.10.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/2.13.4" + }, + "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%2Fdbal", + "type": "tidelift" + } + ], + "time": "2021-10-02T15:59:26+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "v0.5.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" + }, + "time": "2021-03-21T12:59:47+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "shasum": "" + }, + "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + }, + "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%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2020-05-29T18:28:51+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, "require-dev": { - "doctrine/cache": "1.*", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^9.1.5" + "doctrine/coding-standard": "^8.2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^4.10" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, "notification-url": "https://packagist.org/downloads/", @@ -638,14 +1214,39 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", "keywords": [ - "annotations", - "docblock", - "parser" + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.4" + }, + "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%2Finflector", + "type": "tidelift" + } ], - "time": "2021-02-21T21:00:45+00:00" + "time": "2021-10-22T20:16:43+00:00" }, { "name": "doctrine/instantiator", @@ -696,6 +1297,10 @@ "constructor", "instantiate" ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -772,6 +1377,10 @@ "parser", "php" ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.1" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -788,6 +1397,192 @@ ], "time": "2020-05-25T17:44:05+00:00" }, + { + "name": "doctrine/orm", + "version": "2.10.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/orm.git", + "reference": "81d472f6f96b8b571cafefe8d2fef89ed9446a62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/orm/zipball/81d472f6f96b8b571cafefe8d2fef89ed9446a62", + "reference": "81d472f6f96b8b571cafefe8d2fef89ed9446a62", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "^1.8", + "doctrine/cache": "^1.12.1 || ^2.1.1", + "doctrine/collections": "^1.5", + "doctrine/common": "^3.0.3", + "doctrine/dbal": "^2.13.1 || ^3.1.1", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.1", + "doctrine/inflector": "^1.4 || ^2.0", + "doctrine/instantiator": "^1.3", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^2.2", + "ext-ctype": "*", + "ext-pdo": "*", + "php": "^7.1 ||^8.0", + "psr/cache": "^1 || ^2 || ^3", + "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "symfony/polyfill-php72": "^1.23", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "doctrine/annotations": "<1.13 || >= 2.0" + }, + "require-dev": { + "doctrine/annotations": "^1.13", + "doctrine/coding-standard": "^9.0", + "phpbench/phpbench": "^0.16.10 || ^1.0", + "phpstan/phpstan": "0.12.99", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "squizlabs/php_codesniffer": "3.6.1", + "symfony/cache": "^4.4 || ^5.2", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", + "vimeo/psalm": "4.10.0" + }, + "suggest": { + "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", + "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" + }, + "bin": [ + "bin/doctrine" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\ORM\\": "lib/Doctrine/ORM" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Object-Relational-Mapper for PHP", + "homepage": "https://www.doctrine-project.org/projects/orm.html", + "keywords": [ + "database", + "orm" + ], + "support": { + "issues": "https://github.com/doctrine/orm/issues", + "source": "https://github.com/doctrine/orm/tree/2.10.2" + }, + "time": "2021-10-21T17:57:02+00:00" + }, + { + "name": "doctrine/persistence", + "version": "2.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/persistence.git", + "reference": "5e7bdbbfe9811c06e1f745d1c166647d5c47d6ee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/5e7bdbbfe9811c06e1f745d1c166647d5c47d6ee", + "reference": "5e7bdbbfe9811c06e1f745d1c166647d5c47d6ee", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/collections": "^1.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "php": "^7.1 || ^8.0", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "conflict": { + "doctrine/common": "<2.10@dev" + }, + "require-dev": { + "composer/package-versions-deprecated": "^1.11", + "doctrine/coding-standard": "^6.0 || ^9.0", + "doctrine/common": "^3.0", + "phpstan/phpstan": "0.12.84", + "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", + "symfony/cache": "^4.4|^5.0", + "vimeo/psalm": "4.7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common", + "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", + "keywords": [ + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "support": { + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/2.2.3" + }, + "time": "2021-10-25T19:59:10+00:00" + }, { "name": "ergebnis/classy", "version": "1.1.1", @@ -3364,6 +4159,55 @@ }, "time": "2021-06-18T23:56:46+00:00" }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, + "time": "2016-08-06T20:24:11+00:00" + }, { "name": "psr/container", "version": "1.1.1", @@ -5105,16 +5949,16 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", "shasum": "" }, "require": { @@ -5123,7 +5967,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5160,6 +6004,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5174,7 +6021,7 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-05-27T09:17:38+00:00" }, { "name": "symfony/polyfill-php73", diff --git a/psalm-baseline.xml b/psalm-baseline.xml index c227cdb1..4e56c921 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -8,6 +8,7 @@ toString toString + diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index 5f1300a4..c2cace5a 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -30,6 +30,13 @@ final class FinalRule implements Rule 'ORM\Mapping\Entity', ]; + /** + * @var array + */ + private static $whitelistedAttributes = [ + 'Doctrine\ORM\Mapping\Entity', + ]; + /** * @var bool */ @@ -118,8 +125,16 @@ public function processNode( * @see https://github.com/SpacePossum * @see https://github.com/Slamdunk */ - private function isWhitelisted(Node $node): bool + private function isWhitelisted(Node\Stmt\Class_ $node): bool { + foreach ($node->attrGroups as $attributeGroup) { + foreach ($attributeGroup->attrs as $attribute) { + if (\in_array($attribute->name->toString(), self::$whitelistedAttributes, true)) { + return true; + } + } + } + $docComment = $node->getDocComment(); if (!$docComment instanceof Comment\Doc) { diff --git a/test/Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedDoctrineOrmMappingEntityAttribute.php b/test/Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedDoctrineOrmMappingEntityAttribute.php new file mode 100644 index 00000000..164f08ca --- /dev/null +++ b/test/Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedDoctrineOrmMappingEntityAttribute.php @@ -0,0 +1,10 @@ + __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithAliasedOrmEntityAttribute.php', + 'non-final-class-with-qualified-doctrine-orm-mapping-entity-attribute' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithQualifiedDoctrineOrmMappingEntityAttribute.php', + 'non-final-class-with-qualified-entity-attribute' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithQualifiedEntityAttribute.php', + 'non-final-class-with-qualified-mapping-entity-attribute' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithQualifiedMappingEntityAttribute.php', + 'non-final-class-with-qualified-orm-mapping-entity-attribute' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithQualifiedOrmMappingEntityAttribute.php', + ]; + + foreach ($paths as $description => $path) { + yield $description => [ + $path, + ]; + } + } + + public function provideCasesWhereAnalysisShouldFail(): iterable + { + $paths = [ + 'non-final-class-with-unqualified-doctrine-orm-mapping-entity-attribute' => [ + __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedDoctrineOrmMappingEntityAttribute.php', + [ + \sprintf( + 'Class %s is not final.', + Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedDoctrineOrmMappingEntityAttribute::class + ), + 7, + ], + ], + 'non-final-class-with-unqualified-entity-attribute' => [ + __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedEntityAttribute.php', + [ + \sprintf( + 'Class %s is not final.', + Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedEntityAttribute::class + ), + 7, + ], + ], + 'non-final-class-with-unqualified-orm-entity-attribute' => [ + __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedOrmEntityAttribute.php', + [ + \sprintf( + 'Class %s is not final.', + Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedOrmEntityAttribute::class + ), + 7, + ], + ], + 'non-final-class-with-unqualified-orm-mapping-entity-attribute' => [ + __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Failure/NonFinalClassWithUnqualifiedOrmMappingEntityAttribute.php', + [ + \sprintf( + 'Class %s is not final.', + Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedOrmMappingEntityAttribute::class + ), + 7, + ], + ], + ]; + + foreach ($paths as $description => [$path, $error]) { + yield $description => [ + $path, + $error, + ]; + } + } + + protected function getRule(): Rule + { + return new FinalRule( + false, + [] + ); + } +} From ebeced30d7e50324a94a83c19a59d75816e8fbb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 8 Nov 2021 16:37:09 +0100 Subject: [PATCH 175/305] Fix: Update CHANGELOG.md --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 116414ad..157e7b32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased -For a full diff see [`0.15.3...main`][0.15.3...main]. +For a full diff see [`1.0.0...main`][1.0.0...main]. + +## [`1.0.0`][1.0.0] + +For a full diff see [`0.15.3...1.0.0`][0.15.3...1.0.0]. ### Changed @@ -358,6 +362,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.15.1]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.1 [0.15.2]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.2 [0.15.3]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.3 +[1.0.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/1.0.0 [362c7ea...0.1.0]: https://github.com/ergebnis/phpstan-rules/compare/362c7ea...0.1.0 [0.1.0...0.2.0]: https://github.com/ergebnis/phpstan-rules/compare/0.1.0...0.2.0 @@ -386,7 +391,8 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.15.0...0.15.1]: https://github.com/ergebnis/phpstan-rules/compare/0.15.0...0.15.1 [0.15.1...0.15.2]: https://github.com/ergebnis/phpstan-rules/compare/0.15.1...0.15.2 [0.15.2...0.15.3]: https://github.com/ergebnis/phpstan-rules/compare/0.15.2...0.15.3 -[0.15.3...main]: https://github.com/ergebnis/phpstan-rules/compare/0.15.3...main +[0.15.3...1.0.0]: https://github.com/ergebnis/phpstan-rules/compare/0.15.3...1.0.0 +[1.0.0...main]: https://github.com/ergebnis/phpstan-rules/compare/1.0.0...main [#1]: https://github.com/ergebnis/phpstan-rules/pull/1 [#4]: https://github.com/ergebnis/phpstan-rules/pull/4 From ca645ac1e7debb23174015afc1bc1649c58a9776 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Nov 2021 09:01:37 +0000 Subject: [PATCH 176/305] composer(deps-dev): bump phpstan/phpstan-strict-rules Bumps [phpstan/phpstan-strict-rules](https://github.com/phpstan/phpstan-strict-rules) from 1.0.0 to 1.1.0. - [Release notes](https://github.com/phpstan/phpstan-strict-rules/releases) - [Commits](https://github.com/phpstan/phpstan-strict-rules/compare/1.0.0...1.1.0) --- updated-dependencies: - dependency-name: phpstan/phpstan-strict-rules dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index a1a9b874..39dab087 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "infection/infection": "~0.15.3", "nette/di": "^3.0.11", "phpstan/phpstan-deprecation-rules": "^1.0.0", - "phpstan/phpstan-strict-rules": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.1.0", "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", diff --git a/composer.lock b/composer.lock index 02f7cf7f..57301415 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": "cc13017bab597a9475c7c5218d27c887", + "content-hash": "353e732c7d0780fa1e3ec17c2772e114", "packages": [ { "name": "nikic/php-parser", @@ -64,16 +64,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.1.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "cb317029197236c571c1b9305b8dd12850d8d85c" + "reference": "cbe085f9fdead5b6d62e4c022ca52dc9427a10ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cb317029197236c571c1b9305b8dd12850d8d85c", - "reference": "cb317029197236c571c1b9305b8dd12850d8d85c", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cbe085f9fdead5b6d62e4c022ca52dc9427a10ee", + "reference": "cbe085f9fdead5b6d62e4c022ca52dc9427a10ee", "shasum": "" }, "require": { @@ -89,7 +89,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -104,7 +104,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.1.1" + "source": "https://github.com/phpstan/phpstan/tree/1.2.0" }, "funding": [ { @@ -124,7 +124,7 @@ "type": "tidelift" } ], - "time": "2021-11-06T22:46:47+00:00" + "time": "2021-11-18T14:09:01+00:00" } ], "packages-dev": [ @@ -3630,21 +3630,21 @@ }, { "name": "phpstan/phpstan-strict-rules", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-strict-rules.git", - "reference": "7f50eb112f37fda2ef956813d3f1e9b1e69d7940" + "reference": "e12d55f74a8cca18c6e684c6450767e055ba7717" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/7f50eb112f37fda2ef956813d3f1e9b1e69d7940", - "reference": "7f50eb112f37fda2ef956813d3f1e9b1e69d7940", + "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/e12d55f74a8cca18c6e684c6450767e055ba7717", + "reference": "e12d55f74a8cca18c6e684c6450767e055ba7717", "shasum": "" }, "require": { "php": "^7.1 || ^8.0", - "phpstan/phpstan": "^1.0" + "phpstan/phpstan": "^1.2.0" }, "require-dev": { "nikic/php-parser": "^4.13.0", @@ -3675,9 +3675,9 @@ "description": "Extra strict and opinionated rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-strict-rules/issues", - "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.0.0" + "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.1.0" }, - "time": "2021-10-11T06:57:58+00:00" + "time": "2021-11-18T09:30:29+00:00" }, { "name": "phpunit/php-code-coverage", From 457bffd13397ad32f664a2c82e2cd15b046a931d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Nov 2021 09:01:39 +0000 Subject: [PATCH 177/305] composer(deps-dev): bump vimeo/psalm from 4.12.0 to 4.13.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.12.0 to 4.13.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.12.0...4.13.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index 39dab087..cca0cc39 100644 --- a/composer.json +++ b/composer.json @@ -34,7 +34,7 @@ "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.12.0", + "vimeo/psalm": "^4.13.0", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index 57301415..3b598973 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": "353e732c7d0780fa1e3ec17c2772e114", + "content-hash": "46eae5c635c8957e7906bf170395c748", "packages": [ { "name": "nikic/php-parser", @@ -6723,16 +6723,16 @@ }, { "name": "vimeo/psalm", - "version": "4.12.0", + "version": "4.13.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "e42bc4a23f67acba28a23bb09c348e2ff38a1d87" + "reference": "cd489407a0219b93cadd04d5aff9845a942f7e5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/e42bc4a23f67acba28a23bb09c348e2ff38a1d87", - "reference": "e42bc4a23f67acba28a23bb09c348e2ff38a1d87", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/cd489407a0219b93cadd04d5aff9845a942f7e5d", + "reference": "cd489407a0219b93cadd04d5aff9845a942f7e5d", "shasum": "" }, "require": { @@ -6778,7 +6778,8 @@ "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "suggest": { - "ext-igbinary": "^2.0.5" + "ext-curl": "In order to send data to shepherd", + "ext-igbinary": "^2.0.5 is required, used to serialize caching data" }, "bin": [ "psalm", @@ -6822,9 +6823,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.12.0" + "source": "https://github.com/vimeo/psalm/tree/4.13.0" }, - "time": "2021-11-06T10:31:17+00:00" + "time": "2021-11-19T20:24:40+00:00" }, { "name": "webmozart/assert", From 42bc9507e487de9f364f7ad24a95559f2af167af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Nov 2021 09:01:15 +0000 Subject: [PATCH 178/305] github-actions(deps): bump actions/cache from 2.1.6 to 2.1.7 Bumps [actions/cache](https://github.com/actions/cache) from 2.1.6 to 2.1.7. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.6...v2.1.7) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 14 +++++++------- .github/workflows/renew.yaml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index e8bd86db..ce611c73 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -52,7 +52,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -70,7 +70,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" @@ -110,7 +110,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -152,7 +152,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -211,7 +211,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -262,7 +262,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -309,7 +309,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index c90b28e6..2c6e37ba 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -43,7 +43,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -58,7 +58,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.6" + uses: "actions/cache@v2.1.7" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" From caf5f35dd092782e6b51c3d405c8d097870468a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Nov 2021 09:01:25 +0000 Subject: [PATCH 179/305] composer(deps-dev): bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.15.0 to 2.16.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.15.0...2.16.0) --- updated-dependencies: - dependency-name: ergebnis/composer-normalize dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 61 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/composer.json b/composer.json index cca0cc39..47014632 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ }, "require-dev": { "doctrine/orm": "^2.10.2", - "ergebnis/composer-normalize": "^2.15.0", + "ergebnis/composer-normalize": "^2.16.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", diff --git a/composer.lock b/composer.lock index 3b598973..d1c6fc77 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": "46eae5c635c8957e7906bf170395c748", + "content-hash": "9a70c537406b8d4ba68bd0448f98ff2a", "packages": [ { "name": "nikic/php-parser", @@ -1658,41 +1658,35 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.15.0", + "version": "2.16.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "d469a15b916441959446d52a0f5d3fc9f7720317" + "reference": "21eb186aa37247544674ee75aa4139c1cade7a64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/d469a15b916441959446d52a0f5d3fc9f7720317", - "reference": "d469a15b916441959446d52a0f5d3fc9f7720317", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/21eb186aa37247544674ee75aa4139c1cade7a64", + "reference": "21eb186aa37247544674ee75aa4139c1cade7a64", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1.0 || ^2.0.0", + "composer-plugin-api": "^2.0.0", "ergebnis/json-normalizer": "^1.0.3", "ergebnis/json-printer": "^3.1.1", - "justinrainbow/json-schema": "^5.2.10", + "justinrainbow/json-schema": "^5.2.11", "localheinz/diff": "^1.1.1", "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "^1.10.22 || ^2.0.13", + "composer/composer": "^2.1.12", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", - "ergebnis/phpstan-rules": "~0.15.3", "ergebnis/test-util": "^1.5.0", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.89", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.19", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.16", - "psalm/plugin-phpunit": "~0.16.0", - "symfony/filesystem": "^5.3.0", - "vimeo/psalm": "^4.7.3" + "phpunit/phpunit": "^8.5.21", + "psalm/plugin-phpunit": "~0.16.1", + "symfony/filesystem": "^5.3.4", + "vimeo/psalm": "^4.12.0" }, "type": "composer-plugin", "extra": { @@ -1725,13 +1719,17 @@ "normalizer", "plugin" ], + "support": { + "issues": "https://github.com/ergebnis/composer-normalize/issues", + "source": "https://github.com/ergebnis/composer-normalize" + }, "funding": [ { "url": "https://github.com/localheinz", "type": "github" } ], - "time": "2021-06-15T08:06:45+00:00" + "time": "2021-11-22T10:23:09+00:00" }, { "name": "ergebnis/json-normalizer", @@ -1791,6 +1789,10 @@ "json", "normalizer" ], + "support": { + "issues": "https://github.com/ergebnis/json-normalizer/issues", + "source": "https://github.com/ergebnis/json-normalizer" + }, "funding": [ { "url": "https://github.com/localheinz", @@ -1856,6 +1858,10 @@ "json", "printer" ], + "support": { + "issues": "https://github.com/ergebnis/json-printer/issues", + "source": "https://github.com/ergebnis/json-printer" + }, "funding": [ { "url": "https://github.com/localheinz", @@ -2433,16 +2439,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.2.10", + "version": "5.2.11", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" + "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", - "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ab6744b7296ded80f8cc4f9509abbff393399aa", + "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa", "shasum": "" }, "require": { @@ -2495,7 +2501,11 @@ "json", "schema" ], - "time": "2020-05-27T16:41:55+00:00" + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.11" + }, + "time": "2021-07-22T09:24:00+00:00" }, { "name": "localheinz/diff", @@ -2546,6 +2556,9 @@ "unidiff", "unified diff" ], + "support": { + "source": "https://github.com/localheinz/diff/tree/main" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", From a242988af7793c1aed041a383455975e97ea6a4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Nov 2021 09:02:13 +0000 Subject: [PATCH 180/305] composer(deps-dev): bump vimeo/psalm from 4.13.0 to 4.13.1 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.13.0 to 4.13.1. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.13.0...4.13.1) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 75 ++++++++++++++++++++++++++------------------------- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/composer.json b/composer.json index 47014632..00626f1a 100644 --- a/composer.json +++ b/composer.json @@ -34,7 +34,7 @@ "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.13.0", + "vimeo/psalm": "^4.13.1", "zendframework/zend-servicemanager": "^2.0.0" }, "config": { diff --git a/composer.lock b/composer.lock index d1c6fc77..eb66d7f8 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": "9a70c537406b8d4ba68bd0448f98ff2a", + "content-hash": "d485d29abd8a98f4b4bbdeddbb7ddfe5", "packages": [ { "name": "nikic/php-parser", @@ -5065,16 +5065,16 @@ }, { "name": "symfony/console", - "version": "v5.3.10", + "version": "v5.3.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3" + "reference": "3e7ab8f5905058984899b05a4648096f558bfeba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3", - "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3", + "url": "https://api.github.com/repos/symfony/console/zipball/3e7ab8f5905058984899b05a4648096f558bfeba", + "reference": "3e7ab8f5905058984899b05a4648096f558bfeba", "shasum": "" }, "require": { @@ -5087,7 +5087,6 @@ "symfony/string": "^5.1" }, "conflict": { - "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -5144,7 +5143,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.3.10" + "source": "https://github.com/symfony/console/tree/v5.3.11" }, "funding": [ { @@ -5160,20 +5159,20 @@ "type": "tidelift" } ], - "time": "2021-10-26T09:30:15+00:00" + "time": "2021-11-21T19:41:05+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.4.0", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" + "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", "shasum": "" }, "require": { @@ -5182,7 +5181,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -5211,7 +5210,7 @@ "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" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" }, "funding": [ { @@ -5227,7 +5226,7 @@ "type": "tidelift" } ], - "time": "2021-03-23T23:28:01+00:00" + "time": "2021-07-12T14:48:14+00:00" }, { "name": "symfony/event-dispatcher", @@ -5311,16 +5310,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.9", + "version": "v1.1.11", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" + "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/01e9a4efac0ee33a05dfdf93b346f62e7d0e998c", + "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c", "shasum": "" }, "require": { @@ -5333,7 +5332,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "1.1-dev" }, "thanks": { "name": "symfony/contracts", @@ -5370,7 +5369,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.9" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.11" }, "funding": [ { @@ -5386,7 +5385,7 @@ "type": "tidelift" } ], - "time": "2020-07-06T13:19:58+00:00" + "time": "2021-03-23T15:25:38+00:00" }, { "name": "symfony/filesystem", @@ -6259,21 +6258,25 @@ }, { "name": "symfony/service-contracts", - "version": "v2.4.0", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" + "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.1" + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1" + }, + "conflict": { + "ext-psr": "<1.1|>=2" }, "suggest": { "symfony/service-implementation": "" @@ -6281,7 +6284,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -6318,7 +6321,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" }, "funding": [ { @@ -6334,7 +6337,7 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:43:52+00:00" + "time": "2021-11-04T16:48:04+00:00" }, { "name": "symfony/stopwatch", @@ -6736,16 +6739,16 @@ }, { "name": "vimeo/psalm", - "version": "4.13.0", + "version": "4.13.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "cd489407a0219b93cadd04d5aff9845a942f7e5d" + "reference": "5cf660f63b548ccd4a56f62d916ee4d6028e01a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/cd489407a0219b93cadd04d5aff9845a942f7e5d", - "reference": "cd489407a0219b93cadd04d5aff9845a942f7e5d", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/5cf660f63b548ccd4a56f62d916ee4d6028e01a3", + "reference": "5cf660f63b548ccd4a56f62d916ee4d6028e01a3", "shasum": "" }, "require": { @@ -6836,9 +6839,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.13.0" + "source": "https://github.com/vimeo/psalm/tree/4.13.1" }, - "time": "2021-11-19T20:24:40+00:00" + "time": "2021-11-23T23:52:49+00:00" }, { "name": "webmozart/assert", From e93a19e5b9717dd5ea00bef9e3362aaf21291f59 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Nov 2021 09:01:07 +0000 Subject: [PATCH 181/305] github-actions(deps): bump shivammathur/setup-php from 2.15.0 to 2.16.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.15.0 to 2.16.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.15.0...2.16.0) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index ce611c73..e6124121 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.15.0" + uses: "shivammathur/setup-php@2.16.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -100,7 +100,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.15.0" + uses: "shivammathur/setup-php@2.16.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -142,7 +142,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.15.0" + uses: "shivammathur/setup-php@2.16.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -198,7 +198,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.15.0" + uses: "shivammathur/setup-php@2.16.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -249,7 +249,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.15.0" + uses: "shivammathur/setup-php@2.16.0" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -299,7 +299,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.15.0" + uses: "shivammathur/setup-php@2.16.0" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 2c6e37ba..ebd48474 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.15.0" + uses: "shivammathur/setup-php@2.16.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 3162e3117f5a8aee1e3f5a21a591d0753dedbdba Mon Sep 17 00:00:00 2001 From: Artjom Simon Date: Fri, 3 Dec 2021 00:04:52 +0100 Subject: [PATCH 182/305] fix broken anchor link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7088760..d224ed5e 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ This package provides the following rules for use with [`phpstan/phpstan`](https * [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnulldefaultvaluerule) * [`Ergebnis\PHPStan\Rules\Expressions\NoCompactRule`](https://github.com/ergebnis/phpstan-rules#expressionsnocompactrule) * [`Ergebnis\PHPStan\Rules\Expressions\NoEmptyRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoemptyrule) -* [`Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule`](https://github.com/ergebnis/phpstan-rules#expressionserrorsuppressionrule) +* [`Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoerrorsuppressionrule) * [`Ergebnis\PHPStan\Rules\Expressions\NoEvalRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoevalrule) * [`Ergebnis\PHPStan\Rules\Expressions\NoIssetRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoissetrule) * [`Ergebnis\PHPStan\Rules\Files\DeclareStrictTypesRule`](https://github.com/ergebnis/phpstan-rules#filesdeclarestricttypesrule) From cc4c372fbcbfad15263b8f1cde48058988e9bd77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Dec 2021 11:45:21 +0000 Subject: [PATCH 183/305] composer(deps-dev): bump doctrine/orm from 2.10.2 to 2.10.3 Bumps [doctrine/orm](https://github.com/doctrine/orm) from 2.10.2 to 2.10.3. - [Release notes](https://github.com/doctrine/orm/releases) - [Commits](https://github.com/doctrine/orm/compare/2.10.2...2.10.3) --- updated-dependencies: - dependency-name: doctrine/orm dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 88 +++++++++++++++++++++++++++------------------------ 2 files changed, 47 insertions(+), 43 deletions(-) diff --git a/composer.json b/composer.json index 00626f1a..d3b21f7e 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { - "doctrine/orm": "^2.10.2", + "doctrine/orm": "^2.10.3", "ergebnis/composer-normalize": "^2.16.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", diff --git a/composer.lock b/composer.lock index eb66d7f8..d9a49025 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": "d485d29abd8a98f4b4bbdeddbb7ddfe5", + "content-hash": "7c76862f13c70948bca123b9a2bd772d", "packages": [ { "name": "nikic/php-parser", @@ -913,16 +913,16 @@ }, { "name": "doctrine/dbal", - "version": "2.13.4", + "version": "2.13.6", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "2411a55a2a628e6d8dd598388ab13474802c7b6e" + "reference": "67ef6d0327ccbab1202b39e0222977a47ed3ef2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/2411a55a2a628e6d8dd598388ab13474802c7b6e", - "reference": "2411a55a2a628e6d8dd598388ab13474802c7b6e", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/67ef6d0327ccbab1202b39e0222977a47ed3ef2f", + "reference": "67ef6d0327ccbab1202b39e0222977a47ed3ef2f", "shasum": "" }, "require": { @@ -935,13 +935,13 @@ "require-dev": { "doctrine/coding-standard": "9.0.0", "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "0.12.99", + "phpstan/phpstan": "1.2.0", "phpunit/phpunit": "^7.5.20|^8.5|9.5.10", "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.6.0", + "squizlabs/php_codesniffer": "3.6.1", "symfony/cache": "^4.4", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.10.0" + "vimeo/psalm": "4.13.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -1002,7 +1002,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.4" + "source": "https://github.com/doctrine/dbal/tree/2.13.6" }, "funding": [ { @@ -1018,7 +1018,7 @@ "type": "tidelift" } ], - "time": "2021-10-02T15:59:26+00:00" + "time": "2021-11-26T20:11:05+00:00" }, { "name": "doctrine/deprecations", @@ -1399,16 +1399,16 @@ }, { "name": "doctrine/orm", - "version": "2.10.2", + "version": "2.10.3", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "81d472f6f96b8b571cafefe8d2fef89ed9446a62" + "reference": "7b242753466508e1dd10f67c1baee95785f845c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/81d472f6f96b8b571cafefe8d2fef89ed9446a62", - "reference": "81d472f6f96b8b571cafefe8d2fef89ed9446a62", + "url": "https://api.github.com/repos/doctrine/orm/zipball/7b242753466508e1dd10f67c1baee95785f845c1", + "reference": "7b242753466508e1dd10f67c1baee95785f845c1", "shasum": "" }, "require": { @@ -1438,12 +1438,12 @@ "doctrine/annotations": "^1.13", "doctrine/coding-standard": "^9.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "0.12.99", + "phpstan/phpstan": "1.2.0", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", "squizlabs/php_codesniffer": "3.6.1", "symfony/cache": "^4.4 || ^5.2", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.10.0" + "vimeo/psalm": "4.13.1" }, "suggest": { "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", @@ -1492,9 +1492,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.10.2" + "source": "https://github.com/doctrine/orm/tree/2.10.3" }, - "time": "2021-10-21T17:57:02+00:00" + "time": "2021-12-03T12:27:05+00:00" }, { "name": "doctrine/persistence", @@ -5065,28 +5065,29 @@ }, { "name": "symfony/console", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3e7ab8f5905058984899b05a4648096f558bfeba" + "reference": "ec3661faca1d110d6c307e124b44f99ac54179e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3e7ab8f5905058984899b05a4648096f558bfeba", - "reference": "3e7ab8f5905058984899b05a4648096f558bfeba", + "url": "https://api.github.com/repos/symfony/console/zipball/ec3661faca1d110d6c307e124b44f99ac54179e3", + "reference": "ec3661faca1d110d6c307e124b44f99ac54179e3", "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-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", @@ -5098,12 +5099,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", @@ -5143,7 +5144,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.3.11" + "source": "https://github.com/symfony/console/tree/v5.4.0" }, "funding": [ { @@ -5159,7 +5160,7 @@ "type": "tidelift" } ], - "time": "2021-11-21T19:41:05+00:00" + "time": "2021-11-29T15:30:56+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6400,16 +6401,16 @@ }, { "name": "symfony/string", - "version": "v5.3.10", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c" + "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", + "url": "https://api.github.com/repos/symfony/string/zipball/9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d", + "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d", "shasum": "" }, "require": { @@ -6420,11 +6421,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": { @@ -6463,7 +6467,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.3.10" + "source": "https://github.com/symfony/string/tree/v5.4.0" }, "funding": [ { @@ -6479,7 +6483,7 @@ "type": "tidelift" } ], - "time": "2021-10-27T18:21:46+00:00" + "time": "2021-11-24T10:02:00+00:00" }, { "name": "symfony/yaml", From f014cb082c9108d597825fb85c6f83fff6e86267 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Dec 2021 09:01:17 +0000 Subject: [PATCH 184/305] composer(deps-dev): bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.16.0 to 2.17.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.16.0...2.17.0) --- updated-dependencies: - dependency-name: ergebnis/composer-normalize dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index d3b21f7e..a7e4aee2 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ }, "require-dev": { "doctrine/orm": "^2.10.3", - "ergebnis/composer-normalize": "^2.16.0", + "ergebnis/composer-normalize": "^2.17.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", diff --git a/composer.lock b/composer.lock index d9a49025..2bae54e4 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": "7c76862f13c70948bca123b9a2bd772d", + "content-hash": "c02d463ed44e6c788e63891026651a8a", "packages": [ { "name": "nikic/php-parser", @@ -1658,16 +1658,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.16.0", + "version": "2.17.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "21eb186aa37247544674ee75aa4139c1cade7a64" + "reference": "0ac8d06d91063ea7b7ade3d635f3700a8012eb57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/21eb186aa37247544674ee75aa4139c1cade7a64", - "reference": "21eb186aa37247544674ee75aa4139c1cade7a64", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/0ac8d06d91063ea7b7ade3d635f3700a8012eb57", + "reference": "0ac8d06d91063ea7b7ade3d635f3700a8012eb57", "shasum": "" }, "require": { @@ -1679,14 +1679,14 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "^2.1.12", + "composer/composer": "^2.1.14", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.16.1", - "symfony/filesystem": "^5.3.4", - "vimeo/psalm": "^4.12.0" + "symfony/filesystem": "^5.4.0", + "vimeo/psalm": "^4.13.1" }, "type": "composer-plugin", "extra": { @@ -1729,7 +1729,7 @@ "type": "github" } ], - "time": "2021-11-22T10:23:09+00:00" + "time": "2021-12-05T11:34:03+00:00" }, { "name": "ergebnis/json-normalizer", From f0706e479ca7942e1d0b57c68d78dc161a4ba738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 6 Dec 2021 10:02:17 +0100 Subject: [PATCH 185/305] Fix: Run 'make coding-standards' --- composer.json | 34 +++++------ composer.lock | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 181 insertions(+), 17 deletions(-) diff --git a/composer.json b/composer.json index a7e4aee2..5588a064 100644 --- a/composer.json +++ b/composer.json @@ -1,20 +1,24 @@ { "name": "ergebnis/phpstan-rules", - "type": "phpstan-extension", "description": "Provides additional rules for phpstan/phpstan.", + "license": "MIT", + "type": "phpstan-extension", "keywords": [ "phpstan", "phpstan-rules", "phpstan-extreme-rules" ], - "homepage": "https://github.com/ergebnis/phpstan-rules", - "license": "MIT", "authors": [ { "name": "Andreas Möller", "email": "am@localheinz.com" } ], + "homepage": "https://github.com/ergebnis/phpstan-rules", + "support": { + "issues": "https://github.com/ergebnis/phpstan-rules/issues", + "source": "https://github.com/ergebnis/phpstan-rules" + }, "require": { "php": "^7.2 || ^8.0", "ext-mbstring": "*", @@ -37,6 +41,16 @@ "vimeo/psalm": "^4.13.1", "zendframework/zend-servicemanager": "^2.0.0" }, + "autoload": { + "psr-4": { + "Ergebnis\\PHPStan\\Rules\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Ergebnis\\PHPStan\\Rules\\Test\\": "test/" + } + }, "config": { "platform": { "php": "7.2.33" @@ -50,19 +64,5 @@ "rules.neon" ] } - }, - "autoload": { - "psr-4": { - "Ergebnis\\PHPStan\\Rules\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Ergebnis\\PHPStan\\Rules\\Test\\": "test/" - } - }, - "support": { - "issues": "https://github.com/ergebnis/phpstan-rules/issues", - "source": "https://github.com/ergebnis/phpstan-rules" } } diff --git a/composer.lock b/composer.lock index 2bae54e4..455f1545 100644 --- a/composer.lock +++ b/composer.lock @@ -541,6 +541,10 @@ ], "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", "homepage": "https://github.com/container-interop/container-interop", + "support": { + "issues": "https://github.com/container-interop/container-interop/issues", + "source": "https://github.com/container-interop/container-interop/tree/master" + }, "abandoned": "psr/container", "time": "2017-02-14T19:40:03+00:00" }, @@ -1648,6 +1652,10 @@ "interfaces", "traits" ], + "support": { + "issues": "https://github.com/ergebnis/classy/issues", + "source": "https://github.com/ergebnis/classy" + }, "funding": [ { "url": "https://github.com/localheinz", @@ -1926,6 +1934,10 @@ "keywords": [ "license" ], + "support": { + "issues": "https://github.com/ergebnis/license/issues", + "source": "https://github.com/ergebnis/license" + }, "funding": [ { "url": "https://github.com/localheinz", @@ -1993,6 +2005,10 @@ ], "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", "homepage": "https://github.com/ergebnis/php-cs-fixer-config", + "support": { + "issues": "https://github.com/ergebnis/php-cs-fixer-config/issues", + "source": "https://github.com/ergebnis/php-cs-fixer-config" + }, "funding": [ { "url": "https://github.com/localheinz", @@ -2065,6 +2081,10 @@ "phpunit", "test" ], + "support": { + "issues": "https://github.com/ergebnis/test-util/issues", + "source": "https://github.com/ergebnis/test-util" + }, "funding": [ { "url": "https://github.com/localheinz", @@ -2132,6 +2152,10 @@ "faker", "fixtures" ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1" + }, "time": "2021-03-30T06:27:33+00:00" }, { @@ -2332,6 +2356,10 @@ } ], "description": "A tool to automatically fix PHP code style", + "support": { + "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.19.0" + }, "funding": [ { "url": "https://github.com/keradus", @@ -2435,6 +2463,10 @@ "testing", "unit testing" ], + "support": { + "issues": "https://github.com/infection/infection/issues", + "source": "https://github.com/infection/infection/tree/0.15.3" + }, "time": "2020-02-16T19:33:49+00:00" }, { @@ -2613,6 +2645,10 @@ "object", "object graph" ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + }, "funding": [ { "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", @@ -3268,6 +3304,10 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, "time": "2021-07-20T11:28:43+00:00" }, { @@ -3315,6 +3355,10 @@ } ], "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" + }, "time": "2021-02-23T14:00:09+00:00" }, { @@ -3366,6 +3410,10 @@ "keywords": [ "diff" ], + "support": { + "issues": "https://github.com/PHP-CS-Fixer/diff/issues", + "source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1" + }, "time": "2020-10-14T08:39:05+00:00" }, { @@ -3589,6 +3637,10 @@ "spy", "stub" ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/master" + }, "time": "2020-07-08T12:44:21+00:00" }, { @@ -3753,6 +3805,10 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -3809,6 +3865,10 @@ "filesystem", "iterator" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.4" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -3856,6 +3916,10 @@ "keywords": [ "template" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, "time": "2015-06-21T13:50:34+00:00" }, { @@ -3905,6 +3969,10 @@ "keywords": [ "timer" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -3960,6 +4028,10 @@ "keywords": [ "tokenizer" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4050,6 +4122,10 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.21" + }, "funding": [ { "url": "https://phpunit.de/donate.html", @@ -4110,6 +4186,10 @@ "container", "dependency injection" ], + "support": { + "issues": "https://github.com/silexphp/Pimple/issues", + "source": "https://github.com/silexphp/Pimple/tree/master" + }, "time": "2020-03-03T09:12:48+00:00" }, { @@ -4362,6 +4442,10 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4432,6 +4516,10 @@ "compare", "equality" ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4557,6 +4645,10 @@ "environment", "hhvm" ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4630,6 +4722,10 @@ "export", "exporter" ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4690,6 +4786,10 @@ "keywords": [ "global state" ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.1" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4743,6 +4843,10 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4794,6 +4898,10 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4853,6 +4961,10 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4901,6 +5013,10 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -4953,6 +5069,10 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -5002,6 +5122,10 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" + }, "time": "2016-10-03T07:35:21+00:00" }, { @@ -5051,6 +5175,10 @@ "parser", "validator" ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/master" + }, "funding": [ { "url": "https://github.com/Seldaek", @@ -5293,6 +5421,9 @@ ], "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.20" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5431,6 +5562,9 @@ ], "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.2.7" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5489,6 +5623,9 @@ ], "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.20" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5555,6 +5692,9 @@ "configuration", "options" ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.2.4" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5944,6 +6084,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -6241,6 +6384,9 @@ ], "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -6383,6 +6529,9 @@ ], "description": "Provides a way to profile code", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v5.3.0-BETA1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -6546,6 +6695,9 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/5.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -6693,6 +6845,10 @@ "MIT" ], "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/master" + }, "time": "2020-07-10T09:34:29+00:00" }, { @@ -6733,6 +6889,10 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, "funding": [ { "url": "https://github.com/theseer", @@ -7006,6 +7166,10 @@ "servicemanager", "zf2" ], + "support": { + "issues": "https://github.com/zendframework/zend-servicemanager/issues", + "source": "https://github.com/zendframework/zend-servicemanager/tree/release-2.7.11" + }, "abandoned": "laminas/laminas-servicemanager", "time": "2018-06-22T14:49:54+00:00" } From c24405cfad932ca85a1ffbf9a8a9968e499fed2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Dec 2021 09:04:57 +0000 Subject: [PATCH 186/305] composer(deps-dev): bump vimeo/psalm from 4.13.1 to 4.14.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.13.1 to 4.14.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.13.1...v4.14.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/composer.json b/composer.json index 5588a064..8a8ccffc 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.13.1", + "vimeo/psalm": "^4.14.0", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 455f1545..f492a9c8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c02d463ed44e6c788e63891026651a8a", + "content-hash": "c4b509fdc060251d8df4a99233506d0a", "packages": [ { "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": { @@ -58,9 +58,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": "phpstan/phpstan", @@ -6903,16 +6903,16 @@ }, { "name": "vimeo/psalm", - "version": "4.13.1", + "version": "v4.14.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "5cf660f63b548ccd4a56f62d916ee4d6028e01a3" + "reference": "14dcbc908ab2625cd7a74258ee6c740cbecc6140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/5cf660f63b548ccd4a56f62d916ee4d6028e01a3", - "reference": "5cf660f63b548ccd4a56f62d916ee4d6028e01a3", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/14dcbc908ab2625cd7a74258ee6c740cbecc6140", + "reference": "14dcbc908ab2625cd7a74258ee6c740cbecc6140", "shasum": "" }, "require": { @@ -7003,9 +7003,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.13.1" + "source": "https://github.com/vimeo/psalm/tree/v4.14.0" }, - "time": "2021-11-23T23:52:49+00:00" + "time": "2021-12-04T17:49:24+00:00" }, { "name": "webmozart/assert", From fbc9914edfdf4531830148e48078c55d175276a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 6 Dec 2021 10:06:33 +0100 Subject: [PATCH 187/305] Fix: Run 'make static-code-analysis-baseline' --- phpstan-baseline.neon | 20 +++++++++++++++ psalm-baseline.xml | 59 +++++++++++++++---------------------------- 2 files changed, 40 insertions(+), 39 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 653e61f8..3aee87e3 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -5,21 +5,41 @@ parameters: count: 1 path: src/Classes/FinalRule.php + - + message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\ClassLike\\:\\:\\$namespacedName \\(PhpParser\\\\Node\\\\Name\\) in isset\\(\\) is not nullable\\.$#" + count: 1 + path: src/Classes/FinalRule.php + - message: "#^Language construct isset\\(\\) should not be used\\.$#" count: 1 path: src/Classes/NoExtendsRule.php + - + message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\ClassLike\\:\\:\\$namespacedName \\(PhpParser\\\\Node\\\\Name\\) in isset\\(\\) is not nullable\\.$#" + count: 1 + path: src/Classes/NoExtendsRule.php + - message: "#^Language construct isset\\(\\) should not be used\\.$#" count: 1 path: src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php + - + message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\ClassLike\\:\\:\\$namespacedName \\(PhpParser\\\\Node\\\\Name\\) in isset\\(\\) is not nullable\\.$#" + count: 1 + path: src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php + - message: "#^Language construct isset\\(\\) should not be used\\.$#" count: 1 path: src/Functions/NoNullableReturnTypeDeclarationRule.php + - + message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\Function_\\:\\:\\$namespacedName \\(PhpParser\\\\Node\\\\Name\\) in isset\\(\\) is not nullable\\.$#" + count: 1 + path: src/Functions/NoNullableReturnTypeDeclarationRule.php + - message: "#^Parameter \\#1 \\$argument of class ReflectionClass constructor expects class\\-string\\\\|T of object, string given\\.$#" count: 1 diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 4e56c921..9dba21ad 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,59 +1,40 @@ - + - - $node->namespacedName->toString() - - - toString - toString - + + isset($node->namespacedName) + - - $node->namespacedName->toString() - - - toString - + + isset($node->namespacedName) + - - toString - + + isset($node->namespacedName) + + + string + - - $node->namespacedName->toString() - - - toString - + + isset($node->namespacedName) + - + $functionName - - - $functionName - - - $node->namespacedName - + - - $functionName - - + $functionName - - - $node->namespacedName - + From aa43b882894729e9e31bf049be4a0af3d7cf92e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 6 Dec 2021 10:08:20 +0100 Subject: [PATCH 188/305] Enhancement: Run tests on PHP 8.1 --- .github/settings.yml | 3 +++ .github/workflows/integrate.yaml | 1 + 2 files changed, 4 insertions(+) diff --git a/.github/settings.yml b/.github/settings.yml index 3fa2e621..fa2cb531 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -31,6 +31,9 @@ branches: - "Tests (8.0, highest)" - "Tests (8.0, locked)" - "Tests (8.0, lowest)" + - "Tests (8.1, highest)" + - "Tests (8.1, locked)" + - "Tests (8.1, lowest)" strict: false restrictions: diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index e6124121..d473eb2a 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -187,6 +187,7 @@ jobs: - "7.3" - "7.4" - "8.0" + - "8.1" dependencies: - "lowest" From c7bc14fbfbbc1d02b007150640760502f3c0403b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Dec 2021 09:01:19 +0000 Subject: [PATCH 189/305] composer(deps-dev): bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.17.0 to 2.18.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.17.0...2.18.0) --- updated-dependencies: - dependency-name: ergebnis/composer-normalize dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 8a8ccffc..65136367 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ }, "require-dev": { "doctrine/orm": "^2.10.3", - "ergebnis/composer-normalize": "^2.17.0", + "ergebnis/composer-normalize": "^2.18.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", diff --git a/composer.lock b/composer.lock index f492a9c8..9da53c21 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": "c4b509fdc060251d8df4a99233506d0a", + "content-hash": "7584932e720cf9c95c522f33b17457f2", "packages": [ { "name": "nikic/php-parser", @@ -1666,16 +1666,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.17.0", + "version": "2.18.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "0ac8d06d91063ea7b7ade3d635f3700a8012eb57" + "reference": "294fcd40aa2ee991dfdfbd6a106dbee25f54c658" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/0ac8d06d91063ea7b7ade3d635f3700a8012eb57", - "reference": "0ac8d06d91063ea7b7ade3d635f3700a8012eb57", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/294fcd40aa2ee991dfdfbd6a106dbee25f54c658", + "reference": "294fcd40aa2ee991dfdfbd6a106dbee25f54c658", "shasum": "" }, "require": { @@ -1694,7 +1694,7 @@ "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.16.1", "symfony/filesystem": "^5.4.0", - "vimeo/psalm": "^4.13.1" + "vimeo/psalm": "^4.14.0" }, "type": "composer-plugin", "extra": { @@ -1737,7 +1737,7 @@ "type": "github" } ], - "time": "2021-12-05T11:34:03+00:00" + "time": "2021-12-08T09:16:32+00:00" }, { "name": "ergebnis/json-normalizer", From f6f3197775ad5928c071f2630302a76b27123c76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Dec 2021 09:05:10 +0000 Subject: [PATCH 190/305] composer(deps-dev): bump vimeo/psalm from 4.14.0 to 4.15.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.14.0 to 4.15.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/v4.14.0...v4.15.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 65136367..4f1b5297 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.21", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.14.0", + "vimeo/psalm": "^4.15.0", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 9da53c21..86bc3432 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": "7584932e720cf9c95c522f33b17457f2", + "content-hash": "1a37736799a8dbaac12f6bbf6ade43ed", "packages": [ { "name": "nikic/php-parser", @@ -6903,16 +6903,16 @@ }, { "name": "vimeo/psalm", - "version": "v4.14.0", + "version": "v4.15.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "14dcbc908ab2625cd7a74258ee6c740cbecc6140" + "reference": "a1b5e489e6fcebe40cb804793d964e99fc347820" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/14dcbc908ab2625cd7a74258ee6c740cbecc6140", - "reference": "14dcbc908ab2625cd7a74258ee6c740cbecc6140", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/a1b5e489e6fcebe40cb804793d964e99fc347820", + "reference": "a1b5e489e6fcebe40cb804793d964e99fc347820", "shasum": "" }, "require": { @@ -7003,9 +7003,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/v4.14.0" + "source": "https://github.com/vimeo/psalm/tree/v4.15.0" }, - "time": "2021-12-04T17:49:24+00:00" + "time": "2021-12-07T11:25:29+00:00" }, { "name": "webmozart/assert", From 4b945311b646c0887d675003c607f1f22444782a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Dec 2021 09:01:57 +0000 Subject: [PATCH 191/305] composer(deps-dev): bump doctrine/orm from 2.10.3 to 2.10.4 Bumps [doctrine/orm](https://github.com/doctrine/orm) from 2.10.3 to 2.10.4. - [Release notes](https://github.com/doctrine/orm/releases) - [Commits](https://github.com/doctrine/orm/compare/2.10.3...2.10.4) --- updated-dependencies: - dependency-name: doctrine/orm dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/composer.json b/composer.json index 4f1b5297..29d4b285 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { - "doctrine/orm": "^2.10.3", + "doctrine/orm": "^2.10.4", "ergebnis/composer-normalize": "^2.18.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", diff --git a/composer.lock b/composer.lock index 86bc3432..1201511e 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": "1a37736799a8dbaac12f6bbf6ade43ed", + "content-hash": "171c324096de4df1ba964fa1565f3993", "packages": [ { "name": "nikic/php-parser", @@ -1403,16 +1403,16 @@ }, { "name": "doctrine/orm", - "version": "2.10.3", + "version": "2.10.4", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "7b242753466508e1dd10f67c1baee95785f845c1" + "reference": "cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/7b242753466508e1dd10f67c1baee95785f845c1", - "reference": "7b242753466508e1dd10f67c1baee95785f845c1", + "url": "https://api.github.com/repos/doctrine/orm/zipball/cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7", + "reference": "cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7", "shasum": "" }, "require": { @@ -1444,10 +1444,10 @@ "phpbench/phpbench": "^0.16.10 || ^1.0", "phpstan/phpstan": "1.2.0", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", - "squizlabs/php_codesniffer": "3.6.1", + "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^4.4 || ^5.2", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.13.1" + "vimeo/psalm": "4.15.0" }, "suggest": { "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", @@ -1496,9 +1496,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.10.3" + "source": "https://github.com/doctrine/orm/tree/2.10.4" }, - "time": "2021-12-03T12:27:05+00:00" + "time": "2021-12-20T21:23:47+00:00" }, { "name": "doctrine/persistence", @@ -5193,23 +5193,23 @@ }, { "name": "symfony/console", - "version": "v5.4.0", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "ec3661faca1d110d6c307e124b44f99ac54179e3" + "reference": "9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/ec3661faca1d110d6c307e124b44f99ac54179e3", - "reference": "ec3661faca1d110d6c307e124b44f99ac54179e3", + "url": "https://api.github.com/repos/symfony/console/zipball/9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4", + "reference": "9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4", "shasum": "" }, "require": { "php": ">=7.2.5", "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|^3", "symfony/string": "^5.1|^6.0" @@ -5272,7 +5272,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.0" + "source": "https://github.com/symfony/console/tree/v5.4.1" }, "funding": [ { @@ -5288,7 +5288,7 @@ "type": "tidelift" } ], - "time": "2021-11-29T15:30:56+00:00" + "time": "2021-12-09T11:22:43+00:00" }, { "name": "symfony/deprecation-contracts", From 4753aaad1b81f4ba610ea28955d59d9c7ca94143 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Dec 2021 09:04:36 +0000 Subject: [PATCH 192/305] composer(deps-dev): bump nette/di from 3.0.11 to 3.0.12 Bumps [nette/di](https://github.com/nette/di) from 3.0.11 to 3.0.12. - [Release notes](https://github.com/nette/di/releases) - [Commits](https://github.com/nette/di/compare/v3.0.11...v3.0.12) --- updated-dependencies: - dependency-name: nette/di dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 75 ++++++++++++++++++++++++++------------------------- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/composer.json b/composer.json index 29d4b285..4261157e 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", - "nette/di": "^3.0.11", + "nette/di": "^3.0.12", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", "phpunit/phpunit": "^8.5.21", diff --git a/composer.lock b/composer.lock index 1201511e..004079ae 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": "171c324096de4df1ba964fa1565f3993", + "content-hash": "4a54061ba7722a0bbb62c6768bc84f65", "packages": [ { "name": "nikic/php-parser", @@ -2710,22 +2710,22 @@ }, { "name": "nette/di", - "version": "v3.0.11", + "version": "v3.0.12", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "942e406f63b88b57cb4e095ae0fd95c103d12c5b" + "reference": "11c236b9f7bbfc5a95e7b24742ad8847936feeb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/942e406f63b88b57cb4e095ae0fd95c103d12c5b", - "reference": "942e406f63b88b57cb4e095ae0fd95c103d12c5b", + "url": "https://api.github.com/repos/nette/di/zipball/11c236b9f7bbfc5a95e7b24742ad8847936feeb5", + "reference": "11c236b9f7bbfc5a95e7b24742ad8847936feeb5", "shasum": "" }, "require": { "ext-tokenizer": "*", "nette/neon": "^3.3", - "nette/php-generator": "^3.3.3", + "nette/php-generator": "^3.5.4", "nette/robot-loader": "^3.2", "nette/schema": "^1.1", "nette/utils": "^3.1.6", @@ -2779,22 +2779,22 @@ ], "support": { "issues": "https://github.com/nette/di/issues", - "source": "https://github.com/nette/di/tree/v3.0.11" + "source": "https://github.com/nette/di/tree/v3.0.12" }, - "time": "2021-10-26T11:44:44+00:00" + "time": "2021-12-15T21:05:11+00:00" }, { "name": "nette/finder", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/nette/finder.git", - "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50" + "reference": "64dc25b7929b731e72a1bc84a9e57727f5d5d3e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50", - "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50", + "url": "https://api.github.com/repos/nette/finder/zipball/64dc25b7929b731e72a1bc84a9e57727f5d5d3e8", + "reference": "64dc25b7929b731e72a1bc84a9e57727f5d5d3e8", "shasum": "" }, "require": { @@ -2823,8 +2823,8 @@ "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { @@ -2846,22 +2846,22 @@ ], "support": { "issues": "https://github.com/nette/finder/issues", - "source": "https://github.com/nette/finder/tree/v2.5.2" + "source": "https://github.com/nette/finder/tree/v2.5.3" }, - "time": "2020-01-03T20:35:40+00:00" + "time": "2021-12-12T17:43:24+00:00" }, { "name": "nette/neon", - "version": "v3.3.0", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "33d262a0c4fb6c6371385f6dc8532f4e32c20ebc" + "reference": "54b287d8c2cdbe577b02e28ca1713e275b05ece2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/33d262a0c4fb6c6371385f6dc8532f4e32c20ebc", - "reference": "33d262a0c4fb6c6371385f6dc8532f4e32c20ebc", + "url": "https://api.github.com/repos/nette/neon/zipball/54b287d8c2cdbe577b02e28ca1713e275b05ece2", + "reference": "54b287d8c2cdbe577b02e28ca1713e275b05ece2", "shasum": "" }, "require": { @@ -2871,8 +2871,11 @@ "require-dev": { "nette/tester": "^2.0", "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "tracy/tracy": "^2.7" }, + "bin": [ + "bin/neon-lint" + ], "type": "library", "extra": { "branch-alias": { @@ -2911,22 +2914,22 @@ ], "support": { "issues": "https://github.com/nette/neon/issues", - "source": "https://github.com/nette/neon/tree/v3.3.0" + "source": "https://github.com/nette/neon/tree/v3.3.2" }, - "time": "2021-10-19T22:11:22+00:00" + "time": "2021-11-25T15:57:41+00:00" }, { "name": "nette/php-generator", - "version": "v3.6.4", + "version": "v3.6.5", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "b8375ac20760c62b6816f8c2eaeabbbca305eed7" + "reference": "9370403f9d9c25b51c4596ded1fbfe70347f7c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/b8375ac20760c62b6816f8c2eaeabbbca305eed7", - "reference": "b8375ac20760c62b6816f8c2eaeabbbca305eed7", + "url": "https://api.github.com/repos/nette/php-generator/zipball/9370403f9d9c25b51c4596ded1fbfe70347f7c82", + "reference": "9370403f9d9c25b51c4596ded1fbfe70347f7c82", "shasum": "" }, "require": { @@ -2979,9 +2982,9 @@ ], "support": { "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v3.6.4" + "source": "https://github.com/nette/php-generator/tree/v3.6.5" }, - "time": "2021-10-15T10:28:31+00:00" + "time": "2021-11-24T16:23:44+00:00" }, { "name": "nette/robot-loader", @@ -3114,16 +3117,16 @@ }, { "name": "nette/utils", - "version": "v3.2.5", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e" + "reference": "2f261e55bd6a12057442045bf2c249806abc1d02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/9cd80396ca58d7969ab44fc7afcf03624dfa526e", - "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e", + "url": "https://api.github.com/repos/nette/utils/zipball/2f261e55bd6a12057442045bf2c249806abc1d02", + "reference": "2f261e55bd6a12057442045bf2c249806abc1d02", "shasum": "" }, "require": { @@ -3134,7 +3137,7 @@ }, "require-dev": { "nette/tester": "~2.0", - "phpstan/phpstan": "^0.12", + "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.3" }, "suggest": { @@ -3193,9 +3196,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.5" + "source": "https://github.com/nette/utils/tree/v3.2.6" }, - "time": "2021-09-20T10:50:11+00:00" + "time": "2021-11-24T15:47:23+00:00" }, { "name": "openlss/lib-array2xml", From 2ce7f36c77e59672e5c67f0daffaa66855c7e5f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Dec 2021 09:01:53 +0000 Subject: [PATCH 193/305] composer(deps-dev): bump phpunit/phpunit from 8.5.21 to 8.5.22 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.21 to 8.5.22. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.21...8.5.22) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 64 +++++++++++++++++++++++++-------------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/composer.json b/composer.json index 4261157e..6f280ae0 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "nette/di": "^3.0.12", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", - "phpunit/phpunit": "^8.5.21", + "phpunit/phpunit": "^8.5.22", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", "vimeo/psalm": "^4.15.0", diff --git a/composer.lock b/composer.lock index 004079ae..5dcda979 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": "4a54061ba7722a0bbb62c6768bc84f65", + "content-hash": "aeda2c81665a0573e3d4a3f513c56afa", "packages": [ { "name": "nikic/php-parser", @@ -3581,33 +3581,33 @@ }, { "name": "phpspec/prophecy", - "version": "1.11.1", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "b20034be5efcdab4fb60ca3a29cba2949aead160" + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b20034be5efcdab4fb60ca3a29cba2949aead160", - "reference": "b20034be5efcdab4fb60ca3a29cba2949aead160", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2", - "php": "^7.2", - "phpdocumentor/reflection-docblock": "^5.0", + "php": "^7.2 || ~8.0, <8.2", + "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0", "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0" + "phpspec/phpspec": "^6.0 || ^7.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -3642,9 +3642,9 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/master" + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" }, - "time": "2020-07-08T12:44:21+00:00" + "time": "2021-12-08T12:19:24+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -3822,16 +3822,16 @@ }, { "name": "phpunit/php-file-iterator", - "version": "2.0.4", + "version": "2.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "28af674ff175d0768a5a978e6de83f697d4a7f05" + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/28af674ff175d0768a5a978e6de83f697d4a7f05", - "reference": "28af674ff175d0768a5a978e6de83f697d4a7f05", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", "shasum": "" }, "require": { @@ -3870,7 +3870,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.4" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" }, "funding": [ { @@ -3878,7 +3878,7 @@ "type": "github" } ], - "time": "2021-07-19T06:46:01+00:00" + "time": "2021-12-02T12:42:26+00:00" }, { "name": "phpunit/php-text-template", @@ -4046,16 +4046,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.21", + "version": "8.5.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984" + "reference": "ddd05b9d844260353895a3b950a9258126c11503" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984", - "reference": "50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ddd05b9d844260353895a3b950a9258126c11503", + "reference": "ddd05b9d844260353895a3b950a9258126c11503", "shasum": "" }, "require": { @@ -4127,11 +4127,11 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.21" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.22" }, "funding": [ { - "url": "https://phpunit.de/donate.html", + "url": "https://phpunit.de/sponsors.html", "type": "custom" }, { @@ -4139,7 +4139,7 @@ "type": "github" } ], - "time": "2021-09-25T07:37:20+00:00" + "time": "2021-12-25T06:58:09+00:00" }, { "name": "pimple/pimple", @@ -4662,16 +4662,16 @@ }, { "name": "sebastian/exporter", - "version": "3.1.3", + "version": "3.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" + "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", - "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", + "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", "shasum": "" }, "require": { @@ -4680,7 +4680,7 @@ }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -4727,7 +4727,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3" + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.4" }, "funding": [ { @@ -4735,7 +4735,7 @@ "type": "github" } ], - "time": "2020-11-30T07:47:53+00:00" + "time": "2021-11-11T13:51:24+00:00" }, { "name": "sebastian/global-state", From e79cc46b2cecaedf2092ce5ede2c9a6f965c6215 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Dec 2021 09:11:37 +0000 Subject: [PATCH 194/305] composer(deps-dev): bump vimeo/psalm from 4.15.0 to 4.16.1 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.15.0 to 4.16.1. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/v4.15.0...4.16.1) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 6f280ae0..63b2f01d 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.22", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.15.0", + "vimeo/psalm": "^4.16.1", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 5dcda979..8253c947 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": "aeda2c81665a0573e3d4a3f513c56afa", + "content-hash": "84261d2bd690e84a5d1e444cf980e1bd", "packages": [ { "name": "nikic/php-parser", @@ -6906,16 +6906,16 @@ }, { "name": "vimeo/psalm", - "version": "v4.15.0", + "version": "4.16.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "a1b5e489e6fcebe40cb804793d964e99fc347820" + "reference": "aa7e400908833b10c0333861f86cd48c510b60eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/a1b5e489e6fcebe40cb804793d964e99fc347820", - "reference": "a1b5e489e6fcebe40cb804793d964e99fc347820", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/aa7e400908833b10c0333861f86cd48c510b60eb", + "reference": "aa7e400908833b10c0333861f86cd48c510b60eb", "shasum": "" }, "require": { @@ -7006,9 +7006,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/v4.15.0" + "source": "https://github.com/vimeo/psalm/tree/4.16.1" }, - "time": "2021-12-07T11:25:29+00:00" + "time": "2021-12-26T08:17:05+00:00" }, { "name": "webmozart/assert", From ad800e7b5099c04f7c500a810e10eba898f3ffd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Dec 2021 09:01:34 +0000 Subject: [PATCH 195/305] composer(deps-dev): bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.18.0 to 2.19.0. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.18.0...2.19.0) --- updated-dependencies: - dependency-name: ergebnis/composer-normalize dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 63b2f01d..a6a9da4a 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ }, "require-dev": { "doctrine/orm": "^2.10.4", - "ergebnis/composer-normalize": "^2.18.0", + "ergebnis/composer-normalize": "^2.19.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", diff --git a/composer.lock b/composer.lock index 8253c947..30ef240a 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": "84261d2bd690e84a5d1e444cf980e1bd", + "content-hash": "622e75c4ef4cfbaa56c8021bd27ca019", "packages": [ { "name": "nikic/php-parser", @@ -1666,16 +1666,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.18.0", + "version": "2.19.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "294fcd40aa2ee991dfdfbd6a106dbee25f54c658" + "reference": "ff00fd4dc084928b684b217041a87f7bd0eeddc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/294fcd40aa2ee991dfdfbd6a106dbee25f54c658", - "reference": "294fcd40aa2ee991dfdfbd6a106dbee25f54c658", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/ff00fd4dc084928b684b217041a87f7bd0eeddc5", + "reference": "ff00fd4dc084928b684b217041a87f7bd0eeddc5", "shasum": "" }, "require": { @@ -1687,14 +1687,14 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "^2.1.14", + "composer/composer": "^2.2.1", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", - "ergebnis/test-util": "^1.5.0", - "phpunit/phpunit": "^8.5.21", + "fakerphp/faker": "^1.17.0", + "phpunit/phpunit": "^8.5.22", "psalm/plugin-phpunit": "~0.16.1", "symfony/filesystem": "^5.4.0", - "vimeo/psalm": "^4.14.0" + "vimeo/psalm": "^4.16.1" }, "type": "composer-plugin", "extra": { @@ -1737,7 +1737,7 @@ "type": "github" } ], - "time": "2021-12-08T09:16:32+00:00" + "time": "2021-12-28T10:38:12+00:00" }, { "name": "ergebnis/json-normalizer", From 3b3f8b522cdae699ced87a58a323a1a5b88637eb Mon Sep 17 00:00:00 2001 From: ergebnis-bot Date: Sat, 1 Jan 2022 02:29:08 +0000 Subject: [PATCH 196/305] Enhancement: Update license year --- .php-cs-fixer.php | 2 +- LICENSE.md | 2 +- src/Classes/FinalRule.php | 2 +- src/Classes/NoExtendsRule.php | 2 +- src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php | 2 +- src/Closures/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Closures/NoParameterWithNullDefaultValueRule.php | 2 +- src/Closures/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Expressions/NoCompactRule.php | 2 +- src/Expressions/NoEmptyRule.php | 2 +- src/Expressions/NoErrorSuppressionRule.php | 2 +- src/Expressions/NoEvalRule.php | 2 +- src/Expressions/NoIssetRule.php | 2 +- src/Files/DeclareStrictTypesRule.php | 2 +- src/Functions/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Functions/NoParameterWithNullDefaultValueRule.php | 2 +- src/Functions/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Methods/FinalInAbstractClassRule.php | 2 +- src/Methods/NoConstructorParameterWithDefaultValueRule.php | 2 +- src/Methods/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Methods/NoParameterWithContainerTypeDeclarationRule.php | 2 +- src/Methods/NoParameterWithNullDefaultValueRule.php | 2 +- src/Methods/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Methods/PrivateInFinalClassRule.php | 2 +- src/Statements/NoSwitchRule.php | 2 +- test/AutoReview/SrcCodeTest.php | 2 +- test/AutoReview/TestCodeTest.php | 2 +- test/Integration/AbstractTestCase.php | 2 +- test/Integration/Classes/FinalRuleTest.php | 2 +- .../Classes/FinalRuleWithAbstractClassesAllowedTest.php | 2 +- test/Integration/Classes/FinalRuleWithAttributesTest.php | 2 +- .../Integration/Classes/FinalRuleWithExcludedClassNamesTest.php | 2 +- test/Integration/Classes/NoExtendsRuleTest.php | 2 +- .../Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php | 2 +- .../Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php | 2 +- .../Closures/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Closures/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../Closures/NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Expressions/NoCompactRuleTest.php | 2 +- test/Integration/Expressions/NoEmptyRuleTest.php | 2 +- test/Integration/Expressions/NoErrorSuppressionRuleTest.php | 2 +- test/Integration/Expressions/NoEvalRuleTest.php | 2 +- test/Integration/Expressions/NoIssetRuleTest.php | 2 +- test/Integration/Files/DeclareStrictTypesRuleTest.php | 2 +- .../Functions/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Functions/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Methods/FinalInAbstractClassRuleTest.php | 2 +- .../Methods/NoConstructorParameterWithDefaultValueRuleTest.php | 2 +- .../Methods/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Methods/NoParameterWithContainerTypeDeclarationRuleTest.php | 2 +- .../Methods/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../Methods/NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Methods/PrivateInFinalClassRuleTest.php | 2 +- test/Integration/Statements/NoSwitchRuleTest.php | 2 +- 55 files changed, 55 insertions(+), 55 deletions(-) diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index 3c75c6d2..8900d390 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/LICENSE.md b/LICENSE.md index 6a472f62..b3bc94c5 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # The MIT License (MIT) -Copyright (c) 2018-2021 Andreas Möller +Copyright (c) 2018-2022 Andreas Möller Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the _Software_), to deal in the Software without restriction, including without limitation the diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index c2cace5a..05ae4b3e 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Classes/NoExtendsRule.php b/src/Classes/NoExtendsRule.php index 058e676f..b833d688 100644 --- a/src/Classes/NoExtendsRule.php +++ b/src/Classes/NoExtendsRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index dd9f210e..9b312fce 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoNullableReturnTypeDeclarationRule.php b/src/Closures/NoNullableReturnTypeDeclarationRule.php index 170800d5..13205124 100644 --- a/src/Closures/NoNullableReturnTypeDeclarationRule.php +++ b/src/Closures/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoParameterWithNullDefaultValueRule.php b/src/Closures/NoParameterWithNullDefaultValueRule.php index 6f3c6065..0418f880 100644 --- a/src/Closures/NoParameterWithNullDefaultValueRule.php +++ b/src/Closures/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php index 8d195377..ca4008dc 100644 --- a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoCompactRule.php b/src/Expressions/NoCompactRule.php index 6b460924..439aeeff 100644 --- a/src/Expressions/NoCompactRule.php +++ b/src/Expressions/NoCompactRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoEmptyRule.php b/src/Expressions/NoEmptyRule.php index df24221b..0898826a 100644 --- a/src/Expressions/NoEmptyRule.php +++ b/src/Expressions/NoEmptyRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoErrorSuppressionRule.php b/src/Expressions/NoErrorSuppressionRule.php index 0a12e44e..08bd3048 100644 --- a/src/Expressions/NoErrorSuppressionRule.php +++ b/src/Expressions/NoErrorSuppressionRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoEvalRule.php b/src/Expressions/NoEvalRule.php index 666f6cd6..37c9c8de 100644 --- a/src/Expressions/NoEvalRule.php +++ b/src/Expressions/NoEvalRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoIssetRule.php b/src/Expressions/NoIssetRule.php index aa492ab3..6f02c715 100644 --- a/src/Expressions/NoIssetRule.php +++ b/src/Expressions/NoIssetRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Files/DeclareStrictTypesRule.php b/src/Files/DeclareStrictTypesRule.php index 23344032..466d4cb1 100644 --- a/src/Files/DeclareStrictTypesRule.php +++ b/src/Files/DeclareStrictTypesRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index f26d63d0..d122981d 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoParameterWithNullDefaultValueRule.php b/src/Functions/NoParameterWithNullDefaultValueRule.php index eb349ddc..877e98e2 100644 --- a/src/Functions/NoParameterWithNullDefaultValueRule.php +++ b/src/Functions/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php index 837f2cc5..e07b134a 100644 --- a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/FinalInAbstractClassRule.php b/src/Methods/FinalInAbstractClassRule.php index ae7877c5..193a332c 100644 --- a/src/Methods/FinalInAbstractClassRule.php +++ b/src/Methods/FinalInAbstractClassRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoConstructorParameterWithDefaultValueRule.php b/src/Methods/NoConstructorParameterWithDefaultValueRule.php index 0a1f2cfe..6ec2c624 100644 --- a/src/Methods/NoConstructorParameterWithDefaultValueRule.php +++ b/src/Methods/NoConstructorParameterWithDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoNullableReturnTypeDeclarationRule.php b/src/Methods/NoNullableReturnTypeDeclarationRule.php index b562ef60..fc185598 100644 --- a/src/Methods/NoNullableReturnTypeDeclarationRule.php +++ b/src/Methods/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index 8073741c..1ef2ca04 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithNullDefaultValueRule.php b/src/Methods/NoParameterWithNullDefaultValueRule.php index d7160e65..e77248a7 100644 --- a/src/Methods/NoParameterWithNullDefaultValueRule.php +++ b/src/Methods/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php index ae440b90..628a0ef3 100644 --- a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/PrivateInFinalClassRule.php b/src/Methods/PrivateInFinalClassRule.php index 0628ef36..bc29c142 100644 --- a/src/Methods/PrivateInFinalClassRule.php +++ b/src/Methods/PrivateInFinalClassRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Statements/NoSwitchRule.php b/src/Statements/NoSwitchRule.php index 2c58b53c..2c9381a0 100644 --- a/src/Statements/NoSwitchRule.php +++ b/src/Statements/NoSwitchRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/AutoReview/SrcCodeTest.php b/test/AutoReview/SrcCodeTest.php index 836df581..cac51989 100644 --- a/test/AutoReview/SrcCodeTest.php +++ b/test/AutoReview/SrcCodeTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/AutoReview/TestCodeTest.php b/test/AutoReview/TestCodeTest.php index 2ab95b0c..9d1c66af 100644 --- a/test/AutoReview/TestCodeTest.php +++ b/test/AutoReview/TestCodeTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/AbstractTestCase.php b/test/Integration/AbstractTestCase.php index 415e3d8f..81e6f16e 100644 --- a/test/Integration/AbstractTestCase.php +++ b/test/Integration/AbstractTestCase.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleTest.php b/test/Integration/Classes/FinalRuleTest.php index 6166fe77..033dfb99 100644 --- a/test/Integration/Classes/FinalRuleTest.php +++ b/test/Integration/Classes/FinalRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php index c955a0b4..c7a42edc 100644 --- a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php +++ b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleWithAttributesTest.php b/test/Integration/Classes/FinalRuleWithAttributesTest.php index 84b52bf4..741608f0 100644 --- a/test/Integration/Classes/FinalRuleWithAttributesTest.php +++ b/test/Integration/Classes/FinalRuleWithAttributesTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php index dce1a4bf..b6fb4002 100644 --- a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php +++ b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/NoExtendsRuleTest.php b/test/Integration/Classes/NoExtendsRuleTest.php index 0a215536..60bb7b53 100644 --- a/test/Integration/Classes/NoExtendsRuleTest.php +++ b/test/Integration/Classes/NoExtendsRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php index 503796cb..8682102d 100644 --- a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php +++ b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php index 8b931d0a..1af1874b 100644 --- a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php +++ b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php index 0bc14eb4..4198755c 100644 --- a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php index e6fa6ff5..12f0a94b 100644 --- a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php index 7b9f4792..f72b3102 100644 --- a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoCompactRuleTest.php b/test/Integration/Expressions/NoCompactRuleTest.php index d71f636e..8f068a3f 100644 --- a/test/Integration/Expressions/NoCompactRuleTest.php +++ b/test/Integration/Expressions/NoCompactRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoEmptyRuleTest.php b/test/Integration/Expressions/NoEmptyRuleTest.php index 8a27aff4..cb4a71a9 100644 --- a/test/Integration/Expressions/NoEmptyRuleTest.php +++ b/test/Integration/Expressions/NoEmptyRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php index 46f0fc1b..b5b4d8e8 100644 --- a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php +++ b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoEvalRuleTest.php b/test/Integration/Expressions/NoEvalRuleTest.php index 4cd2300a..c13ba683 100644 --- a/test/Integration/Expressions/NoEvalRuleTest.php +++ b/test/Integration/Expressions/NoEvalRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoIssetRuleTest.php b/test/Integration/Expressions/NoIssetRuleTest.php index 5ab8b0a2..de4e8e43 100644 --- a/test/Integration/Expressions/NoIssetRuleTest.php +++ b/test/Integration/Expressions/NoIssetRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Files/DeclareStrictTypesRuleTest.php b/test/Integration/Files/DeclareStrictTypesRuleTest.php index d3bc2e6c..208f1a6d 100644 --- a/test/Integration/Files/DeclareStrictTypesRuleTest.php +++ b/test/Integration/Files/DeclareStrictTypesRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php index ae4878cd..a623b3cd 100644 --- a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php index a6e4f569..508199f6 100644 --- a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php index e14c5c4c..071f6d48 100644 --- a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/FinalInAbstractClassRuleTest.php b/test/Integration/Methods/FinalInAbstractClassRuleTest.php index 075b45b7..140fb5f1 100644 --- a/test/Integration/Methods/FinalInAbstractClassRuleTest.php +++ b/test/Integration/Methods/FinalInAbstractClassRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php index 40436c75..a917f493 100644 --- a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php index be24885c..ebc864a4 100644 --- a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php index 11a1da18..0f9fb280 100644 --- a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php index c95d1c70..1f308848 100644 --- a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php index 6a59ad6c..4f59a82c 100644 --- a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/PrivateInFinalClassRuleTest.php b/test/Integration/Methods/PrivateInFinalClassRuleTest.php index f45b78fe..6560defb 100644 --- a/test/Integration/Methods/PrivateInFinalClassRuleTest.php +++ b/test/Integration/Methods/PrivateInFinalClassRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Statements/NoSwitchRuleTest.php b/test/Integration/Statements/NoSwitchRuleTest.php index 3fec3762..28a58a85 100644 --- a/test/Integration/Statements/NoSwitchRuleTest.php +++ b/test/Integration/Statements/NoSwitchRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2021 Andreas Möller + * Copyright (c) 2018-2022 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. From 779f536b331097aa905a71cdedd8f131ee1f85c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jan 2022 09:01:51 +0000 Subject: [PATCH 197/305] composer(deps-dev): bump vimeo/psalm from 4.16.1 to 4.17.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.16.1 to 4.17.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.16.1...4.17.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/composer.json b/composer.json index a6a9da4a..f8808af7 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.22", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.16.1", + "vimeo/psalm": "^4.17.0", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 30ef240a..4758b69d 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": "622e75c4ef4cfbaa56c8021bd27ca019", + "content-hash": "e53d31bb6611ac6838e501dc8a0eb216", "packages": [ { "name": "nikic/php-parser", @@ -5196,16 +5196,16 @@ }, { "name": "symfony/console", - "version": "v5.4.1", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4" + "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4", - "reference": "9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4", + "url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e", + "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e", "shasum": "" }, "require": { @@ -5275,7 +5275,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.1" + "source": "https://github.com/symfony/console/tree/v5.4.2" }, "funding": [ { @@ -5291,7 +5291,7 @@ "type": "tidelift" } ], - "time": "2021-12-09T11:22:43+00:00" + "time": "2021-12-20T16:11:12+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6553,16 +6553,16 @@ }, { "name": "symfony/string", - "version": "v5.4.0", + "version": "v5.4.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d" + "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d", - "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d", + "url": "https://api.github.com/repos/symfony/string/zipball/e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d", + "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d", "shasum": "" }, "require": { @@ -6619,7 +6619,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.0" + "source": "https://github.com/symfony/string/tree/v5.4.2" }, "funding": [ { @@ -6635,7 +6635,7 @@ "type": "tidelift" } ], - "time": "2021-11-24T10:02:00+00:00" + "time": "2021-12-16T21:52:00+00:00" }, { "name": "symfony/yaml", @@ -6906,16 +6906,16 @@ }, { "name": "vimeo/psalm", - "version": "4.16.1", + "version": "4.17.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "aa7e400908833b10c0333861f86cd48c510b60eb" + "reference": "6f4707aa41c9174353a6434bba3fc8840f981d9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/aa7e400908833b10c0333861f86cd48c510b60eb", - "reference": "aa7e400908833b10c0333861f86cd48c510b60eb", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/6f4707aa41c9174353a6434bba3fc8840f981d9c", + "reference": "6f4707aa41c9174353a6434bba3fc8840f981d9c", "shasum": "" }, "require": { @@ -6923,7 +6923,7 @@ "amphp/byte-stream": "^1.5", "composer/package-versions-deprecated": "^1.8.0", "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1 || ^2.0", + "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-ctype": "*", "ext-dom": "*", @@ -7006,9 +7006,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.16.1" + "source": "https://github.com/vimeo/psalm/tree/4.17.0" }, - "time": "2021-12-26T08:17:05+00:00" + "time": "2022-01-01T18:39:47+00:00" }, { "name": "webmozart/assert", From 72c992b84db29e699da9374417f2e8e71c4d5b69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jan 2022 09:01:47 +0000 Subject: [PATCH 198/305] composer(deps-dev): bump vimeo/psalm from 4.17.0 to 4.18 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.17.0 to 4.18. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.17.0...4.18) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 112 ++++++++++++++++++++++++++------------------------ 2 files changed, 60 insertions(+), 54 deletions(-) diff --git a/composer.json b/composer.json index f8808af7..08e420de 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.22", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.17.0", + "vimeo/psalm": "^4.18", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 4758b69d..34ed19ba 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": "e53d31bb6611ac6838e501dc8a0eb216", + "content-hash": "4cb34ab040ce30077e7a750cf201e567", "packages": [ { "name": "nikic/php-parser", @@ -369,16 +369,16 @@ }, { "name": "composer/semver", - "version": "3.2.6", + "version": "3.2.7", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "83e511e247de329283478496f7a1e114c9517506" + "reference": "deac27056b57e46faf136fae7b449eeaa71661ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506", - "reference": "83e511e247de329283478496f7a1e114c9517506", + "url": "https://api.github.com/repos/composer/semver/zipball/deac27056b57e46faf136fae7b449eeaa71661ee", + "reference": "deac27056b57e46faf136fae7b449eeaa71661ee", "shasum": "" }, "require": { @@ -430,7 +430,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.6" + "source": "https://github.com/composer/semver/tree/3.2.7" }, "funding": [ { @@ -446,7 +446,7 @@ "type": "tidelift" } ], - "time": "2021-10-25T11:34:17+00:00" + "time": "2022-01-04T09:57:54+00:00" }, { "name": "composer/xdebug-handler", @@ -3531,16 +3531,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": { @@ -3575,9 +3575,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.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", @@ -5716,21 +5716,24 @@ }, { "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" }, @@ -5775,7 +5778,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": [ { @@ -5791,20 +5794,20 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2021-10-20T20:35:02+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": { @@ -5856,7 +5859,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": [ { @@ -5872,11 +5875,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", @@ -5940,7 +5943,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": [ { @@ -5960,21 +5963,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" }, @@ -6020,7 +6026,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": [ { @@ -6036,7 +6042,7 @@ "type": "tidelift" } ], - "time": "2021-05-27T12:26:48+00:00" + "time": "2021-11-30T18:21:41+00:00" }, { "name": "symfony/polyfill-php70", @@ -6184,16 +6190,16 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.23.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" + "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", - "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", + "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", "shasum": "" }, "require": { @@ -6243,7 +6249,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" }, "funding": [ { @@ -6259,20 +6265,20 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2021-06-05T21:20:04+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": { @@ -6326,7 +6332,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": [ { @@ -6342,7 +6348,7 @@ "type": "tidelift" } ], - "time": "2021-07-28T13:41:28+00:00" + "time": "2021-09-13T13:58:33+00:00" }, { "name": "symfony/process", @@ -6906,22 +6912,22 @@ }, { "name": "vimeo/psalm", - "version": "4.17.0", + "version": "4.18", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "6f4707aa41c9174353a6434bba3fc8840f981d9c" + "reference": "760baddcea5e0d2ba5bfb882a3243265ad1430d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/6f4707aa41c9174353a6434bba3fc8840f981d9c", - "reference": "6f4707aa41c9174353a6434bba3fc8840f981d9c", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/760baddcea5e0d2ba5bfb882a3243265ad1430d3", + "reference": "760baddcea5e0d2ba5bfb882a3243265ad1430d3", "shasum": "" }, "require": { "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.8.0", + "composer-runtime-api": "^2.0.0", "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", "dnoegel/php-xdg-base-dir": "^0.1.1", @@ -6954,7 +6960,7 @@ "phpmyadmin/sql-parser": "5.1.0||dev-master", "phpspec/prophecy": ">=1.9.0", "phpunit/phpunit": "^9.0", - "psalm/plugin-phpunit": "^0.16", + "psalm/plugin-phpunit": "^0.16.1", "slevomat/coding-standard": "^7.0", "squizlabs/php_codesniffer": "^3.5", "symfony/process": "^4.3 || ^5.0 || ^6.0", @@ -7006,9 +7012,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.17.0" + "source": "https://github.com/vimeo/psalm/tree/4.18" }, - "time": "2022-01-01T18:39:47+00:00" + "time": "2022-01-06T20:49:15+00:00" }, { "name": "webmozart/assert", From 41de853e93241f7488e7382813e03097d66385f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jan 2022 09:01:47 +0000 Subject: [PATCH 199/305] composer(deps-dev): bump vimeo/psalm from 4.18 to 4.18.1 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.18 to 4.18.1. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.18...4.18.1) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index 34ed19ba..4075f9ec 100644 --- a/composer.lock +++ b/composer.lock @@ -6912,22 +6912,22 @@ }, { "name": "vimeo/psalm", - "version": "4.18", + "version": "4.18.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "760baddcea5e0d2ba5bfb882a3243265ad1430d3" + "reference": "dda05fa913f4dc6eb3386f2f7ce5a45d37a71bcb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/760baddcea5e0d2ba5bfb882a3243265ad1430d3", - "reference": "760baddcea5e0d2ba5bfb882a3243265ad1430d3", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/dda05fa913f4dc6eb3386f2f7ce5a45d37a71bcb", + "reference": "dda05fa913f4dc6eb3386f2f7ce5a45d37a71bcb", "shasum": "" }, "require": { "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", - "composer-runtime-api": "^2.0.0", + "composer/package-versions-deprecated": "^1.8.0", "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", "dnoegel/php-xdg-base-dir": "^0.1.1", @@ -6960,7 +6960,7 @@ "phpmyadmin/sql-parser": "5.1.0||dev-master", "phpspec/prophecy": ">=1.9.0", "phpunit/phpunit": "^9.0", - "psalm/plugin-phpunit": "^0.16.1", + "psalm/plugin-phpunit": "^0.16", "slevomat/coding-standard": "^7.0", "squizlabs/php_codesniffer": "^3.5", "symfony/process": "^4.3 || ^5.0 || ^6.0", @@ -7012,9 +7012,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.18" + "source": "https://github.com/vimeo/psalm/tree/4.18.1" }, - "time": "2022-01-06T20:49:15+00:00" + "time": "2022-01-08T21:21:26+00:00" }, { "name": "webmozart/assert", From 937c375d96feed0c7e767803feb16db5ab41e974 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 09:01:25 +0000 Subject: [PATCH 200/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4.12.0 to 4.13.0. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.12.0...v4.13.0) --- updated-dependencies: - dependency-name: stefanzweifel/git-auto-commit-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index ebd48474..a020d45e 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.12.0" + uses: "stefanzweifel/git-auto-commit-action@v4.13.0" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From 99243783a199062b85610a243c6ef9b69216ec4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jan 2022 09:01:12 +0000 Subject: [PATCH 201/305] composer(deps-dev): bump doctrine/orm from 2.10.4 to 2.11.0 Bumps [doctrine/orm](https://github.com/doctrine/orm) from 2.10.4 to 2.11.0. - [Release notes](https://github.com/doctrine/orm/releases) - [Commits](https://github.com/doctrine/orm/compare/2.10.4...2.11.0) --- updated-dependencies: - dependency-name: doctrine/orm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 119 ++++++++++++++++++++++++-------------------------- 2 files changed, 59 insertions(+), 62 deletions(-) diff --git a/composer.json b/composer.json index 08e420de..4ed07436 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { - "doctrine/orm": "^2.10.4", + "doctrine/orm": "^2.11.0", "ergebnis/composer-normalize": "^2.19.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", diff --git a/composer.lock b/composer.lock index 4075f9ec..532466d8 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": "4cb34ab040ce30077e7a750cf201e567", + "content-hash": "02a98578b646b7608f1a1e48c9b8e72b", "packages": [ { "name": "nikic/php-parser", @@ -827,16 +827,16 @@ }, { "name": "doctrine/common", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "6d970a11479275300b5144e9373ce5feacfa9b91" + "reference": "e927fc2410c8723d053b8032e591cdff76587cdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/6d970a11479275300b5144e9373ce5feacfa9b91", - "reference": "6d970a11479275300b5144e9373ce5feacfa9b91", + "url": "https://api.github.com/repos/doctrine/common/zipball/e927fc2410c8723d053b8032e591cdff76587cdb", + "reference": "e927fc2410c8723d053b8032e591cdff76587cdb", "shasum": "" }, "require": { @@ -844,9 +844,9 @@ "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0 || ^8.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.2.0", + "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", "squizlabs/php_codesniffer": "^3.0", "symfony/phpunit-bridge": "^4.0.5", @@ -897,7 +897,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.2.0" + "source": "https://github.com/doctrine/common/tree/3.2.1" }, "funding": [ { @@ -913,20 +913,20 @@ "type": "tidelift" } ], - "time": "2021-10-19T06:47:22+00:00" + "time": "2021-12-26T22:39:45+00:00" }, { "name": "doctrine/dbal", - "version": "2.13.6", + "version": "2.13.7", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "67ef6d0327ccbab1202b39e0222977a47ed3ef2f" + "reference": "6e22f6012b42d7932674857989fcf184e9e9b1c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/67ef6d0327ccbab1202b39e0222977a47ed3ef2f", - "reference": "67ef6d0327ccbab1202b39e0222977a47ed3ef2f", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/6e22f6012b42d7932674857989fcf184e9e9b1c3", + "reference": "6e22f6012b42d7932674857989fcf184e9e9b1c3", "shasum": "" }, "require": { @@ -939,13 +939,13 @@ "require-dev": { "doctrine/coding-standard": "9.0.0", "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "1.2.0", - "phpunit/phpunit": "^7.5.20|^8.5|9.5.10", + "phpstan/phpstan": "1.3.0", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.11", "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.6.1", + "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^4.4", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.13.0" + "vimeo/psalm": "4.16.1" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -1006,7 +1006,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.6" + "source": "https://github.com/doctrine/dbal/tree/2.13.7" }, "funding": [ { @@ -1022,7 +1022,7 @@ "type": "tidelift" } ], - "time": "2021-11-26T20:11:05+00:00" + "time": "2022-01-06T09:08:04+00:00" }, { "name": "doctrine/deprecations", @@ -1323,32 +1323,28 @@ }, { "name": "doctrine/lexer", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" @@ -1383,7 +1379,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.1" + "source": "https://github.com/doctrine/lexer/tree/1.2.2" }, "funding": [ { @@ -1399,28 +1395,28 @@ "type": "tidelift" } ], - "time": "2020-05-25T17:44:05+00:00" + "time": "2022-01-12T08:27:12+00:00" }, { "name": "doctrine/orm", - "version": "2.10.4", + "version": "2.11.0", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7" + "reference": "bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7", - "reference": "cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7", + "url": "https://api.github.com/repos/doctrine/orm/zipball/bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef", + "reference": "bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8", + "composer-runtime-api": "^2", "doctrine/cache": "^1.12.1 || ^2.1.1", "doctrine/collections": "^1.5", "doctrine/common": "^3.0.3", - "doctrine/dbal": "^2.13.1 || ^3.1.1", + "doctrine/dbal": "^2.13.1 || ^3.2", "doctrine/deprecations": "^0.5.3", "doctrine/event-manager": "^1.1", "doctrine/inflector": "^1.4 || ^2.0", @@ -1429,7 +1425,7 @@ "doctrine/persistence": "^2.2", "ext-ctype": "*", "ext-pdo": "*", - "php": "^7.1 ||^8.0", + "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3", "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", "symfony/polyfill-php72": "^1.23", @@ -1442,12 +1438,12 @@ "doctrine/annotations": "^1.13", "doctrine/coding-standard": "^9.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "1.2.0", + "phpstan/phpstan": "1.3.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", "squizlabs/php_codesniffer": "3.6.2", - "symfony/cache": "^4.4 || ^5.2", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.15.0" + "vimeo/psalm": "4.18.1" }, "suggest": { "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", @@ -1496,44 +1492,45 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.10.4" + "source": "https://github.com/doctrine/orm/tree/2.11.0" }, - "time": "2021-12-20T21:23:47+00:00" + "time": "2022-01-12T13:20:33+00:00" }, { "name": "doctrine/persistence", - "version": "2.2.3", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "5e7bdbbfe9811c06e1f745d1c166647d5c47d6ee" + "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/5e7bdbbfe9811c06e1f745d1c166647d5c47d6ee", - "reference": "5e7bdbbfe9811c06e1f745d1c166647d5c47d6ee", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/f8af155c1e7963f3d2b4415097d55757bbaa53d8", + "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", "doctrine/cache": "^1.11 || ^2.0", "doctrine/collections": "^1.0", "doctrine/deprecations": "^0.5.3", "doctrine/event-manager": "^1.0", "php": "^7.1 || ^8.0", - "psr/cache": "^1.0|^2.0|^3.0" + "psr/cache": "^1.0 || ^2.0 || ^3.0" }, "conflict": { + "doctrine/annotations": "<1.0 || >=2.0", "doctrine/common": "<2.10@dev" }, "require-dev": { "composer/package-versions-deprecated": "^1.11", + "doctrine/annotations": "^1.0", "doctrine/coding-standard": "^6.0 || ^9.0", "doctrine/common": "^3.0", - "phpstan/phpstan": "0.12.84", + "phpstan/phpstan": "1.2.0", "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", - "symfony/cache": "^4.4|^5.0", - "vimeo/psalm": "4.7.0" + "symfony/cache": "^4.4 || ^5.0 || ^6.0", + "vimeo/psalm": "4.13.1" }, "type": "library", "autoload": { @@ -1583,9 +1580,9 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/2.2.3" + "source": "https://github.com/doctrine/persistence/tree/2.3.0" }, - "time": "2021-10-25T19:59:10+00:00" + "time": "2022-01-09T19:58:46+00:00" }, { "name": "ergebnis/classy", @@ -6114,7 +6111,7 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.23.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", @@ -6170,7 +6167,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0" }, "funding": [ { @@ -7196,5 +7193,5 @@ "platform-overrides": { "php": "7.2.33" }, - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.2.0" } From c0d026ea8e8bcf7c3e663103027fd8dc59d8ae4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jan 2022 09:01:46 +0000 Subject: [PATCH 202/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4.13.0 to 4.13.1. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.13.0...v4.13.1) --- updated-dependencies: - dependency-name: stefanzweifel/git-auto-commit-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index a020d45e..42a0dfe0 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.13.0" + uses: "stefanzweifel/git-auto-commit-action@v4.13.1" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From c49878300e81835fbf7e6ecd6900ddec23967cd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jan 2022 09:01:36 +0000 Subject: [PATCH 203/305] composer(deps-dev): bump phpunit/phpunit from 8.5.22 to 8.5.23 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.22 to 8.5.23. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.22...8.5.23) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 17 +++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 4ed07436..acbe3108 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "nette/di": "^3.0.12", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", - "phpunit/phpunit": "^8.5.22", + "phpunit/phpunit": "^8.5.23", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", "vimeo/psalm": "^4.18", diff --git a/composer.lock b/composer.lock index 532466d8..5e05258d 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": "02a98578b646b7608f1a1e48c9b8e72b", + "content-hash": "44a598b6979ade60fdb34c455d45f57f", "packages": [ { "name": "nikic/php-parser", @@ -2613,9 +2613,6 @@ "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" - }, "require-dev": { "doctrine/collections": "^1.0", "doctrine/common": "^2.6", @@ -4043,16 +4040,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.22", + "version": "8.5.23", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "ddd05b9d844260353895a3b950a9258126c11503" + "reference": "efb20ff3623b9d09bf190a68fdfe574538a8d496" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ddd05b9d844260353895a3b950a9258126c11503", - "reference": "ddd05b9d844260353895a3b950a9258126c11503", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/efb20ff3623b9d09bf190a68fdfe574538a8d496", + "reference": "efb20ff3623b9d09bf190a68fdfe574538a8d496", "shasum": "" }, "require": { @@ -4124,7 +4121,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.22" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.23" }, "funding": [ { @@ -4136,7 +4133,7 @@ "type": "github" } ], - "time": "2021-12-25T06:58:09+00:00" + "time": "2022-01-21T05:50:34+00:00" }, { "name": "pimple/pimple", From 52cef0f91d9450958b0172d26dfaf176e584700c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jan 2022 09:01:22 +0000 Subject: [PATCH 204/305] composer(deps-dev): bump vimeo/psalm from 4.18.1 to 4.19.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.18.1 to 4.19.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.18.1...4.19.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/composer.json b/composer.json index acbe3108..81a389b2 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.23", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.18", + "vimeo/psalm": "^4.19", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 5e05258d..d6e1ecdd 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": "44a598b6979ade60fdb34c455d45f57f", + "content-hash": "8ad31e2ea5e98fd803ca1a3f8abb64c1", "packages": [ { "name": "nikic/php-parser", @@ -296,16 +296,16 @@ }, { "name": "composer/package-versions-deprecated", - "version": "1.11.99.4", + "version": "1.11.99.5", "source": { "type": "git", "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "b174585d1fe49ceed21928a945138948cb394600" + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b174585d1fe49ceed21928a945138948cb394600", - "reference": "b174585d1fe49ceed21928a945138948cb394600", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", "shasum": "" }, "require": { @@ -349,7 +349,7 @@ "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", "support": { "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.4" + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" }, "funding": [ { @@ -365,7 +365,7 @@ "type": "tidelift" } ], - "time": "2021-09-13T08:41:34+00:00" + "time": "2022-01-17T14:14:24+00:00" }, { "name": "composer/semver", @@ -6906,16 +6906,16 @@ }, { "name": "vimeo/psalm", - "version": "4.18.1", + "version": "4.19.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "dda05fa913f4dc6eb3386f2f7ce5a45d37a71bcb" + "reference": "a2ad69ae4f5ab1f7d225a8dc4e2ec2d9415ed599" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/dda05fa913f4dc6eb3386f2f7ce5a45d37a71bcb", - "reference": "dda05fa913f4dc6eb3386f2f7ce5a45d37a71bcb", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/a2ad69ae4f5ab1f7d225a8dc4e2ec2d9415ed599", + "reference": "a2ad69ae4f5ab1f7d225a8dc4e2ec2d9415ed599", "shasum": "" }, "require": { @@ -7006,9 +7006,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.18.1" + "source": "https://github.com/vimeo/psalm/tree/4.19.0" }, - "time": "2022-01-08T21:21:26+00:00" + "time": "2022-01-27T19:00:37+00:00" }, { "name": "webmozart/assert", From 434849a8af37affa1eed631a347e1ce7ada9a6fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jan 2022 09:01:25 +0000 Subject: [PATCH 205/305] composer(deps-dev): bump doctrine/orm from 2.11.0 to 2.11.1 Bumps [doctrine/orm](https://github.com/doctrine/orm) from 2.11.0 to 2.11.1. - [Release notes](https://github.com/doctrine/orm/releases) - [Commits](https://github.com/doctrine/orm/compare/2.11.0...2.11.1) --- updated-dependencies: - dependency-name: doctrine/orm dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 42 +++++++++++++++++++++--------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/composer.json b/composer.json index 81a389b2..5448d25c 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { - "doctrine/orm": "^2.11.0", + "doctrine/orm": "^2.11.1", "ergebnis/composer-normalize": "^2.19.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", diff --git a/composer.lock b/composer.lock index d6e1ecdd..71fdd38d 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": "8ad31e2ea5e98fd803ca1a3f8abb64c1", + "content-hash": "7939fe822a141d64c0879ffca4909d86", "packages": [ { "name": "nikic/php-parser", @@ -1399,16 +1399,16 @@ }, { "name": "doctrine/orm", - "version": "2.11.0", + "version": "2.11.1", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef" + "reference": "4b88ce787d3916c8366abf52f6c658a7a27ed3a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef", - "reference": "bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef", + "url": "https://api.github.com/repos/doctrine/orm/zipball/4b88ce787d3916c8366abf52f6c658a7a27ed3a6", + "reference": "4b88ce787d3916c8366abf52f6c658a7a27ed3a6", "shasum": "" }, "require": { @@ -1438,12 +1438,12 @@ "doctrine/annotations": "^1.13", "doctrine/coding-standard": "^9.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "1.3.3", + "phpstan/phpstan": "1.4.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^4.4 || ^5.4 || ^6.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.18.1" + "vimeo/psalm": "4.19.0" }, "suggest": { "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", @@ -1492,9 +1492,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.11.0" + "source": "https://github.com/doctrine/orm/tree/2.11.1" }, - "time": "2022-01-12T13:20:33+00:00" + "time": "2022-01-30T21:47:06+00:00" }, { "name": "doctrine/persistence", @@ -5190,16 +5190,16 @@ }, { "name": "symfony/console", - "version": "v5.4.2", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e" + "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e", - "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e", + "url": "https://api.github.com/repos/symfony/console/zipball/a2a86ec353d825c75856c6fd14fac416a7bdb6b8", + "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8", "shasum": "" }, "require": { @@ -5269,7 +5269,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.2" + "source": "https://github.com/symfony/console/tree/v5.4.3" }, "funding": [ { @@ -5285,7 +5285,7 @@ "type": "tidelift" } ], - "time": "2021-12-20T16:11:12+00:00" + "time": "2022-01-26T16:28:35+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6553,16 +6553,16 @@ }, { "name": "symfony/string", - "version": "v5.4.2", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d" + "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d", - "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d", + "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", + "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", "shasum": "" }, "require": { @@ -6619,7 +6619,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.2" + "source": "https://github.com/symfony/string/tree/v5.4.3" }, "funding": [ { @@ -6635,7 +6635,7 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:52:00+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/yaml", From 8cface32ab243d593a9661619319cf6e408db9bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Feb 2022 09:01:18 +0000 Subject: [PATCH 206/305] composer(deps-dev): bump vimeo/psalm from 4.19.0 to 4.20.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.19.0 to 4.20.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.19.0...4.20.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index 5448d25c..14938009 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.23", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.19", + "vimeo/psalm": "^4.20", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 71fdd38d..748d2e71 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": "7939fe822a141d64c0879ffca4909d86", + "content-hash": "fa14d23d03a72db6e29d5981eb4701d8", "packages": [ { "name": "nikic/php-parser", @@ -250,12 +250,12 @@ } }, "autoload": { - "psr-4": { - "Amp\\ByteStream\\": "lib" - }, "files": [ "lib/functions.php" - ] + ], + "psr-4": { + "Amp\\ByteStream\\": "lib" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6906,16 +6906,16 @@ }, { "name": "vimeo/psalm", - "version": "4.19.0", + "version": "4.20.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "a2ad69ae4f5ab1f7d225a8dc4e2ec2d9415ed599" + "reference": "f82a70e7edfc6cf2705e9374c8a0b6a974a779ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/a2ad69ae4f5ab1f7d225a8dc4e2ec2d9415ed599", - "reference": "a2ad69ae4f5ab1f7d225a8dc4e2ec2d9415ed599", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/f82a70e7edfc6cf2705e9374c8a0b6a974a779ed", + "reference": "f82a70e7edfc6cf2705e9374c8a0b6a974a779ed", "shasum": "" }, "require": { @@ -6981,13 +6981,13 @@ } }, "autoload": { - "psr-4": { - "Psalm\\": "src/Psalm/" - }, "files": [ "src/functions.php", "src/spl_object_id.php" - ] + ], + "psr-4": { + "Psalm\\": "src/Psalm/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7006,9 +7006,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.19.0" + "source": "https://github.com/vimeo/psalm/tree/4.20.0" }, - "time": "2022-01-27T19:00:37+00:00" + "time": "2022-02-03T17:03:47+00:00" }, { "name": "webmozart/assert", From b94deb2dda8fc1d24c84560305f206571fcad8d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Feb 2022 09:01:24 +0000 Subject: [PATCH 207/305] github-actions(deps): bump shivammathur/setup-php from 2.16.0 to 2.17.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.16.0 to 2.17.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.16.0...2.17.0) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index d473eb2a..1d07a471 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.16.0" + uses: "shivammathur/setup-php@2.17.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -100,7 +100,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.16.0" + uses: "shivammathur/setup-php@2.17.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -142,7 +142,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.16.0" + uses: "shivammathur/setup-php@2.17.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -199,7 +199,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.16.0" + uses: "shivammathur/setup-php@2.17.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -250,7 +250,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.16.0" + uses: "shivammathur/setup-php@2.17.0" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -300,7 +300,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.16.0" + uses: "shivammathur/setup-php@2.17.0" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 42a0dfe0..9336d890 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.16.0" + uses: "shivammathur/setup-php@2.17.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From bec84a035d1dfbec111f3c3e557093e4d747fa8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 09:01:11 +0000 Subject: [PATCH 208/305] github-actions(deps): bump actions/github-script from 5 to 6 Bumps [actions/github-script](https://github.com/actions/github-script) from 5 to 6. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/merge.yaml | 8 ++++---- .github/workflows/triage.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/merge.yaml b/.github/workflows/merge.yaml index aa2f28ae..dc5a5b70 100644 --- a/.github/workflows/merge.yaml +++ b/.github/workflows/merge.yaml @@ -26,7 +26,7 @@ jobs: steps: - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v5" + uses: "actions/github-script@v6" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -45,7 +45,7 @@ jobs: }) - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v5" + uses: "actions/github-script@v6" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -64,7 +64,7 @@ jobs: }) - name: "Approve pull request" - uses: "actions/github-script@v5" + uses: "actions/github-script@v6" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | @@ -79,7 +79,7 @@ jobs: }) - name: "Merge pull request" - uses: "actions/github-script@v5" + uses: "actions/github-script@v6" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index d606e929..17fdf978 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -15,7 +15,7 @@ jobs: steps: - name: "Add labels based on branch name" - uses: "actions/github-script@v5" + uses: "actions/github-script@v6" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" script: | From 5f57db1ed32884d7a80076a727022a9979409a2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Feb 2022 09:01:34 +0000 Subject: [PATCH 209/305] composer(deps-dev): bump vimeo/psalm from 4.20.0 to 4.21.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.20.0 to 4.21.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.20.0...4.21.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 84 +++++++++++++++++++++++++-------------------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/composer.json b/composer.json index 14938009..17d75a2b 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.23", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.20", + "vimeo/psalm": "^4.21", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 748d2e71..d6d17d0f 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": "fa14d23d03a72db6e29d5981eb4701d8", + "content-hash": "74af041e742f666e539429e21c8effea", "packages": [ { "name": "nikic/php-parser", @@ -130,16 +130,16 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.1", + "version": "v2.6.2", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae" + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", - "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", "shasum": "" }, "require": { @@ -161,13 +161,13 @@ } }, "autoload": { - "psr-4": { - "Amp\\": "lib" - }, "files": [ "lib/functions.php", "lib/Internal/functions.php" - ] + ], + "psr-4": { + "Amp\\": "lib" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -192,7 +192,7 @@ } ], "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "http://amphp.org/amp", + "homepage": "https://amphp.org/amp", "keywords": [ "async", "asynchronous", @@ -207,7 +207,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.1" + "source": "https://github.com/amphp/amp/tree/v2.6.2" }, "funding": [ { @@ -215,7 +215,7 @@ "type": "github" } ], - "time": "2021-09-23T18:43:08+00:00" + "time": "2022-02-20T17:52:18+00:00" }, { "name": "amphp/byte-stream", @@ -369,23 +369,23 @@ }, { "name": "composer/semver", - "version": "3.2.7", + "version": "3.2.9", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "deac27056b57e46faf136fae7b449eeaa71661ee" + "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/deac27056b57e46faf136fae7b449eeaa71661ee", - "reference": "deac27056b57e46faf136fae7b449eeaa71661ee", + "url": "https://api.github.com/repos/composer/semver/zipball/a951f614bd64dcd26137bc9b7b2637ddcfc57649", + "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.54", + "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", @@ -430,7 +430,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.7" + "source": "https://github.com/composer/semver/tree/3.2.9" }, "funding": [ { @@ -446,7 +446,7 @@ "type": "tidelift" } ], - "time": "2022-01-04T09:57:54+00:00" + "time": "2022-02-04T13:58:43+00:00" }, { "name": "composer/xdebug-handler", @@ -5821,12 +5821,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5902,12 +5902,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -5989,12 +5989,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6210,12 +6210,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -6289,12 +6289,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -6906,16 +6906,16 @@ }, { "name": "vimeo/psalm", - "version": "4.20.0", + "version": "4.21.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "f82a70e7edfc6cf2705e9374c8a0b6a974a779ed" + "reference": "d8bec4c7aaee111a532daec32fb09de5687053d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/f82a70e7edfc6cf2705e9374c8a0b6a974a779ed", - "reference": "f82a70e7edfc6cf2705e9374c8a0b6a974a779ed", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d8bec4c7aaee111a532daec32fb09de5687053d1", + "reference": "d8bec4c7aaee111a532daec32fb09de5687053d1", "shasum": "" }, "require": { @@ -7006,9 +7006,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.20.0" + "source": "https://github.com/vimeo/psalm/tree/4.21.0" }, - "time": "2022-02-03T17:03:47+00:00" + "time": "2022-02-18T04:34:15+00:00" }, { "name": "webmozart/assert", From f149ae5d8052217ea1f1b8da0daab510fdd61aa6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Feb 2022 09:01:27 +0000 Subject: [PATCH 210/305] composer(deps-dev): bump vimeo/psalm from 4.21.0 to 4.22.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.21.0 to 4.22.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.21.0...4.22.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/composer.json b/composer.json index 17d75a2b..94d72ece 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "phpunit/phpunit": "^8.5.23", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.21", + "vimeo/psalm": "^4.22", "zendframework/zend-servicemanager": "^2.0.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index d6d17d0f..57343d4d 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": "74af041e742f666e539429e21c8effea", + "content-hash": "6f7ca59f62d8ca03da22bf15e0243c9c", "packages": [ { "name": "nikic/php-parser", @@ -5190,16 +5190,16 @@ }, { "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": { @@ -5269,7 +5269,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.3" + "source": "https://github.com/symfony/console/tree/v5.4.5" }, "funding": [ { @@ -5285,7 +5285,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-02-24T12:45:35+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5742,12 +5742,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6584,12 +6584,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -6906,16 +6906,16 @@ }, { "name": "vimeo/psalm", - "version": "4.21.0", + "version": "4.22.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "d8bec4c7aaee111a532daec32fb09de5687053d1" + "reference": "fc2c6ab4d5fa5d644d8617089f012f3bb84b8703" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d8bec4c7aaee111a532daec32fb09de5687053d1", - "reference": "d8bec4c7aaee111a532daec32fb09de5687053d1", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/fc2c6ab4d5fa5d644d8617089f012f3bb84b8703", + "reference": "fc2c6ab4d5fa5d644d8617089f012f3bb84b8703", "shasum": "" }, "require": { @@ -7006,9 +7006,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.21.0" + "source": "https://github.com/vimeo/psalm/tree/4.22.0" }, - "time": "2022-02-18T04:34:15+00:00" + "time": "2022-02-24T20:34:05+00:00" }, { "name": "webmozart/assert", From 3e95253e514aba4d1efa442300b6c8231fd10fba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Mar 2022 09:01:52 +0000 Subject: [PATCH 211/305] github-actions(deps): bump shivammathur/setup-php from 2.17.0 to 2.17.1 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.17.0 to 2.17.1. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.17.0...2.17.1) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 1d07a471..e517f0ba 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.0" + uses: "shivammathur/setup-php@2.17.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -100,7 +100,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.0" + uses: "shivammathur/setup-php@2.17.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -142,7 +142,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.0" + uses: "shivammathur/setup-php@2.17.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -199,7 +199,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.0" + uses: "shivammathur/setup-php@2.17.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -250,7 +250,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.0" + uses: "shivammathur/setup-php@2.17.1" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -300,7 +300,7 @@ jobs: uses: "actions/checkout@v2.4.0" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.0" + uses: "shivammathur/setup-php@2.17.1" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 9336d890..421d885f 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.0" + uses: "shivammathur/setup-php@2.17.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From f6bf1eef4fe34bd6e5479376d336afa3739a11f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Mar 2022 09:04:27 +0000 Subject: [PATCH 212/305] github-actions(deps): bump actions/checkout from 2.4.0 to 3 Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.4.0...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index e517f0ba..0c6e0b20 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -29,7 +29,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.4.0" + uses: "actions/checkout@v3" - name: "Lint YAML files" uses: "ibiqlik/action-yamllint@v3.1" @@ -97,7 +97,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.4.0" + uses: "actions/checkout@v3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.17.1" @@ -139,7 +139,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.4.0" + uses: "actions/checkout@v3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.17.1" @@ -196,7 +196,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.4.0" + uses: "actions/checkout@v3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.17.1" @@ -247,7 +247,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.4.0" + uses: "actions/checkout@v3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.17.1" @@ -297,7 +297,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.4.0" + uses: "actions/checkout@v3" - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.17.1" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 421d885f..e3e23672 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.4.0" + uses: "actions/checkout@v3" with: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" From 2c707231c3ad674c59d99216ca9b4cbc061aeb82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Mar 2022 09:01:22 +0000 Subject: [PATCH 213/305] composer(deps-dev): bump phpunit/phpunit from 8.5.23 to 8.5.24 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.23 to 8.5.24. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.23...8.5.24) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 73 ++++++++++++++++++++++++++------------------------- 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/composer.json b/composer.json index 94d72ece..0357de8a 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "nette/di": "^3.0.12", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", - "phpunit/phpunit": "^8.5.23", + "phpunit/phpunit": "^8.5.24", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", "vimeo/psalm": "^4.22", diff --git a/composer.lock b/composer.lock index 57343d4d..5f8f3b8a 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": "6f7ca59f62d8ca03da22bf15e0243c9c", + "content-hash": "d83958c4efc1d4dba8344bb748b185a5", "packages": [ { "name": "nikic/php-parser", @@ -1254,29 +1254,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": { @@ -1303,7 +1304,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": [ { @@ -1319,7 +1320,7 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "doctrine/lexer", @@ -2620,12 +2621,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": [ @@ -3309,16 +3310,16 @@ }, { "name": "phar-io/version", - "version": "3.1.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "bae7c545bef187884426f042434e561ab1ddb182" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "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/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { @@ -3354,9 +3355,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.2.1" }, - "time": "2021-02-23T14:00:09+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "php-cs-fixer/diff", @@ -4040,16 +4041,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.23", + "version": "8.5.24", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "efb20ff3623b9d09bf190a68fdfe574538a8d496" + "reference": "293cb0099d75407d971a73f41e51f35b664667ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/efb20ff3623b9d09bf190a68fdfe574538a8d496", - "reference": "efb20ff3623b9d09bf190a68fdfe574538a8d496", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/293cb0099d75407d971a73f41e51f35b664667ed", + "reference": "293cb0099d75407d971a73f41e51f35b664667ed", "shasum": "" }, "require": { @@ -4121,7 +4122,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.23" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.24" }, "funding": [ { @@ -4133,7 +4134,7 @@ "type": "github" } ], - "time": "2022-01-21T05:50:34+00:00" + "time": "2022-03-05T16:52:36+00:00" }, { "name": "pimple/pimple", @@ -4733,16 +4734,16 @@ }, { "name": "sebastian/global-state", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" + "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", - "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", "shasum": "" }, "require": { @@ -4785,7 +4786,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" }, "funding": [ { @@ -4793,7 +4794,7 @@ "type": "github" } ], - "time": "2020-11-30T07:43:24+00:00" + "time": "2022-02-10T06:55:38+00:00" }, { "name": "sebastian/object-enumerator", @@ -5710,7 +5711,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -5772,7 +5773,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": [ { From edced9715a903d5fa43e6f8482625e3f4b38b02e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Mar 2022 09:01:55 +0000 Subject: [PATCH 214/305] composer(deps-dev): bump nette/di from 3.0.12 to 3.0.13 Bumps [nette/di](https://github.com/nette/di) from 3.0.12 to 3.0.13. - [Release notes](https://github.com/nette/di/releases) - [Commits](https://github.com/nette/di/compare/v3.0.12...v3.0.13) --- updated-dependencies: - dependency-name: nette/di dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 54 +++++++++++++++++++++++++-------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/composer.json b/composer.json index 0357de8a..d9f10679 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", "infection/infection": "~0.15.3", - "nette/di": "^3.0.12", + "nette/di": "^3.0.13", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", "phpunit/phpunit": "^8.5.24", diff --git a/composer.lock b/composer.lock index 5f8f3b8a..7cb4cc79 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": "d83958c4efc1d4dba8344bb748b185a5", + "content-hash": "334a03ba6484924471665913648ce430", "packages": [ { "name": "nikic/php-parser", @@ -2705,22 +2705,22 @@ }, { "name": "nette/di", - "version": "v3.0.12", + "version": "v3.0.13", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "11c236b9f7bbfc5a95e7b24742ad8847936feeb5" + "reference": "9878f2958a0a804b08430dbc719a52e493022739" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/11c236b9f7bbfc5a95e7b24742ad8847936feeb5", - "reference": "11c236b9f7bbfc5a95e7b24742ad8847936feeb5", + "url": "https://api.github.com/repos/nette/di/zipball/9878f2958a0a804b08430dbc719a52e493022739", + "reference": "9878f2958a0a804b08430dbc719a52e493022739", "shasum": "" }, "require": { "ext-tokenizer": "*", - "nette/neon": "^3.3", - "nette/php-generator": "^3.5.4", + "nette/neon": "^3.3 || ^4.0", + "nette/php-generator": "^3.5.4 || ^4.0", "nette/robot-loader": "^3.2", "nette/schema": "^1.1", "nette/utils": "^3.1.6", @@ -2774,9 +2774,9 @@ ], "support": { "issues": "https://github.com/nette/di/issues", - "source": "https://github.com/nette/di/tree/v3.0.12" + "source": "https://github.com/nette/di/tree/v3.0.13" }, - "time": "2021-12-15T21:05:11+00:00" + "time": "2022-03-10T02:43:04+00:00" }, { "name": "nette/finder", @@ -2847,16 +2847,16 @@ }, { "name": "nette/neon", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "54b287d8c2cdbe577b02e28ca1713e275b05ece2" + "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/54b287d8c2cdbe577b02e28ca1713e275b05ece2", - "reference": "54b287d8c2cdbe577b02e28ca1713e275b05ece2", + "url": "https://api.github.com/repos/nette/neon/zipball/22e384da162fab42961d48eb06c06d3ad0c11b95", + "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95", "shasum": "" }, "require": { @@ -2909,22 +2909,22 @@ ], "support": { "issues": "https://github.com/nette/neon/issues", - "source": "https://github.com/nette/neon/tree/v3.3.2" + "source": "https://github.com/nette/neon/tree/v3.3.3" }, - "time": "2021-11-25T15:57:41+00:00" + "time": "2022-03-10T02:04:26+00:00" }, { "name": "nette/php-generator", - "version": "v3.6.5", + "version": "v3.6.7", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "9370403f9d9c25b51c4596ded1fbfe70347f7c82" + "reference": "b9ba414c9895fd9420887f20eeb4eabde123677f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/9370403f9d9c25b51c4596ded1fbfe70347f7c82", - "reference": "9370403f9d9c25b51c4596ded1fbfe70347f7c82", + "url": "https://api.github.com/repos/nette/php-generator/zipball/b9ba414c9895fd9420887f20eeb4eabde123677f", + "reference": "b9ba414c9895fd9420887f20eeb4eabde123677f", "shasum": "" }, "require": { @@ -2977,9 +2977,9 @@ ], "support": { "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v3.6.5" + "source": "https://github.com/nette/php-generator/tree/v3.6.7" }, - "time": "2021-11-24T16:23:44+00:00" + "time": "2022-03-10T01:51:00+00:00" }, { "name": "nette/robot-loader", @@ -3112,16 +3112,16 @@ }, { "name": "nette/utils", - "version": "v3.2.6", + "version": "v3.2.7", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "2f261e55bd6a12057442045bf2c249806abc1d02" + "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/2f261e55bd6a12057442045bf2c249806abc1d02", - "reference": "2f261e55bd6a12057442045bf2c249806abc1d02", + "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99", + "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99", "shasum": "" }, "require": { @@ -3191,9 +3191,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.6" + "source": "https://github.com/nette/utils/tree/v3.2.7" }, - "time": "2021-11-24T15:47:23+00:00" + "time": "2022-01-24T11:29:14+00:00" }, { "name": "openlss/lib-array2xml", From 26d91edf3e2aa866e0f6a3077b0b92eb0b72e824 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Mar 2022 09:04:30 +0000 Subject: [PATCH 215/305] composer(deps-dev): bump doctrine/orm from 2.11.1 to 2.11.2 Bumps [doctrine/orm](https://github.com/doctrine/orm) from 2.11.1 to 2.11.2. - [Release notes](https://github.com/doctrine/orm/releases) - [Commits](https://github.com/doctrine/orm/compare/2.11.1...2.11.2) --- updated-dependencies: - dependency-name: doctrine/orm dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 105 +++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 54 deletions(-) diff --git a/composer.json b/composer.json index d9f10679..aa44c6d7 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { - "doctrine/orm": "^2.11.1", + "doctrine/orm": "^2.11.2", "ergebnis/composer-normalize": "^2.19.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", diff --git a/composer.lock b/composer.lock index 7cb4cc79..73571c3e 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": "334a03ba6484924471665913648ce430", + "content-hash": "35d4e87a951c260e3076a5fdf57f2b02", "packages": [ { "name": "nikic/php-parser", @@ -827,16 +827,16 @@ }, { "name": "doctrine/common", - "version": "3.2.1", + "version": "3.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "e927fc2410c8723d053b8032e591cdff76587cdb" + "reference": "295082d3750987065912816a9d536c2df735f637" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/e927fc2410c8723d053b8032e591cdff76587cdb", - "reference": "e927fc2410c8723d053b8032e591cdff76587cdb", + "url": "https://api.github.com/repos/doctrine/common/zipball/295082d3750987065912816a9d536c2df735f637", + "reference": "295082d3750987065912816a9d536c2df735f637", "shasum": "" }, "require": { @@ -845,7 +845,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.2.0", + "phpstan/phpstan": "^1.4.1", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", "squizlabs/php_codesniffer": "^3.0", @@ -897,7 +897,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.2.1" + "source": "https://github.com/doctrine/common/tree/3.2.2" }, "funding": [ { @@ -913,20 +913,20 @@ "type": "tidelift" } ], - "time": "2021-12-26T22:39:45+00:00" + "time": "2022-02-02T09:15:57+00:00" }, { "name": "doctrine/dbal", - "version": "2.13.7", + "version": "2.13.8", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "6e22f6012b42d7932674857989fcf184e9e9b1c3" + "reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/6e22f6012b42d7932674857989fcf184e9e9b1c3", - "reference": "6e22f6012b42d7932674857989fcf184e9e9b1c3", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/dc9b3c3c8592c935a6e590441f9abc0f9eba335b", + "reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b", "shasum": "" }, "require": { @@ -939,13 +939,13 @@ "require-dev": { "doctrine/coding-standard": "9.0.0", "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "1.3.0", - "phpunit/phpunit": "^7.5.20|^8.5|9.5.11", + "phpstan/phpstan": "1.4.6", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", "psalm/plugin-phpunit": "0.16.1", "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^4.4", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.16.1" + "vimeo/psalm": "4.22.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -1006,7 +1006,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.7" + "source": "https://github.com/doctrine/dbal/tree/2.13.8" }, "funding": [ { @@ -1022,7 +1022,7 @@ "type": "tidelift" } ], - "time": "2022-01-06T09:08:04+00:00" + "time": "2022-03-09T15:25:46+00:00" }, { "name": "doctrine/deprecations", @@ -1324,16 +1324,16 @@ }, { "name": "doctrine/lexer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { @@ -1341,7 +1341,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", + "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "vimeo/psalm": "^4.11" }, @@ -1380,7 +1380,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -1396,20 +1396,20 @@ "type": "tidelift" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "doctrine/orm", - "version": "2.11.1", + "version": "2.11.2", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "4b88ce787d3916c8366abf52f6c658a7a27ed3a6" + "reference": "9c351e044478135aec1755e2c0c0493a4b6309db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/4b88ce787d3916c8366abf52f6c658a7a27ed3a6", - "reference": "4b88ce787d3916c8366abf52f6c658a7a27ed3a6", + "url": "https://api.github.com/repos/doctrine/orm/zipball/9c351e044478135aec1755e2c0c0493a4b6309db", + "reference": "9c351e044478135aec1755e2c0c0493a4b6309db", "shasum": "" }, "require": { @@ -1425,7 +1425,6 @@ "doctrine/lexer": "^1.0", "doctrine/persistence": "^2.2", "ext-ctype": "*", - "ext-pdo": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3", "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", @@ -1439,12 +1438,12 @@ "doctrine/annotations": "^1.13", "doctrine/coding-standard": "^9.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "1.4.3", + "phpstan/phpstan": "1.4.6", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^4.4 || ^5.4 || ^6.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.19.0" + "vimeo/psalm": "4.22.0" }, "suggest": { "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", @@ -1493,9 +1492,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.11.1" + "source": "https://github.com/doctrine/orm/tree/2.11.2" }, - "time": "2022-01-30T21:47:06+00:00" + "time": "2022-03-09T15:23:58+00:00" }, { "name": "doctrine/persistence", @@ -5793,7 +5792,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", @@ -5854,7 +5853,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": [ { @@ -5874,7 +5873,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", @@ -5938,7 +5937,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": [ { @@ -5958,7 +5957,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -6021,7 +6020,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": [ { @@ -6109,7 +6108,7 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", @@ -6135,12 +6134,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6165,7 +6164,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" }, "funding": [ { @@ -6185,7 +6184,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -6244,7 +6243,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" }, "funding": [ { @@ -6264,16 +6263,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": { @@ -6327,7 +6326,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": [ { @@ -6343,7 +6342,7 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/process", From 844ba57a25c3022a577cdd977f81fce9ce3166c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Mar 2022 09:01:57 +0000 Subject: [PATCH 216/305] composer(deps-dev): bump phpunit/phpunit from 8.5.24 to 8.5.25 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.24 to 8.5.25. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/8.5.25/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.24...8.5.25) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 36 ++++++++++++++++++++---------------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/composer.json b/composer.json index aa44c6d7..e829c4f0 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "nette/di": "^3.0.13", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", - "phpunit/phpunit": "^8.5.24", + "phpunit/phpunit": "^8.5.25", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", "vimeo/psalm": "^4.22", diff --git a/composer.lock b/composer.lock index 73571c3e..822c62fe 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": "35d4e87a951c260e3076a5fdf57f2b02", + "content-hash": "1074ee45aacf2d27bf3416c34fb97321", "packages": [ { "name": "nikic/php-parser", @@ -2598,25 +2598,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": { @@ -2641,7 +2645,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": [ { @@ -2649,7 +2653,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "netresearch/jsonmapper", @@ -4040,16 +4044,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.24", + "version": "8.5.25", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "293cb0099d75407d971a73f41e51f35b664667ed" + "reference": "9ff23f4dfde040ccd3b8db876192d1184b934158" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/293cb0099d75407d971a73f41e51f35b664667ed", - "reference": "293cb0099d75407d971a73f41e51f35b664667ed", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9ff23f4dfde040ccd3b8db876192d1184b934158", + "reference": "9ff23f4dfde040ccd3b8db876192d1184b934158", "shasum": "" }, "require": { @@ -4121,7 +4125,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.24" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.25" }, "funding": [ { @@ -4133,7 +4137,7 @@ "type": "github" } ], - "time": "2022-03-05T16:52:36+00:00" + "time": "2022-03-16T16:24:13+00:00" }, { "name": "pimple/pimple", From 28008367560c3439b73f8b81e5323bfd07a7997d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 09:01:06 +0000 Subject: [PATCH 217/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4.13.1 to 4.14.0. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.13.1...v4.14.0) --- updated-dependencies: - dependency-name: stefanzweifel/git-auto-commit-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index e3e23672..fd6f4a13 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.13.1" + uses: "stefanzweifel/git-auto-commit-action@v4.14.0" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From d98f6512dd24b585063a4138de704820c73ee4b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 09:01:08 +0000 Subject: [PATCH 218/305] github-actions(deps): bump actions/cache from 2.1.7 to 3 Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.7...v3) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 14 +++++++------- .github/workflows/renew.yaml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 0c6e0b20..002a2577 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -52,7 +52,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -70,7 +70,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" @@ -110,7 +110,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -152,7 +152,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -212,7 +212,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -263,7 +263,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -310,7 +310,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index e3e23672..28278b51 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -43,7 +43,7 @@ jobs: uses: "./.github/actions/composer/composer/determine-cache-directory" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" @@ -58,7 +58,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v2.1.7" + uses: "actions/cache@v3" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" From 79c00e322c6a1b23741932c09bf948cd2b94a595 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 09:03:35 +0000 Subject: [PATCH 219/305] github-actions(deps): bump shivammathur/setup-php from 2.17.1 to 2.18.0 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.17.1 to 2.18.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.17.1...2.18.0) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 002a2577..6a2ba934 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.1" + uses: "shivammathur/setup-php@2.18.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -100,7 +100,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.1" + uses: "shivammathur/setup-php@2.18.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -142,7 +142,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.1" + uses: "shivammathur/setup-php@2.18.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -199,7 +199,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.1" + uses: "shivammathur/setup-php@2.18.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -250,7 +250,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.1" + uses: "shivammathur/setup-php@2.18.0" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -300,7 +300,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.1" + uses: "shivammathur/setup-php@2.18.0" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index ba5b147f..75479b10 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.17.1" + uses: "shivammathur/setup-php@2.18.0" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From cdc83f532c0d56b833748c83dbd1fdde9c8a6e51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Apr 2022 09:01:36 +0000 Subject: [PATCH 220/305] composer(deps-dev): bump phpunit/phpunit from 8.5.25 to 8.5.26 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.25 to 8.5.26. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.25...8.5.26) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/composer.json b/composer.json index e829c4f0..bd3acd81 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "nette/di": "^3.0.13", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", - "phpunit/phpunit": "^8.5.25", + "phpunit/phpunit": "^8.5.26", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", "vimeo/psalm": "^4.22", diff --git a/composer.lock b/composer.lock index 822c62fe..784c9d7f 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": "1074ee45aacf2d27bf3416c34fb97321", + "content-hash": "8968a688d62e1f479a9c1ff77f0d0474", "packages": [ { "name": "nikic/php-parser", @@ -3529,16 +3529,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": { @@ -3573,9 +3573,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", @@ -4044,16 +4044,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.25", + "version": "8.5.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9ff23f4dfde040ccd3b8db876192d1184b934158" + "reference": "ef117c59fc4c54a979021b26d08a3373e386606d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9ff23f4dfde040ccd3b8db876192d1184b934158", - "reference": "9ff23f4dfde040ccd3b8db876192d1184b934158", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ef117c59fc4c54a979021b26d08a3373e386606d", + "reference": "ef117c59fc4c54a979021b26d08a3373e386606d", "shasum": "" }, "require": { @@ -4125,7 +4125,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.25" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.26" }, "funding": [ { @@ -4137,7 +4137,7 @@ "type": "github" } ], - "time": "2022-03-16T16:24:13+00:00" + "time": "2022-04-01T12:34:39+00:00" }, { "name": "pimple/pimple", From 6bef5dd8b46fb968af974e21218b398016c40f9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 09:01:41 +0000 Subject: [PATCH 221/305] github-actions(deps): bump shivammathur/setup-php from 2.18.0 to 2.18.1 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.18.0 to 2.18.1. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.18.0...2.18.1) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 12 ++++++------ .github/workflows/renew.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 6a2ba934..5b8c6faf 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.0" + uses: "shivammathur/setup-php@2.18.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -100,7 +100,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.0" + uses: "shivammathur/setup-php@2.18.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -142,7 +142,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.0" + uses: "shivammathur/setup-php@2.18.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -199,7 +199,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.0" + uses: "shivammathur/setup-php@2.18.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -250,7 +250,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.0" + uses: "shivammathur/setup-php@2.18.1" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -300,7 +300,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.0" + uses: "shivammathur/setup-php@2.18.1" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 75479b10..a3aabbef 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.0" + uses: "shivammathur/setup-php@2.18.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From d250ca4f8645eaa9baf94fe418846f7b309eaa22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 09:01:44 +0000 Subject: [PATCH 222/305] github-actions(deps): bump actions/stale from 4 to 5 Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 5b90815d..695ab34a 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v4" + uses: "actions/stale@v5" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From 90722e5eb0e3ddfb378c3b2c42ca18ded57fee58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Apr 2022 09:01:26 +0000 Subject: [PATCH 223/305] github-actions(deps): bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4.14.0 to 4.14.1. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.14.0...v4.14.1) --- updated-dependencies: - dependency-name: stefanzweifel/git-auto-commit-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index a3aabbef..c7761f73 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.14.0" + uses: "stefanzweifel/git-auto-commit-action@v4.14.1" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From 201f812c5e3dbf8d7553701612eab5d6c3177a01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Apr 2022 09:02:01 +0000 Subject: [PATCH 224/305] composer(deps-dev): bump doctrine/orm from 2.11.2 to 2.12.0 Bumps [doctrine/orm](https://github.com/doctrine/orm) from 2.11.2 to 2.12.0. - [Release notes](https://github.com/doctrine/orm/releases) - [Commits](https://github.com/doctrine/orm/compare/2.11.2...2.12.0) --- updated-dependencies: - dependency-name: doctrine/orm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 142 +++++++++++++++++++++++++++----------------------- 2 files changed, 79 insertions(+), 65 deletions(-) diff --git a/composer.json b/composer.json index bd3acd81..0953320f 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { - "doctrine/orm": "^2.11.2", + "doctrine/orm": "^2.12.0", "ergebnis/composer-normalize": "^2.19.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", diff --git a/composer.lock b/composer.lock index 784c9d7f..82f3f3d5 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": "8968a688d62e1f479a9c1ff77f0d0474", + "content-hash": "a0e54aa0aa32f2b289e60ff61c63ba0a", "packages": [ { "name": "nikic/php-parser", @@ -827,20 +827,20 @@ }, { "name": "doctrine/common", - "version": "3.2.2", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "295082d3750987065912816a9d536c2df735f637" + "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/295082d3750987065912816a9d536c2df735f637", - "reference": "295082d3750987065912816a9d536c2df735f637", + "url": "https://api.github.com/repos/doctrine/common/zipball/c824e95d4c83b7102d8bc60595445a6f7d540f96", + "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96", "shasum": "" }, "require": { - "doctrine/persistence": "^2.0", + "doctrine/persistence": "^2.0 || ^3.0", "php": "^7.1 || ^8.0" }, "require-dev": { @@ -897,7 +897,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.2.2" + "source": "https://github.com/doctrine/common/tree/3.3.0" }, "funding": [ { @@ -913,7 +913,7 @@ "type": "tidelift" } ], - "time": "2022-02-02T09:15:57+00:00" + "time": "2022-02-05T18:28:51+00:00" }, { "name": "doctrine/dbal", @@ -1400,16 +1400,16 @@ }, { "name": "doctrine/orm", - "version": "2.11.2", + "version": "2.12.0", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "9c351e044478135aec1755e2c0c0493a4b6309db" + "reference": "d5503644314ed825fe4b276a588458a033fa3e7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/9c351e044478135aec1755e2c0c0493a4b6309db", - "reference": "9c351e044478135aec1755e2c0c0493a4b6309db", + "url": "https://api.github.com/repos/doctrine/orm/zipball/d5503644314ed825fe4b276a588458a033fa3e7c", + "reference": "d5503644314ed825fe4b276a588458a033fa3e7c", "shasum": "" }, "require": { @@ -1422,14 +1422,14 @@ "doctrine/event-manager": "^1.1", "doctrine/inflector": "^1.4 || ^2.0", "doctrine/instantiator": "^1.3", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^2.2", + "doctrine/lexer": "^1.2.3", + "doctrine/persistence": "^2.4 || ^3", "ext-ctype": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3", "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", "symfony/polyfill-php72": "^1.23", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "doctrine/annotations": "<1.13 || >= 2.0" @@ -1438,8 +1438,9 @@ "doctrine/annotations": "^1.13", "doctrine/coding-standard": "^9.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "1.4.6", + "phpstan/phpstan": "~1.4.10 || 1.5.0", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^4.4 || ^5.4 || ^6.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", @@ -1492,51 +1493,50 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.11.2" + "source": "https://github.com/doctrine/orm/tree/2.12.0" }, - "time": "2022-03-09T15:23:58+00:00" + "time": "2022-04-19T18:34:28+00:00" }, { "name": "doctrine/persistence", - "version": "2.3.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8" + "reference": "e6103cb9e0982a4312e05ad94bb7be3f8e2d5869" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/f8af155c1e7963f3d2b4415097d55757bbaa53d8", - "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/e6103cb9e0982a4312e05ad94bb7be3f8e2d5869", + "reference": "e6103cb9e0982a4312e05ad94bb7be3f8e2d5869", "shasum": "" }, "require": { - "doctrine/cache": "^1.11 || ^2.0", "doctrine/collections": "^1.0", - "doctrine/deprecations": "^0.5.3", "doctrine/event-manager": "^1.0", - "php": "^7.1 || ^8.0", + "php": "^7.2 || ^8.0", "psr/cache": "^1.0 || ^2.0 || ^3.0" }, "conflict": { - "doctrine/annotations": "<1.0 || >=2.0", - "doctrine/common": "<2.10@dev" + "doctrine/annotations": "<1.7 || >=2.0", + "doctrine/common": "<2.10" }, "require-dev": { "composer/package-versions-deprecated": "^1.11", - "doctrine/annotations": "^1.0", - "doctrine/coding-standard": "^6.0 || ^9.0", + "doctrine/annotations": "^1.7", + "doctrine/coding-standard": "^9.0", "doctrine/common": "^3.0", - "phpstan/phpstan": "1.2.0", - "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", - "symfony/cache": "^4.4 || ^5.0 || ^6.0", - "vimeo/psalm": "4.13.1" + "phpstan/phpstan": "1.5.0", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "vimeo/psalm": "4.22.0" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common", - "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + "Doctrine\\Persistence\\": "src/Persistence" } }, "notification-url": "https://packagist.org/downloads/", @@ -1570,7 +1570,7 @@ } ], "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", - "homepage": "https://doctrine-project.org/projects/persistence.html", + "homepage": "https://www.doctrine-project.org/projects/persistence.html", "keywords": [ "mapper", "object", @@ -1580,9 +1580,23 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/2.3.0" + "source": "https://github.com/doctrine/persistence/tree/3.0.0" }, - "time": "2022-01-09T19:58:46+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%2Fpersistence", + "type": "tidelift" + } + ], + "time": "2022-04-15T10:39:55+00:00" }, { "name": "ergebnis/classy", @@ -5194,16 +5208,16 @@ }, { "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": { @@ -5273,7 +5287,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.5" + "source": "https://github.com/symfony/console/tree/v5.4.7" }, "funding": [ { @@ -5289,20 +5303,20 @@ "type": "tidelift" } ], - "time": "2022-02-24T12:45:35+00:00" + "time": "2022-03-31T17:09:19+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "shasum": "" }, "require": { @@ -5340,7 +5354,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.1" }, "funding": [ { @@ -5356,7 +5370,7 @@ "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/event-dispatcher", @@ -5443,16 +5457,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.11", + "version": "v1.1.12", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c" + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/01e9a4efac0ee33a05dfdf93b346f62e7d0e998c", - "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", "shasum": "" }, "require": { @@ -5502,7 +5516,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.11" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.12" }, "funding": [ { @@ -5518,7 +5532,7 @@ "type": "tidelift" } ], - "time": "2021-03-23T15:25:38+00:00" + "time": "2022-01-02T09:41:36+00:00" }, { "name": "symfony/filesystem", @@ -6412,22 +6426,22 @@ }, { "name": "symfony/service-contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" + "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/24d9dc654b83e91aa59f9d167b131bc3b5bea24c", + "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1" + "symfony/deprecation-contracts": "^2.1|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -6475,7 +6489,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.1" }, "funding": [ { @@ -6491,7 +6505,7 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:48:04+00:00" + "time": "2022-03-13T20:07:29+00:00" }, { "name": "symfony/stopwatch", @@ -7194,5 +7208,5 @@ "platform-overrides": { "php": "7.2.33" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } From 380fb48725e747401c407eb7deb08b8418927a42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 09:01:58 +0000 Subject: [PATCH 225/305] composer(deps-dev): bump doctrine/orm from 2.12.0 to 2.12.1 Bumps [doctrine/orm](https://github.com/doctrine/orm) from 2.12.0 to 2.12.1. - [Release notes](https://github.com/doctrine/orm/releases) - [Commits](https://github.com/doctrine/orm/compare/2.12.0...2.12.1) --- updated-dependencies: - dependency-name: doctrine/orm dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 0953320f..767838e2 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { - "doctrine/orm": "^2.12.0", + "doctrine/orm": "^2.12.1", "ergebnis/composer-normalize": "^2.19.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", diff --git a/composer.lock b/composer.lock index 82f3f3d5..02a875dd 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": "a0e54aa0aa32f2b289e60ff61c63ba0a", + "content-hash": "fc4d823459795a5970b0a16091f51035", "packages": [ { "name": "nikic/php-parser", @@ -1400,16 +1400,16 @@ }, { "name": "doctrine/orm", - "version": "2.12.0", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "d5503644314ed825fe4b276a588458a033fa3e7c" + "reference": "2e4a8722721b934149ff53b191522a6829b6d73b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/d5503644314ed825fe4b276a588458a033fa3e7c", - "reference": "d5503644314ed825fe4b276a588458a033fa3e7c", + "url": "https://api.github.com/repos/doctrine/orm/zipball/2e4a8722721b934149ff53b191522a6829b6d73b", + "reference": "2e4a8722721b934149ff53b191522a6829b6d73b", "shasum": "" }, "require": { @@ -1493,9 +1493,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.12.0" + "source": "https://github.com/doctrine/orm/tree/2.12.1" }, - "time": "2022-04-19T18:34:28+00:00" + "time": "2022-04-22T17:46:03+00:00" }, { "name": "doctrine/persistence", From 5afbcbdea0839d7c776779ec9d20f1b047b8d162 Mon Sep 17 00:00:00 2001 From: John Blackbourn Date: Mon, 13 Jun 2022 18:19:45 +0100 Subject: [PATCH 226/305] Remove unnecessary shell input symbol --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d224ed5e..5ab1f443 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Provides additional rules for [`phpstan/phpstan`](https://github.com/phpstan/php Run ```sh -$ composer require --dev ergebnis/phpstan-rules +composer require --dev ergebnis/phpstan-rules ``` ## Usage From 8d0123294cad5bce02a664471063cf0677330a9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 28 Nov 2022 10:06:04 +0100 Subject: [PATCH 227/305] Fix: Allow composer plugins --- composer.json | 3 +++ composer.lock | 16 +++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 767838e2..394b8958 100644 --- a/composer.json +++ b/composer.json @@ -52,6 +52,9 @@ } }, "config": { + "allow-plugins": { + "ergebnis/composer-normalize": true + }, "platform": { "php": "7.2.33" }, diff --git a/composer.lock b/composer.lock index 02a875dd..a54339ef 100644 --- a/composer.lock +++ b/composer.lock @@ -2102,6 +2102,7 @@ "type": "github" } ], + "abandoned": "ergebnis/data-provider", "time": "2021-03-30T15:07:05+00:00" }, { @@ -3429,6 +3430,7 @@ "issues": "https://github.com/PHP-CS-Fixer/diff/issues", "source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1" }, + "abandoned": true, "time": "2020-10-14T08:39:05+00:00" }, { @@ -6764,12 +6766,6 @@ } }, "autoload": { - "psr-4": { - "Safe\\": [ - "lib/", - "generated/" - ] - }, "files": [ "generated/apache.php", "generated/apc.php", @@ -6859,7 +6855,13 @@ "generated/zip.php", "generated/zlib.php", "lib/special_cases.php" - ] + ], + "psr-4": { + "Safe\\": [ + "lib/", + "generated/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ From a2ecbc77f84211e09ee14348ef8513002ed6b444 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Nov 2022 09:06:50 +0000 Subject: [PATCH 228/305] github-actions(deps): bump actions/stale from 5 to 6 Bumps [actions/stale](https://github.com/actions/stale) from 5 to 6. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/prune.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml index 695ab34a..9ef1538c 100644 --- a/.github/workflows/prune.yaml +++ b/.github/workflows/prune.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: "Prune issues and pull requests" - uses: "actions/stale@v5" + uses: "actions/stale@v6" with: days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" From 4ba01f9889f22224ae2ade61bd0ad6cf97c3dc12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 28 Nov 2022 10:08:46 +0100 Subject: [PATCH 229/305] Fix: Use dashes --- CHANGELOG.md | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 157e7b32..00013721 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,11 +14,11 @@ For a full diff see [`0.15.3...1.0.0`][0.15.3...1.0.0]. ### Changed -* Added support for `phpstan/phpstan:^1.0.0` and dropped support for non-stable versions of `phpstan/phpstan` ([#381]), by [@rpkamp] +- Added support for `phpstan/phpstan:^1.0.0` and dropped support for non-stable versions of `phpstan/phpstan` ([#381]), by [@rpkamp] ### Fixed -* Adjusted `Classes\FinalRule` to not report an error when a non-final class has a `Doctrinbe\ORM\Mapping\Entity` attribute ([#395]), by [@localheinz] +- Adjusted `Classes\FinalRule` to not report an error when a non-final class has a `Doctrinbe\ORM\Mapping\Entity` attribute ([#395]), by [@localheinz] ## [`0.15.3`][0.15.3] @@ -26,7 +26,7 @@ For a full diff see [`0.15.2...0.15.3`][0.15.2...0.15.3]. ### Changed -* Allow installation with PHP 8.0 ([#294]), by [@localheinz] +- Allow installation with PHP 8.0 ([#294]), by [@localheinz] ## [`0.15.2`][0.15.2] @@ -34,7 +34,7 @@ For a full diff see [`0.15.1...0.15.2`][0.15.1...0.15.2]. ### Changed -* Dropped support for PHP 7.1 ([#259]), by [@localheinz] +- Dropped support for PHP 7.1 ([#259]), by [@localheinz] ## [`0.15.1`][0.15.1] @@ -42,7 +42,7 @@ For a full diff see [`0.15.0...0.15.1`][0.15.0...0.15.1]. ### Changed -* Adjusted `Methods\FinalInAbstractClass` rule to allow non-`final` `public` constructors in abstract classes ([#248]), by [@Slamdunk] +- Adjusted `Methods\FinalInAbstractClass` rule to allow non-`final` `public` constructors in abstract classes ([#248]), by [@Slamdunk] ## [`0.15.0`][0.15.0] @@ -50,7 +50,7 @@ For a full diff see [`0.14.4...0.15.0`][0.14.4...0.15.0]. ### Added -* Added `Classes\PHPUnit\Framework\TestCaseWithSuffixRule`, which reports an error when a concrete class extending `PHPUnit\Framework\TestCase` does not have a `Test` suffix ([#225]), by [@localheinz] +- Added `Classes\PHPUnit\Framework\TestCaseWithSuffixRule`, which reports an error when a concrete class extending `PHPUnit\Framework\TestCase` does not have a `Test` suffix ([#225]), by [@localheinz] ## [`0.14.4`][0.14.4] @@ -58,7 +58,7 @@ For a full diff see [`0.14.3...0.14.4`][0.14.3...0.14.4]. ### Fixed -* Ignored classes with `@ORM\Mapping\Entity` annotations in `FinalRule` ([#202]), by [@localheinz] +- Ignored classes with `@ORM\Mapping\Entity` annotations in `FinalRule` ([#202]), by [@localheinz] ## [`0.14.3`][0.14.3] @@ -66,7 +66,7 @@ For a full diff see [`0.14.2...0.14.3`][0.14.2...0.14.3]. ### Fixed -* Ignored first line in `DeclareStrictTypesRule` when it is a shebang ([#186]), by [@Great-Antique] +- Ignored first line in `DeclareStrictTypesRule` when it is a shebang ([#186]), by [@Great-Antique] ## [`0.14.2`][0.14.2] @@ -74,7 +74,7 @@ For a full diff see [`0.14.1...0.14.2`][0.14.1...0.14.2]. ### Fixed -* Brought back support for PHP 7.1 ([#166]), by [@localheinz] +- Brought back support for PHP 7.1 ([#166]), by [@localheinz] ## [`0.14.1`][0.14.1] @@ -82,7 +82,7 @@ For a full diff see [`0.14.0...0.14.1`][0.14.0...0.14.1]. ### Fixed -* Removed an inappropriate `replace` configuration from `composer.json` ([#161]), by [@localheinz] +- Removed an inappropriate `replace` configuration from `composer.json` ([#161]), by [@localheinz] ## [`0.14.0`][0.14.0] @@ -90,8 +90,8 @@ For a full diff see [`0.13.0...0.14.0`][0.13.0...0.14.0]. ### Changed -* Allowed installation of `phpstan/phpstan:~0.12.0` ([#147]), by [@localheinz] -* Renamed vendor namespace `Localheinz` to `Ergebnis` after move to [@ergebnis] ([#157]), by [@localheinz] +- Allowed installation of `phpstan/phpstan:~0.12.0` ([#147]), by [@localheinz] +- Renamed vendor namespace `Localheinz` to `Ergebnis` after move to [@ergebnis] ([#157]), by [@localheinz] Run @@ -123,7 +123,7 @@ For a full diff see [`0.13.0...0.14.0`][0.13.0...0.14.0]. to delete backup files created in the previous step. -* Moved parameters into `ergebnis` section to prevent conflicts with global parameters ([#158]), by [@localheinz] +- Moved parameters into `ergebnis` section to prevent conflicts with global parameters ([#158]), by [@localheinz] Where previously `phpstan.neon` looked like the following @@ -155,7 +155,7 @@ For a full diff see [`0.13.0...0.14.0`][0.13.0...0.14.0]. ### Fixed -* Dropped support for PHP 7.1 ([#141]), by [@localheinz] +- Dropped support for PHP 7.1 ([#141]), by [@localheinz] ## [`0.13.0`][0.13.0] @@ -163,7 +163,7 @@ For a full diff see [`0.12.2...0.13.0`][0.12.2...0.13.0]. ### Added -* Added `Methods\PrivateInFinalClassRule` which reports an error when a method in a `final` class is `protected` when it could be `private` ([#126]), by [@localheinz] +- Added `Methods\PrivateInFinalClassRule` which reports an error when a method in a `final` class is `protected` when it could be `private` ([#126]), by [@localheinz] ## [`0.12.2`][0.12.2] @@ -171,7 +171,7 @@ For a full diff see [`0.12.1...0.12.2`][0.12.1...0.12.2]. ### Fixed -* Started ignoring interfaces from analysis by `Methods\FinalInAbstractClassRule` to avoid inappropriate errors ([#132]), by [@localheinz] +- Started ignoring interfaces from analysis by `Methods\FinalInAbstractClassRule` to avoid inappropriate errors ([#132]), by [@localheinz] ## [`0.12.1`][0.12.1] @@ -179,7 +179,7 @@ For a full diff see [`0.12.0...0.12.1`][0.12.0...0.12.1]. ### Fixed -* Started resolving class name in type declaration before attempting to analyze it in the `Methods\NoParameterWithContainerTypeDeclarationRule` to avoid errors where class `self` is not found ([#128]), by [@localheinz] +- Started resolving class name in type declaration before attempting to analyze it in the `Methods\NoParameterWithContainerTypeDeclarationRule` to avoid errors where class `self` is not found ([#128]), by [@localheinz] ## [`0.12.0`][0.12.0] @@ -187,8 +187,8 @@ For a full diff see [`0.11.0...0.12.0`][0.11.0...0.12.0]. ### Added -* Added `Methods\NoParameterWithContainerTypeDeclarationRule`, which reports an error when a method has a type declaration that corresponds to a known dependency injection container or service locator ([#122]), by [@localheinz] -* Added `Methods\FinalInAbstractClassRule`, which reports an error when a concrete `public` or `protected` method in an `abstract` class is not `final` ([#123]), by [@localheinz] +- Added `Methods\NoParameterWithContainerTypeDeclarationRule`, which reports an error when a method has a type declaration that corresponds to a known dependency injection container or service locator ([#122]), by [@localheinz] +- Added `Methods\FinalInAbstractClassRule`, which reports an error when a concrete `public` or `protected` method in an `abstract` class is not `final` ([#123]), by [@localheinz] ## [`0.11.0`][0.11.0] @@ -196,17 +196,17 @@ For a full diff see [`0.10.0...0.11.0`][0.10.0...0.11.0]. ### Added -* Added `Files\DeclareStrictTypesRule`, which reports an error when a PHP file does not have a `declare(strict_types=1)` declaration ([#79] -* Added `Expressions\NoEmptyRule`, which reports an error when the language construct `empty()` is used ([#110]), by [@localheinz] -* Added `Expressions\NoEvalRule`, which reports an error when the language construct `eval()` is used ([#112]), by [@localheinz] -* Added `Expressions\NoErrorSuppressionRule`, which reports an error when `@` is used to suppress errors ([#113]), by [@localheinz] -* Added `Expressions\NoCompactRule`, which reports an error when the function `compact()` is used ([#116]), by [@localheinz] -* Added `Statements\NoSwitchRule`, which reports an error when the statement `switch()` is used ([#117]), by [@localheinz] +- Added `Files\DeclareStrictTypesRule`, which reports an error when a PHP file does not have a `declare(strict_types=1)` declaration ([#79] +- Added `Expressions\NoEmptyRule`, which reports an error when the language construct `empty()` is used ([#110]), by [@localheinz] +- Added `Expressions\NoEvalRule`, which reports an error when the language construct `eval()` is used ([#112]), by [@localheinz] +- Added `Expressions\NoErrorSuppressionRule`, which reports an error when `@` is used to suppress errors ([#113]), by [@localheinz] +- Added `Expressions\NoCompactRule`, which reports an error when the function `compact()` is used ([#116]), by [@localheinz] +- Added `Statements\NoSwitchRule`, which reports an error when the statement `switch()` is used ([#117]), by [@localheinz] ### Changed -* Require at least `nikic/php-parser:^4.2.3` ([#102]), by [@localheinz] -* Require at least `phpstan/phpstan:~0.11.15` ([#103]), by [@localheinz] +- Require at least `nikic/php-parser:^4.2.3` ([#102]), by [@localheinz] +- Require at least `phpstan/phpstan:~0.11.15` ([#103]), by [@localheinz] ## [`0.10.0`][0.10.0] @@ -214,11 +214,11 @@ For a full diff see [`0.9.1...0.10.0`][0.9.1...0.10.0]. ### Changed -* Require at least `phpstan/phpstan:~0.11.7` ([#91]), by [@localheinz] +- Require at least `phpstan/phpstan:~0.11.7` ([#91]), by [@localheinz] ### Fixed -* Added missing `parametersSchema` configuration to `rules.neon`, which is required for use with `bleedingEdge.neon`, see [`phpstan/phpstan@54a125d`](https://github.com/phpstan/phpstan/commit/54a125df47fa097b792cb9a3e70c49f753f66b85) ([#93]), by [@localheinz] +- Added missing `parametersSchema` configuration to `rules.neon`, which is required for use with `bleedingEdge.neon`, see [`phpstan/phpstan@54a125d`](https://github.com/phpstan/phpstan/commit/54a125df47fa097b792cb9a3e70c49f753f66b85) ([#93]), by [@localheinz] * ## [`0.9.1`][0.9.1] @@ -226,7 +226,7 @@ For a full diff see [`0.9.0...0.9.1`][0.9.0...0.9.1]. ### Changed -* Allow usage with [`phpstan/extension-installer`](https://github.com/phpstan/extension-installer) ([#89]), by [@localheinz] +- Allow usage with [`phpstan/extension-installer`](https://github.com/phpstan/extension-installer) ([#89]), by [@localheinz] ## [`0.9.0`][0.9.0] @@ -234,7 +234,7 @@ For a full diff see [`0.8.1...0.9.0`][0.8.1...0.9.0]. ### Changed -* Adjusted `Classes\FinalRule` to ignore Doctrine entities when they are annotated ([#84]), by [@localheinz] +- Adjusted `Classes\FinalRule` to ignore Doctrine entities when they are annotated ([#84]), by [@localheinz] ## [`0.8.1`][0.8.1] @@ -242,7 +242,7 @@ For a full diff see [`0.8.0...0.8.1`][0.8.0...0.8.1]. ### Fixed -* Actually enable `Expressions\NoIssetRule` ([#83]), by [@localheinz] +- Actually enable `Expressions\NoIssetRule` ([#83]), by [@localheinz] ## [`0.8.0`][0.8.0] @@ -250,7 +250,7 @@ For a full diff see [`0.7.1...0.8.0`][0.7.1...0.8.0]. ### Added -* Added `Expressions\NoIssetRule`, which reports an error when the language construct `isset()` is used ([#81]), by [@localheinz] +- Added `Expressions\NoIssetRule`, which reports an error when the language construct `isset()` is used ([#81]), by [@localheinz] ## [`0.7.1`][0.7.1] @@ -258,7 +258,7 @@ For a full diff see [`0.7.0...0.7.1`][0.7.0...0.7.1]. ### Changed -* Configured `Classes\NoExtendsRule` to allow a set of default classes to be extended ([#73]), by [@localheinz] +- Configured `Classes\NoExtendsRule` to allow a set of default classes to be extended ([#73]), by [@localheinz] ## [`0.7.0`][0.7.0] @@ -266,7 +266,7 @@ For a full diff see [`0.6.0...0.7.0`][0.6.0...0.7.0]. ### Added -* Added `Classes\NoExtendsRule`, which reports an error when a class extends a class that is not allowed to be extended ([#68]), by [@localheinz] +- Added `Classes\NoExtendsRule`, which reports an error when a class extends a class that is not allowed to be extended ([#68]), by [@localheinz] ## [`0.6.0`][0.6.0] @@ -274,7 +274,7 @@ For a full diff see [`0.5.0...0.6.0`][0.5.0...0.6.0]. ### Added -* Allow installation with `phpstan/phpstan:~0.11.0` ([#65]), by [@localheinz] +- Allow installation with `phpstan/phpstan:~0.11.0` ([#65]), by [@localheinz] ## [`0.5.0`][0.5.0] @@ -282,13 +282,13 @@ For a full diff see [`0.4.0...0.5.0`][0.4.0...0.5.0]. ### Added -* Added `Methods\NoConstructorParameterWithDefaultValueRule`, which reports an error when a constructor of an anonymous class or a class has a parameter with a default value ([#45]), by [@localheinz] -* Added parameters `$allowAbstractClasses` and `$classesNotRequiredToBeAbstractOrFinal` to allow configuration of `Classes`FinalRule` ([#51]), by [@localheinz] +- Added `Methods\NoConstructorParameterWithDefaultValueRule`, which reports an error when a constructor of an anonymous class or a class has a parameter with a default value ([#45]), by [@localheinz] +- Added parameters `$allowAbstractClasses` and `$classesNotRequiredToBeAbstractOrFinal` to allow configuration of `Classes`FinalRule` ([#51]), by [@localheinz] ### Removed -* Removed `Classes\AbstractOrFinalRule` after merging behaviour into `Classes\FinalRule` ([#51]), by [@localheinz] -* Removed default values from constructor of `Classes\FinalRule` ([#53]), by [@localheinz] +- Removed `Classes\AbstractOrFinalRule` after merging behaviour into `Classes\FinalRule` ([#51]), by [@localheinz] +- Removed default values from constructor of `Classes\FinalRule` ([#53]), by [@localheinz] ## [`0.4.0`][0.4.0] @@ -296,8 +296,8 @@ For a full diff see [`0.3.0...0.4.0`][0.3.0...0.4.0] ### Changed -* Removed double-quotes from error messages to be more consistent with error messages generated by `phpstan/phstan` ([#39]), by [@localheinz] -* Modified wording and placement of method, function, and parameter names in error messages to be more consistent with error messages generated by `phpstan/phstan` ([#42]), by [@localheinz] +- Removed double-quotes from error messages to be more consistent with error messages generated by `phpstan/phstan` ([#39]), by [@localheinz] +- Modified wording and placement of method, function, and parameter names in error messages to be more consistent with error messages generated by `phpstan/phstan` ([#42]), by [@localheinz] ## [`0.3.0`][0.3.0] @@ -305,15 +305,15 @@ For a full diff see [`0.2.0...0.3.0`][0.2.0...0.3.0] ### Added -* Added `Functions\NoNullableReturnTypeDeclarationRule`, which reports an error when a function has a nullable return type declaration, and `Methods\NoNullableReturnTypeDeclarationRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a nullable return type declaration ([#16]), by [@localheinz] -* Added `Closures\NoParameterWithNullDefaultValueRule`, which reports an error when a closure has a parameter with `null` as default value ([#26]), by [@localheinz] -* Added `Closures\NoNullableReturnTypeDeclarationRule`, which reports an error when a closure has a nullable return type declaration ([#29]), by [@localheinz] -* Added `Functions\NoParameterWithNullDefaultValueRule`, which reports an error when a function has a parameter with `null` as default value ([#31]), by [@localheinz] -* Added `Methods\NoParameterWithNullDefaultValueRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with `null` as default value ([#32]), by [@localheinz] -* Added `Closures\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a closure has a parameter with a nullable type declaration ([#33]), by [@localheinz] -* Added `Functions\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a function has a parameter with a nullable type declaration ([#34]), by [@localheinz] -* Added `Methods\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with a nullable type declaration ([#35]), by [@localheinz] -* Extracted `rules.neon`, so you can easily enable all rules by including it in your `phpstan.neon` ([#37]), by [@localheinz] +- Added `Functions\NoNullableReturnTypeDeclarationRule`, which reports an error when a function has a nullable return type declaration, and `Methods\NoNullableReturnTypeDeclarationRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a nullable return type declaration ([#16]), by [@localheinz] +- Added `Closures\NoParameterWithNullDefaultValueRule`, which reports an error when a closure has a parameter with `null` as default value ([#26]), by [@localheinz] +- Added `Closures\NoNullableReturnTypeDeclarationRule`, which reports an error when a closure has a nullable return type declaration ([#29]), by [@localheinz] +- Added `Functions\NoParameterWithNullDefaultValueRule`, which reports an error when a function has a parameter with `null` as default value ([#31]), by [@localheinz] +- Added `Methods\NoParameterWithNullDefaultValueRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with `null` as default value ([#32]), by [@localheinz] +- Added `Closures\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a closure has a parameter with a nullable type declaration ([#33]), by [@localheinz] +- Added `Functions\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a function has a parameter with a nullable type declaration ([#34]), by [@localheinz] +- Added `Methods\NoParameterWithNullableTypeDeclarationRule`, which reports an error when a method declared in an anonymous class, a class, or an interface has a parameter with a nullable type declaration ([#35]), by [@localheinz] +- Extracted `rules.neon`, so you can easily enable all rules by including it in your `phpstan.neon` ([#37]), by [@localheinz] ## [`0.2.0`][0.2.0] @@ -321,11 +321,11 @@ For a full diff see [`0.1.0...0.2.0`][0.1.0...0.2.0] ### Added -* Added `Classes\FinalRule`, which reports an error when a non-anonymous class is not `final`, ([#4]), by [@localheinz] +- Added `Classes\FinalRule`, which reports an error when a non-anonymous class is not `final`, ([#4]), by [@localheinz] ### Changed -* Added an `$excludeClassNames` argument to the constructors of `Classes\AbstractOrFinalRule` and `Classes\FinalRule` to allow whitelisting of classes, ([#11]), by [@localheinz] +- Added an `$excludeClassNames` argument to the constructors of `Classes\AbstractOrFinalRule` and `Classes\FinalRule` to allow whitelisting of classes, ([#11]), by [@localheinz] ## [`0.1.0`][0.1.0] @@ -333,7 +333,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. ### Added -* Added `Classes\AbstractOrFinalRule`, which reports an error when a non-anonymous class is neither `abstract` nor `final`, ([#1]), by [@localheinz] +- Added `Classes\AbstractOrFinalRule`, which reports an error when a non-anonymous class is neither `abstract` nor `final`, ([#1]), by [@localheinz] [0.1.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.1.0 [0.2.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.2.0 From 03c91ff29c21592cf80897771f5455f11907941a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 28 Nov 2022 10:09:25 +0100 Subject: [PATCH 230/305] Fix: Allow copying shell commands --- CHANGELOG.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00013721..6c75f48f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -95,30 +95,30 @@ For a full diff see [`0.13.0...0.14.0`][0.13.0...0.14.0]. Run - ``` - $ composer remove localheinz/phpstan-rules + ```sh + composer remove localheinz/phpstan-rules ``` and - ``` - $ composer require ergebnis/phpstan-rules + ```sh + composer require ergebnis/phpstan-rules ``` to update. Run - ``` - $ find . -type f -exec sed -i '.bak' 's/Localheinz\\PHPStan/Ergebnis\\PHPStan/g' {} \; + ```sh + find . -type f -exec sed -i '.bak' 's/Localheinz\\PHPStan/Ergebnis\\PHPStan/g' {} \; ``` to replace occurrences of `Localheinz\PHPStan` with `Ergebnis\PHPStan`. Run - ``` - $ find -type f -name '*.bak' -delete + ```sh + find -type f -name '*.bak' -delete ``` to delete backup files created in the previous step. From 30de86f3a5d23831fd29b5857e1654cdb8cf1226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 28 Nov 2022 10:09:51 +0100 Subject: [PATCH 231/305] Fix: Use dashes --- README.md | 78 +++++++++++++++++++++++++++---------------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 5ab1f443..4d7a4116 100644 --- a/README.md +++ b/README.md @@ -37,37 +37,37 @@ includes: :bulb: You probably want to use these rules on top of the rules provided by: -* [`phpstan/phpstan`](https://github.com/phpstan/phpstan) -* [`phpstan/phpstan-deprecation-rules`](https://github.com/phpstan/phpstan-deprecation-rules) -* [`phpstan/phpstan-strict-rules`](https://github.com/phpstan/phpstan-strict-rules) +- [`phpstan/phpstan`](https://github.com/phpstan/phpstan) +- [`phpstan/phpstan-deprecation-rules`](https://github.com/phpstan/phpstan-deprecation-rules) +- [`phpstan/phpstan-strict-rules`](https://github.com/phpstan/phpstan-strict-rules) ## Rules This package provides the following rules for use with [`phpstan/phpstan`](https://github.com/phpstan/phpstan): -* [`Ergebnis\PHPStan\Rules\Classes\FinalRule`](https://github.com/ergebnis/phpstan-rules#classesfinalrule) -* [`Ergebnis\PHPStan\Rules\Classes\NoExtendsRule`](https://github.com/ergebnis/phpstan-rules#classesnoextendsrule) -* [`Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule`](https://github.com/ergebnis/phpstan-rules#classesphpunitframeworktestcasewithsuffixrule) -* [`Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#closuresnonullablereturntypedeclarationrule) -* [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnullabletypedeclarationrule) -* [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnulldefaultvaluerule) -* [`Ergebnis\PHPStan\Rules\Expressions\NoCompactRule`](https://github.com/ergebnis/phpstan-rules#expressionsnocompactrule) -* [`Ergebnis\PHPStan\Rules\Expressions\NoEmptyRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoemptyrule) -* [`Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoerrorsuppressionrule) -* [`Ergebnis\PHPStan\Rules\Expressions\NoEvalRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoevalrule) -* [`Ergebnis\PHPStan\Rules\Expressions\NoIssetRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoissetrule) -* [`Ergebnis\PHPStan\Rules\Files\DeclareStrictTypesRule`](https://github.com/ergebnis/phpstan-rules#filesdeclarestricttypesrule) -* [`Ergebnis\PHPStan\Rules\Functions\NoNullableReturnTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#functionsnonullablereturntypedeclarationrule) -* [`Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullableTypeDeclaration`](https://github.com/ergebnis/phpstan-rules#functionsnoparameterwithnullabletypedeclarationrule) -* [`Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#functionsnoparameterwithnulldefaultvaluerule) -* [`Ergebnis\PHPStan\Rules\Methods\FinalInAbstractClassRule`](https://github.com/ergebnis/phpstan-rules#methodsfinalinabstractclassrule) -* [`Ergebnis\PHPStan\Rules\Methods\NoConstructorParameterWithDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#methodsnoconstructorparameterwithdefaultvaluerule) -* [`Ergebnis\PHPStan\Rules\Methods\NoNullableReturnTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#methodsnonullablereturntypedeclarationrule) -* [`Ergebnis\PHPStan\Rules\Methods\NoParameterWithContainerTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#methodsnoparameterwithcontainertypedeclarationrule) -* [`Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullableTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#methodsnoparameterwithnullabletypedeclarationrule) -* [`Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#methodsnoparameterwithnulldefaultvaluerule) -* [`Ergebnis\PHPStan\Rules\Methods\PrivateInFinalClassRule`](https://github.com/ergebnis/phpstan-rules#methodsprivateinfinalclassrule) -* [`Ergebnis\PHPStan\Rules\Statements\NoSwitchRule`](https://github.com/ergebnis/phpstan-rules#statementsnoswitchrule) +- [`Ergebnis\PHPStan\Rules\Classes\FinalRule`](https://github.com/ergebnis/phpstan-rules#classesfinalrule) +- [`Ergebnis\PHPStan\Rules\Classes\NoExtendsRule`](https://github.com/ergebnis/phpstan-rules#classesnoextendsrule) +- [`Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule`](https://github.com/ergebnis/phpstan-rules#classesphpunitframeworktestcasewithsuffixrule) +- [`Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#closuresnonullablereturntypedeclarationrule) +- [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnullabletypedeclarationrule) +- [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnulldefaultvaluerule) +- [`Ergebnis\PHPStan\Rules\Expressions\NoCompactRule`](https://github.com/ergebnis/phpstan-rules#expressionsnocompactrule) +- [`Ergebnis\PHPStan\Rules\Expressions\NoEmptyRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoemptyrule) +- [`Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoerrorsuppressionrule) +- [`Ergebnis\PHPStan\Rules\Expressions\NoEvalRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoevalrule) +- [`Ergebnis\PHPStan\Rules\Expressions\NoIssetRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoissetrule) +- [`Ergebnis\PHPStan\Rules\Files\DeclareStrictTypesRule`](https://github.com/ergebnis/phpstan-rules#filesdeclarestricttypesrule) +- [`Ergebnis\PHPStan\Rules\Functions\NoNullableReturnTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#functionsnonullablereturntypedeclarationrule) +- [`Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullableTypeDeclaration`](https://github.com/ergebnis/phpstan-rules#functionsnoparameterwithnullabletypedeclarationrule) +- [`Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#functionsnoparameterwithnulldefaultvaluerule) +- [`Ergebnis\PHPStan\Rules\Methods\FinalInAbstractClassRule`](https://github.com/ergebnis/phpstan-rules#methodsfinalinabstractclassrule) +- [`Ergebnis\PHPStan\Rules\Methods\NoConstructorParameterWithDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#methodsnoconstructorparameterwithdefaultvaluerule) +- [`Ergebnis\PHPStan\Rules\Methods\NoNullableReturnTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#methodsnonullablereturntypedeclarationrule) +- [`Ergebnis\PHPStan\Rules\Methods\NoParameterWithContainerTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#methodsnoparameterwithcontainertypedeclarationrule) +- [`Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullableTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#methodsnoparameterwithnullabletypedeclarationrule) +- [`Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#methodsnoparameterwithnulldefaultvaluerule) +- [`Ergebnis\PHPStan\Rules\Methods\PrivateInFinalClassRule`](https://github.com/ergebnis/phpstan-rules#methodsprivateinfinalclassrule) +- [`Ergebnis\PHPStan\Rules\Statements\NoSwitchRule`](https://github.com/ergebnis/phpstan-rules#statementsnoswitchrule) ### Classes @@ -112,7 +112,7 @@ This rule reports an error when a class extends another class. By default, this rule allows the following classes to be extended: -* [`PHPUnit\Framework\TestCase`](https://github.com/sebastianbergmann/phpunit/blob/7.5.2/src/Framework/TestCase.php) +- [`PHPUnit\Framework\TestCase`](https://github.com/sebastianbergmann/phpunit/blob/7.5.2/src/Framework/TestCase.php) ##### Allowing classes to be extended @@ -195,8 +195,8 @@ This rule reports an error when a concrete `public` or `protected `method in an This rule reports an error when a constructor declared in -* an anonymous class -* a class +- an anonymous class +- a class has a default value. @@ -204,9 +204,9 @@ has a default value. This rule reports an error when a method declared in -* an anonymous class -* a class -* an interface +- an anonymous class +- a class +- an interface uses a nullable return type declaration. @@ -218,7 +218,7 @@ This rule reports an error when a method has a type declaration for a known depe By default, this rule disallows the use of type declarations indicating an implementation of -* [`Psr\Container\ContainerInterface`](https://github.com/php-fig/container/blob/1.0.0/src/ContainerInterface.php) +- [`Psr\Container\ContainerInterface`](https://github.com/php-fig/container/blob/1.0.0/src/ContainerInterface.php) is expected to be injected into a method. @@ -238,9 +238,9 @@ parameters: This rule reports an error when a method declared in -* an anonymous class -* a class -* an interface +- an anonymous class +- a class +- an interface has a parameter with a nullable type declaration. @@ -248,9 +248,9 @@ has a parameter with a nullable type declaration. This rule reports an error when a method declared in -* an anonymous class -* a class -* an interface +- an anonymous class +- a class +- an interface has a parameter with `null` as default value. From e1cfd85591601caf162a5a4e421b88b4a21c132f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 28 Nov 2022 10:12:26 +0100 Subject: [PATCH 232/305] Fix: Drop support for PHP 7.3 --- .github/settings.yml | 13 +++++-------- .github/workflows/integrate.yaml | 11 +++++------ .github/workflows/renew.yaml | 2 +- CHANGELOG.md | 5 +++++ composer.json | 4 ++-- composer.lock | 6 +++--- 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index fa2cb531..9a981c08 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -14,14 +14,11 @@ branches: required_approving_review_count: 1 required_status_checks: contexts: - - "Code Coverage (7.2, locked)" - - "Coding Standards (7.2, locked)" - - "Dependency Analysis (7.2, locked)" - - "Mutation Tests (7.2, locked)" - - "Static Code Analysis (7.2, locked)" - - "Tests (7.2, highest)" - - "Tests (7.2, locked)" - - "Tests (7.2, lowest)" + - "Code Coverage (7.3, locked)" + - "Coding Standards (7.3, locked)" + - "Dependency Analysis (7.3, locked)" + - "Mutation Tests (7.3, locked)" + - "Static Code Analysis (7.3, locked)" - "Tests (7.3, highest)" - "Tests (7.3, locked)" - "Tests (7.3, lowest)" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 5b8c6faf..c0da58e1 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -22,7 +22,7 @@ jobs: strategy: matrix: php-version: - - "7.2" + - "7.3" dependencies: - "locked" @@ -90,7 +90,7 @@ jobs: strategy: matrix: php-version: - - "7.2" + - "7.3" dependencies: - "locked" @@ -132,7 +132,7 @@ jobs: strategy: matrix: php-version: - - "7.2" + - "7.3" dependencies: - "locked" @@ -183,7 +183,6 @@ jobs: strategy: matrix: php-version: - - "7.2" - "7.3" - "7.4" - "8.0" @@ -240,7 +239,7 @@ jobs: strategy: matrix: php-version: - - "7.2" + - "7.3" dependencies: - "locked" @@ -290,7 +289,7 @@ jobs: strategy: matrix: php-version: - - "7.2" + - "7.3" dependencies: - "locked" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index c7761f73..52069c6e 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -18,7 +18,7 @@ jobs: strategy: matrix: php-version: - - "7.2" + - "7.3" dependencies: - "locked" diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c75f48f..7021a20b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), For a full diff see [`1.0.0...main`][1.0.0...main]. +### Changed + +- Dropped support for PHP 7.2 ([#496]), by [@localheinz] + ## [`1.0.0`][1.0.0] For a full diff see [`0.15.3...1.0.0`][0.15.3...1.0.0]. @@ -447,6 +451,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#294]: https://github.com/ergebnis/phpstan-rules/pull/294 [#381]: https://github.com/ergebnis/phpstan-rules/pull/381 [#395]: https://github.com/ergebnis/phpstan-rules/pull/395 +[#496]: https://github.com/ergebnis/phpstan-rules/pull/496 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique diff --git a/composer.json b/composer.json index 394b8958..4addba67 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "source": "https://github.com/ergebnis/phpstan-rules" }, "require": { - "php": "^7.2 || ^8.0", + "php": "^7.3 || ^8.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", "phpstan/phpstan": "^1.0.0" @@ -56,7 +56,7 @@ "ergebnis/composer-normalize": true }, "platform": { - "php": "7.2.33" + "php": "7.3.33" }, "preferred-install": "dist", "sort-packages": true diff --git a/composer.lock b/composer.lock index a54339ef..1a983bd1 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": "fc4d823459795a5970b0a16091f51035", + "content-hash": "1334d573eef44a2e5ae4efe3cbc46493", "packages": [ { "name": "nikic/php-parser", @@ -7203,12 +7203,12 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.2 || ^8.0", + "php": "^7.3 || ^8.0", "ext-mbstring": "*" }, "platform-dev": [], "platform-overrides": { - "php": "7.2.33" + "php": "7.3.33" }, "plugin-api-version": "2.3.0" } From 87482c567d0995f623df39c68072aaaecf4f6907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 28 Nov 2022 10:23:34 +0100 Subject: [PATCH 233/305] Fix: Drop support for PHP 7.3 --- .github/settings.yml | 13 +++++-------- .github/workflows/integrate.yaml | 11 +++++------ .github/workflows/renew.yaml | 2 +- CHANGELOG.md | 2 ++ composer.json | 4 ++-- composer.lock | 6 +++--- 6 files changed, 18 insertions(+), 20 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index 9a981c08..4f2fa0c5 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -14,14 +14,11 @@ branches: required_approving_review_count: 1 required_status_checks: contexts: - - "Code Coverage (7.3, locked)" - - "Coding Standards (7.3, locked)" - - "Dependency Analysis (7.3, locked)" - - "Mutation Tests (7.3, locked)" - - "Static Code Analysis (7.3, locked)" - - "Tests (7.3, highest)" - - "Tests (7.3, locked)" - - "Tests (7.3, lowest)" + - "Code Coverage (7.4, locked)" + - "Coding Standards (7.4, locked)" + - "Dependency Analysis (7.4, locked)" + - "Mutation Tests (7.4, locked)" + - "Static Code Analysis (7.4, locked)" - "Tests (7.4, highest)" - "Tests (7.4, locked)" - "Tests (7.4, lowest)" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index c0da58e1..5071e6b8 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -22,7 +22,7 @@ jobs: strategy: matrix: php-version: - - "7.3" + - "7.4" dependencies: - "locked" @@ -90,7 +90,7 @@ jobs: strategy: matrix: php-version: - - "7.3" + - "7.4" dependencies: - "locked" @@ -132,7 +132,7 @@ jobs: strategy: matrix: php-version: - - "7.3" + - "7.4" dependencies: - "locked" @@ -183,7 +183,6 @@ jobs: strategy: matrix: php-version: - - "7.3" - "7.4" - "8.0" - "8.1" @@ -239,7 +238,7 @@ jobs: strategy: matrix: php-version: - - "7.3" + - "7.4" dependencies: - "locked" @@ -289,7 +288,7 @@ jobs: strategy: matrix: php-version: - - "7.3" + - "7.4" dependencies: - "locked" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 52069c6e..31a60d19 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -18,7 +18,7 @@ jobs: strategy: matrix: php-version: - - "7.3" + - "7.4" dependencies: - "locked" diff --git a/CHANGELOG.md b/CHANGELOG.md index 7021a20b..1cf767fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. ### Changed - Dropped support for PHP 7.2 ([#496]), by [@localheinz] +- Dropped support for PHP 7.3 ([#498]), by [@localheinz] ## [`1.0.0`][1.0.0] @@ -452,6 +453,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#381]: https://github.com/ergebnis/phpstan-rules/pull/381 [#395]: https://github.com/ergebnis/phpstan-rules/pull/395 [#496]: https://github.com/ergebnis/phpstan-rules/pull/496 +[#498]: https://github.com/ergebnis/phpstan-rules/pull/498 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique diff --git a/composer.json b/composer.json index 4addba67..56fda34f 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "source": "https://github.com/ergebnis/phpstan-rules" }, "require": { - "php": "^7.3 || ^8.0", + "php": "^7.4 || ^8.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", "phpstan/phpstan": "^1.0.0" @@ -56,7 +56,7 @@ "ergebnis/composer-normalize": true }, "platform": { - "php": "7.3.33" + "php": "7.4.29" }, "preferred-install": "dist", "sort-packages": true diff --git a/composer.lock b/composer.lock index 1a983bd1..2eb09eb8 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": "1334d573eef44a2e5ae4efe3cbc46493", + "content-hash": "c8e870b66f774ae5a6aed2e39d6b7a7d", "packages": [ { "name": "nikic/php-parser", @@ -7203,12 +7203,12 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.3 || ^8.0", + "php": "^7.4 || ^8.0", "ext-mbstring": "*" }, "platform-dev": [], "platform-overrides": { - "php": "7.3.33" + "php": "7.4.29" }, "plugin-api-version": "2.3.0" } From 15ca6c153464e720a6dbfc0aee2d116fc4efbd0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Dec 2022 09:00:28 +0000 Subject: [PATCH 234/305] github-actions(deps): Bump stefanzweifel/git-auto-commit-action Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4.14.1 to 4.16.0. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4.14.1...v4.16.0) --- updated-dependencies: - dependency-name: stefanzweifel/git-auto-commit-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/renew.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 31a60d19..9dbbe23f 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -68,7 +68,7 @@ jobs: run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose" - name: "Commit modified files" - uses: "stefanzweifel/git-auto-commit-action@v4.14.1" + uses: "stefanzweifel/git-auto-commit-action@v4.16.0" with: commit_author: "ergebnis-bot " commit_message: "Enhancement: Update license year" From ac1f9370672af1d021ff9dc7bbc4f8ea2f6b1614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 12 Dec 2022 23:08:17 +0100 Subject: [PATCH 235/305] Fix: Use ~ operator to limit compatibility with PHP versions --- composer.json | 2 +- composer.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 56fda34f..00524456 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "source": "https://github.com/ergebnis/phpstan-rules" }, "require": { - "php": "^7.4 || ^8.0", + "php": "~7.4.0 || ~8.0.0 || ~8.1.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", "phpstan/phpstan": "^1.0.0" diff --git a/composer.lock b/composer.lock index 2eb09eb8..7001868d 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": "c8e870b66f774ae5a6aed2e39d6b7a7d", + "content-hash": "d76d3512f58afc1b06b880e4b16a2261", "packages": [ { "name": "nikic/php-parser", @@ -7203,7 +7203,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.4 || ^8.0", + "php": "~7.4.0 || ~8.0.0 || ~8.1.0", "ext-mbstring": "*" }, "platform-dev": [], From 81bd8e17ad2968e75a424d842f4a449708d84a42 Mon Sep 17 00:00:00 2001 From: ergebnis-bot Date: Sun, 1 Jan 2023 00:01:27 +0000 Subject: [PATCH 236/305] Enhancement: Update license year --- .php-cs-fixer.php | 2 +- LICENSE.md | 2 +- src/Classes/FinalRule.php | 2 +- src/Classes/NoExtendsRule.php | 2 +- src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php | 2 +- src/Closures/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Closures/NoParameterWithNullDefaultValueRule.php | 2 +- src/Closures/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Expressions/NoCompactRule.php | 2 +- src/Expressions/NoEmptyRule.php | 2 +- src/Expressions/NoErrorSuppressionRule.php | 2 +- src/Expressions/NoEvalRule.php | 2 +- src/Expressions/NoIssetRule.php | 2 +- src/Files/DeclareStrictTypesRule.php | 2 +- src/Functions/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Functions/NoParameterWithNullDefaultValueRule.php | 2 +- src/Functions/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Methods/FinalInAbstractClassRule.php | 2 +- src/Methods/NoConstructorParameterWithDefaultValueRule.php | 2 +- src/Methods/NoNullableReturnTypeDeclarationRule.php | 2 +- src/Methods/NoParameterWithContainerTypeDeclarationRule.php | 2 +- src/Methods/NoParameterWithNullDefaultValueRule.php | 2 +- src/Methods/NoParameterWithNullableTypeDeclarationRule.php | 2 +- src/Methods/PrivateInFinalClassRule.php | 2 +- src/Statements/NoSwitchRule.php | 2 +- test/AutoReview/SrcCodeTest.php | 2 +- test/AutoReview/TestCodeTest.php | 2 +- test/Integration/AbstractTestCase.php | 2 +- test/Integration/Classes/FinalRuleTest.php | 2 +- .../Classes/FinalRuleWithAbstractClassesAllowedTest.php | 2 +- test/Integration/Classes/FinalRuleWithAttributesTest.php | 2 +- .../Integration/Classes/FinalRuleWithExcludedClassNamesTest.php | 2 +- test/Integration/Classes/NoExtendsRuleTest.php | 2 +- .../Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php | 2 +- .../Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php | 2 +- .../Closures/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Closures/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../Closures/NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Expressions/NoCompactRuleTest.php | 2 +- test/Integration/Expressions/NoEmptyRuleTest.php | 2 +- test/Integration/Expressions/NoErrorSuppressionRuleTest.php | 2 +- test/Integration/Expressions/NoEvalRuleTest.php | 2 +- test/Integration/Expressions/NoIssetRuleTest.php | 2 +- test/Integration/Files/DeclareStrictTypesRuleTest.php | 2 +- .../Functions/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Functions/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Methods/FinalInAbstractClassRuleTest.php | 2 +- .../Methods/NoConstructorParameterWithDefaultValueRuleTest.php | 2 +- .../Methods/NoNullableReturnTypeDeclarationRuleTest.php | 2 +- .../Methods/NoParameterWithContainerTypeDeclarationRuleTest.php | 2 +- .../Methods/NoParameterWithNullDefaultValueRuleTest.php | 2 +- .../Methods/NoParameterWithNullableTypeDeclarationRuleTest.php | 2 +- test/Integration/Methods/PrivateInFinalClassRuleTest.php | 2 +- test/Integration/Statements/NoSwitchRuleTest.php | 2 +- 55 files changed, 55 insertions(+), 55 deletions(-) diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index 8900d390..f6964b5d 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/LICENSE.md b/LICENSE.md index b3bc94c5..96580b54 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # The MIT License (MIT) -Copyright (c) 2018-2022 Andreas Möller +Copyright (c) 2018-2023 Andreas Möller Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the _Software_), to deal in the Software without restriction, including without limitation the diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index 05ae4b3e..20c84724 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Classes/NoExtendsRule.php b/src/Classes/NoExtendsRule.php index b833d688..efa3325d 100644 --- a/src/Classes/NoExtendsRule.php +++ b/src/Classes/NoExtendsRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index 9b312fce..b7e0e601 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoNullableReturnTypeDeclarationRule.php b/src/Closures/NoNullableReturnTypeDeclarationRule.php index 13205124..56e8e976 100644 --- a/src/Closures/NoNullableReturnTypeDeclarationRule.php +++ b/src/Closures/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoParameterWithNullDefaultValueRule.php b/src/Closures/NoParameterWithNullDefaultValueRule.php index 0418f880..1f613b90 100644 --- a/src/Closures/NoParameterWithNullDefaultValueRule.php +++ b/src/Closures/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php index ca4008dc..876ff4a9 100644 --- a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoCompactRule.php b/src/Expressions/NoCompactRule.php index 439aeeff..954581b6 100644 --- a/src/Expressions/NoCompactRule.php +++ b/src/Expressions/NoCompactRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoEmptyRule.php b/src/Expressions/NoEmptyRule.php index 0898826a..8bb71ee8 100644 --- a/src/Expressions/NoEmptyRule.php +++ b/src/Expressions/NoEmptyRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoErrorSuppressionRule.php b/src/Expressions/NoErrorSuppressionRule.php index 08bd3048..b8af2fba 100644 --- a/src/Expressions/NoErrorSuppressionRule.php +++ b/src/Expressions/NoErrorSuppressionRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoEvalRule.php b/src/Expressions/NoEvalRule.php index 37c9c8de..0615a466 100644 --- a/src/Expressions/NoEvalRule.php +++ b/src/Expressions/NoEvalRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Expressions/NoIssetRule.php b/src/Expressions/NoIssetRule.php index 6f02c715..ec80ac68 100644 --- a/src/Expressions/NoIssetRule.php +++ b/src/Expressions/NoIssetRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Files/DeclareStrictTypesRule.php b/src/Files/DeclareStrictTypesRule.php index 466d4cb1..fef1681f 100644 --- a/src/Files/DeclareStrictTypesRule.php +++ b/src/Files/DeclareStrictTypesRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index d122981d..65fb5107 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoParameterWithNullDefaultValueRule.php b/src/Functions/NoParameterWithNullDefaultValueRule.php index 877e98e2..89d10efc 100644 --- a/src/Functions/NoParameterWithNullDefaultValueRule.php +++ b/src/Functions/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php index e07b134a..fa91a7cb 100644 --- a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/FinalInAbstractClassRule.php b/src/Methods/FinalInAbstractClassRule.php index 193a332c..c002b5af 100644 --- a/src/Methods/FinalInAbstractClassRule.php +++ b/src/Methods/FinalInAbstractClassRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoConstructorParameterWithDefaultValueRule.php b/src/Methods/NoConstructorParameterWithDefaultValueRule.php index 6ec2c624..afcddf51 100644 --- a/src/Methods/NoConstructorParameterWithDefaultValueRule.php +++ b/src/Methods/NoConstructorParameterWithDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoNullableReturnTypeDeclarationRule.php b/src/Methods/NoNullableReturnTypeDeclarationRule.php index fc185598..a668c7af 100644 --- a/src/Methods/NoNullableReturnTypeDeclarationRule.php +++ b/src/Methods/NoNullableReturnTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index 1ef2ca04..10ffd0b1 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithNullDefaultValueRule.php b/src/Methods/NoParameterWithNullDefaultValueRule.php index e77248a7..993b74ae 100644 --- a/src/Methods/NoParameterWithNullDefaultValueRule.php +++ b/src/Methods/NoParameterWithNullDefaultValueRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php index 628a0ef3..6d8ed3dd 100644 --- a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Methods/PrivateInFinalClassRule.php b/src/Methods/PrivateInFinalClassRule.php index bc29c142..502f76bb 100644 --- a/src/Methods/PrivateInFinalClassRule.php +++ b/src/Methods/PrivateInFinalClassRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Statements/NoSwitchRule.php b/src/Statements/NoSwitchRule.php index 2c9381a0..8f31277c 100644 --- a/src/Statements/NoSwitchRule.php +++ b/src/Statements/NoSwitchRule.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/AutoReview/SrcCodeTest.php b/test/AutoReview/SrcCodeTest.php index cac51989..07b37558 100644 --- a/test/AutoReview/SrcCodeTest.php +++ b/test/AutoReview/SrcCodeTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/AutoReview/TestCodeTest.php b/test/AutoReview/TestCodeTest.php index 9d1c66af..d5e3d101 100644 --- a/test/AutoReview/TestCodeTest.php +++ b/test/AutoReview/TestCodeTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/AbstractTestCase.php b/test/Integration/AbstractTestCase.php index 81e6f16e..900f09a8 100644 --- a/test/Integration/AbstractTestCase.php +++ b/test/Integration/AbstractTestCase.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleTest.php b/test/Integration/Classes/FinalRuleTest.php index 033dfb99..1c87b419 100644 --- a/test/Integration/Classes/FinalRuleTest.php +++ b/test/Integration/Classes/FinalRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php index c7a42edc..14f28ad9 100644 --- a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php +++ b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleWithAttributesTest.php b/test/Integration/Classes/FinalRuleWithAttributesTest.php index 741608f0..19ca0ea6 100644 --- a/test/Integration/Classes/FinalRuleWithAttributesTest.php +++ b/test/Integration/Classes/FinalRuleWithAttributesTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php index b6fb4002..479adc50 100644 --- a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php +++ b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/NoExtendsRuleTest.php b/test/Integration/Classes/NoExtendsRuleTest.php index 60bb7b53..b12b6c59 100644 --- a/test/Integration/Classes/NoExtendsRuleTest.php +++ b/test/Integration/Classes/NoExtendsRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php index 8682102d..b51ed104 100644 --- a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php +++ b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php index 1af1874b..ce3093d8 100644 --- a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php +++ b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php index 4198755c..6d3577e7 100644 --- a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php index 12f0a94b..f0140ea7 100644 --- a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php index f72b3102..b6e52caa 100644 --- a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoCompactRuleTest.php b/test/Integration/Expressions/NoCompactRuleTest.php index 8f068a3f..bb4f5218 100644 --- a/test/Integration/Expressions/NoCompactRuleTest.php +++ b/test/Integration/Expressions/NoCompactRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoEmptyRuleTest.php b/test/Integration/Expressions/NoEmptyRuleTest.php index cb4a71a9..acfc24cd 100644 --- a/test/Integration/Expressions/NoEmptyRuleTest.php +++ b/test/Integration/Expressions/NoEmptyRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php index b5b4d8e8..a93cd08f 100644 --- a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php +++ b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoEvalRuleTest.php b/test/Integration/Expressions/NoEvalRuleTest.php index c13ba683..08d66b2d 100644 --- a/test/Integration/Expressions/NoEvalRuleTest.php +++ b/test/Integration/Expressions/NoEvalRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Expressions/NoIssetRuleTest.php b/test/Integration/Expressions/NoIssetRuleTest.php index de4e8e43..90d0d890 100644 --- a/test/Integration/Expressions/NoIssetRuleTest.php +++ b/test/Integration/Expressions/NoIssetRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Files/DeclareStrictTypesRuleTest.php b/test/Integration/Files/DeclareStrictTypesRuleTest.php index 208f1a6d..26539935 100644 --- a/test/Integration/Files/DeclareStrictTypesRuleTest.php +++ b/test/Integration/Files/DeclareStrictTypesRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php index a623b3cd..ea781fb0 100644 --- a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php index 508199f6..8b374e82 100644 --- a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php index 071f6d48..219cf6bd 100644 --- a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/FinalInAbstractClassRuleTest.php b/test/Integration/Methods/FinalInAbstractClassRuleTest.php index 140fb5f1..302891c4 100644 --- a/test/Integration/Methods/FinalInAbstractClassRuleTest.php +++ b/test/Integration/Methods/FinalInAbstractClassRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php index a917f493..d63631e5 100644 --- a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php index ebc864a4..bad6e360 100644 --- a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php index 0f9fb280..19021088 100644 --- a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php index 1f308848..0d7687de 100644 --- a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php index 4f59a82c..fadb6a61 100644 --- a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Methods/PrivateInFinalClassRuleTest.php b/test/Integration/Methods/PrivateInFinalClassRuleTest.php index 6560defb..b01dd641 100644 --- a/test/Integration/Methods/PrivateInFinalClassRuleTest.php +++ b/test/Integration/Methods/PrivateInFinalClassRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/test/Integration/Statements/NoSwitchRuleTest.php b/test/Integration/Statements/NoSwitchRuleTest.php index 28a58a85..c6012035 100644 --- a/test/Integration/Statements/NoSwitchRuleTest.php +++ b/test/Integration/Statements/NoSwitchRuleTest.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2022 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. From 7c1b3870e6ddbe71d64cf63646481541c54b3ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 30 Jan 2023 12:47:31 +0100 Subject: [PATCH 237/305] Fix: Exclude pull requests created by @dependabot from release notes --- .github/release.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/release.yaml diff --git a/.github/release.yaml b/.github/release.yaml new file mode 100644 index 00000000..5226faf2 --- /dev/null +++ b/.github/release.yaml @@ -0,0 +1,6 @@ +# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuring-automatically-generated-release-notes + +changelog: + exclude: + authors: + - "dependabot" From 75605f696f1f1ec44e06af303e298dfa4d6c0543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Tue, 14 Mar 2023 13:03:36 +0100 Subject: [PATCH 238/305] Fix: Remove prune workflow --- .github/CONTRIBUTING.md | 1 - .github/settings.yml | 4 ---- .github/workflows/prune.yaml | 35 ----------------------------------- README.md | 1 - 4 files changed, 41 deletions(-) delete mode 100644 .github/workflows/prune.yaml diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a6263b63..dcaf2645 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -6,7 +6,6 @@ For details, take a look at the following workflow configuration files: - [`workflows/integrate.yaml`](workflows/integrate.yaml) - [`workflows/merge.yaml`](workflows/merge.yaml) -- [`workflows/prune.yaml`](workflows/prune.yaml) - [`workflows/release.yaml`](workflows/release.yaml) - [`workflows/renew.yaml`](workflows/renew.yaml) - [`workflows/triage.yaml`](workflows/triage.yaml) diff --git a/.github/settings.yml b/.github/settings.yml index 4f2fa0c5..3bff2753 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -65,10 +65,6 @@ labels: color: "ee0701" description: "" - - name: "stale" - color: "eeeeee" - description: "" - # https://docs.github.com/en/rest/reference/repos#update-a-repository repository: diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml deleted file mode 100644 index 9ef1538c..00000000 --- a/.github/workflows/prune.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# https://docs.github.com/en/actions - -name: "Prune" - -on: # yamllint disable-line rule:truthy - schedule: - - cron: "0 12 * * *" - -env: - DAYS_BEFORE_CLOSE: 14 - DAYS_BEFORE_STALE: 180 - -jobs: - prune: - name: "Issues" - - runs-on: "ubuntu-latest" - - steps: - - name: "Prune issues and pull requests" - uses: "actions/stale@v6" - with: - days-before-close: "${{ env.DAYS_BEFORE_CLOSE }}" - days-before-stale: "${{ env.DAYS_BEFORE_STALE }}" - repo-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - stale-issue-label: "stale" - stale-issue-message: | - Since this issue has not had any activity within the last ${{ env.DAYS_BEFORE_STALE }} days, I have marked it as stale. - - I will close it if no further activity occurs within the next ${{ env.DAYS_BEFORE_CLOSE }} days. - stale-pr-label: "stale" - stale-pr-message: | - Since this pull request has not had any activity within the last ${{ env.DAYS_BEFORE_STALE }} days, I have marked it as stale. - - I will close it if no further activity occurs within the next ${{ env.DAYS_BEFORE_CLOSE }} days. diff --git a/README.md b/README.md index 4d7a4116..396b81aa 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ [![Integrate](https://github.com/ergebnis/phpstan-rules/workflows/Integrate/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) [![Merge](https://github.com/ergebnis/phpstan-rules/workflows/Merge/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) -[![Prune](https://github.com/ergebnis/phpstan-rules/workflows/Prune/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) [![Release](https://github.com/ergebnis/phpstan-rules/workflows/Release/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) [![Renew](https://github.com/ergebnis/phpstan-rules/workflows/Renew/badge.svg)](https://github.com/ergebnis/phpstan-rules/actions) From 135a309b3ac9c3e5bad70fce5264361cb8bc21ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Tou=C5=A1ek?= Date: Thu, 20 Apr 2023 13:23:05 +0200 Subject: [PATCH 239/305] Simplify rules.neon --- rules.neon | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/rules.neon b/rules.neon index 4a16b9ed..0a697631 100644 --- a/rules.neon +++ b/rules.neon @@ -15,6 +15,7 @@ parametersSchema: ]) rules: + - Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule - Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule - Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule - Ergebnis\PHPStan\Rules\Expressions\NoCompactRule @@ -50,11 +51,6 @@ services: tags: - phpstan.rules.rule - - - class: Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule - tags: - - phpstan.rules.rule - - class: Ergebnis\PHPStan\Rules\Methods\NoParameterWithContainerTypeDeclarationRule arguments: From efa50cb91875078175defb045270356dc01ac982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:07:41 +0200 Subject: [PATCH 240/305] Fix: Run 'make static-code-analysis-baseline' --- psalm-baseline.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 9dba21ad..fd200cef 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + isset($node->namespacedName) From c3de16549d60f89c64f47962a7e330fabf144bd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:08:15 +0200 Subject: [PATCH 241/305] Fix: Remove auto-review tests --- .github/workflows/integrate.yaml | 3 -- Makefile | 3 +- phpstan-baseline.neon | 5 ---- psalm-baseline.xml | 5 ---- test/AutoReview/SrcCodeTest.php | 36 ----------------------- test/AutoReview/TestCodeTest.php | 50 -------------------------------- test/AutoReview/phpunit.xml | 30 ------------------- 7 files changed, 1 insertion(+), 131 deletions(-) delete mode 100644 test/AutoReview/SrcCodeTest.php delete mode 100644 test/AutoReview/TestCodeTest.php delete mode 100644 test/AutoReview/phpunit.xml diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 5071e6b8..ba4d7bbc 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -221,9 +221,6 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Run auto-review tests with phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/AutoReview/phpunit.xml" - - name: "Run unit tests with phpunit/phpunit" run: "vendor/bin/phpunit --configuration=test/Unit/phpunit.xml" diff --git a/Makefile b/Makefile index b2aca0ec..4b5d47bb 100644 --- a/Makefile +++ b/Makefile @@ -46,9 +46,8 @@ static-code-analysis-baseline: vendor ## Generates a baseline for static code an vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml .PHONY: tests -tests: vendor ## Runs auto-review, unit, and integration tests with phpunit/phpunit +tests: vendor ## Runs unit and integration tests with phpunit/phpunit mkdir -p .build/phpunit - vendor/bin/phpunit --configuration=test/AutoReview/phpunit.xml vendor/bin/phpunit --configuration=test/Unit/phpunit.xml vendor/bin/phpunit --configuration=test/Integration/phpunit.xml diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 3aee87e3..f11eb45d 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -40,8 +40,3 @@ parameters: count: 1 path: src/Functions/NoNullableReturnTypeDeclarationRule.php - - - message: "#^Parameter \\#1 \\$argument of class ReflectionClass constructor expects class\\-string\\\\|T of object, string given\\.$#" - count: 1 - path: test/AutoReview/TestCodeTest.php - diff --git a/psalm-baseline.xml b/psalm-baseline.xml index fd200cef..befc467f 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -45,11 +45,6 @@ array - - - $className - - iterable diff --git a/test/AutoReview/SrcCodeTest.php b/test/AutoReview/SrcCodeTest.php deleted file mode 100644 index 07b37558..00000000 --- a/test/AutoReview/SrcCodeTest.php +++ /dev/null @@ -1,36 +0,0 @@ -isAbstract() || $reflection->isInterface() || $reflection->isTrait()) { - return true; - } - - return $reflection->isSubclassOf(Integration\AbstractTestCase::class); - }, - __DIR__ . '/../Integration', - [], - \sprintf( - "Failed asserting that the integration test classes\n\n%s\n\nextend from \"%s\".", - '%s', // 😉 - Integration\AbstractTestCase::class - ) - ); - } -} diff --git a/test/AutoReview/phpunit.xml b/test/AutoReview/phpunit.xml deleted file mode 100644 index 4f5220f1..00000000 --- a/test/AutoReview/phpunit.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - . - - - From 7a53a97296cb5240eaee9e678fd920ddcaec2b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:09:11 +0200 Subject: [PATCH 242/305] Fix: Remove empty unit test suite --- .github/workflows/integrate.yaml | 3 --- Makefile | 3 +-- test/Unit/phpunit.xml | 35 -------------------------------- 3 files changed, 1 insertion(+), 40 deletions(-) delete mode 100644 test/Unit/phpunit.xml diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index ba4d7bbc..96cc391a 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -221,9 +221,6 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Run unit tests with phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Unit/phpunit.xml" - - name: "Run integration tests with phpunit/phpunit" run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml" diff --git a/Makefile b/Makefile index 4b5d47bb..7e16ecb0 100644 --- a/Makefile +++ b/Makefile @@ -46,9 +46,8 @@ static-code-analysis-baseline: vendor ## Generates a baseline for static code an vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml .PHONY: tests -tests: vendor ## Runs unit and integration tests with phpunit/phpunit +tests: vendor ## Runs integration tests with phpunit/phpunit mkdir -p .build/phpunit - vendor/bin/phpunit --configuration=test/Unit/phpunit.xml vendor/bin/phpunit --configuration=test/Integration/phpunit.xml vendor: composer.json composer.lock diff --git a/test/Unit/phpunit.xml b/test/Unit/phpunit.xml deleted file mode 100644 index b8e3b731..00000000 --- a/test/Unit/phpunit.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - ../../src/ - - - - - . - - - From 0e8a6f53eecfd5e503553ce2ffd21e8727d7fe4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:21:44 +0200 Subject: [PATCH 243/305] Fix: Do not run mutation tests --- .gitattributes | 1 - .github/CONTRIBUTING.md | 12 - .github/settings.yml | 1 - .github/workflows/integrate.yaml | 42 --- Makefile | 5 - composer.json | 4 +- composer.lock | 437 +------------------------------ infection.json | 14 - 8 files changed, 3 insertions(+), 513 deletions(-) delete mode 100644 infection.json diff --git a/.gitattributes b/.gitattributes index 4ce803a8..66f7cc92 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,7 +6,6 @@ /.gitignore export-ignore /.php_cs export-ignore /composer-require-checker.json export-ignore -/infection.json export-ignore /Makefile export-ignore /phpstan-baseline.neon export-ignore /phpstan.neon export-ignore diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index dcaf2645..e5eafaa9 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -82,18 +82,6 @@ $ make tests to run all the tests. -## Mutation Tests - -We are using [`infection/infection`](https://github.com/infection/infection) to ensure a minimum quality of the tests. - -Enable `Xdebug` and run - -```sh -$ make mutation-tests -``` - -to run mutation tests. - ## Extra lazy? Run diff --git a/.github/settings.yml b/.github/settings.yml index 3bff2753..73134266 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -17,7 +17,6 @@ branches: - "Code Coverage (7.4, locked)" - "Coding Standards (7.4, locked)" - "Dependency Analysis (7.4, locked)" - - "Mutation Tests (7.4, locked)" - "Static Code Analysis (7.4, locked)" - "Tests (7.4, highest)" - "Tests (7.4, locked)" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 96cc391a..b225e239 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -273,45 +273,3 @@ jobs: env: CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}" run: "bash <(curl -s https://codecov.io/bash)" - - mutation-tests: - name: "Mutation Tests" - - runs-on: "ubuntu-latest" - - strategy: - matrix: - php-version: - - "7.4" - - dependencies: - - "locked" - - steps: - - name: "Checkout" - uses: "actions/checkout@v3" - - - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" - with: - coverage: "xdebug" - extensions: "${{ env.PHP_EXTENSIONS }}" - php-version: "${{ matrix.php-version }}" - - - name: "Determine composer cache directory" - uses: "./.github/actions/composer/composer/determine-cache-directory" - - - name: "Cache dependencies installed with composer" - uses: "actions/cache@v3" - with: - path: "${{ env.COMPOSER_CACHE_DIR }}" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" - restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - - name: "Install ${{ matrix.dependencies }} dependencies with composer" - uses: "./.github/actions/composer/composer/install" - with: - dependencies: "${{ matrix.dependencies }}" - - - name: "Run mutation tests with Xdebug and infection/infection" - run: "vendor/bin/infection --ignore-msi-with-no-mutations --min-covered-msi=${{ env.MIN_COVERED_MSI }} --min-msi=${{ env.MIN_MSI }}" diff --git a/Makefile b/Makefile index 7e16ecb0..5a279c27 100644 --- a/Makefile +++ b/Makefile @@ -25,11 +25,6 @@ dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer- help: ## Displays this list of targets with descriptions @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}' -.PHONY: mutation-tests -mutation-tests: vendor ## Runs mutation tests with infection/infection - mkdir -p .build/infection - vendor/bin/infection --ignore-msi-with-no-mutations --min-covered-msi=${MIN_COVERED_MSI} --min-msi=${MIN_MSI} - .PHONY: static-code-analysis static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan diff --git a/composer.json b/composer.json index 00524456..a49a5d3c 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,6 @@ "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", "ergebnis/test-util": "^1.5.0", - "infection/infection": "~0.15.3", "nette/di": "^3.0.13", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", @@ -53,7 +52,8 @@ }, "config": { "allow-plugins": { - "ergebnis/composer-normalize": true + "ergebnis/composer-normalize": true, + "infection/extension-installer": true }, "platform": { "php": "7.4.29" diff --git a/composer.lock b/composer.lock index 7001868d..94182910 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": "d76d3512f58afc1b06b880e4b16a2261", + "content-hash": "603d9ead76dd1c4de04a67b5ea3530ef", "packages": [ { "name": "nikic/php-parser", @@ -2380,107 +2380,6 @@ ], "time": "2021-05-03T21:43:24+00:00" }, - { - "name": "infection/infection", - "version": "0.15.3", - "source": { - "type": "git", - "url": "https://github.com/infection/infection.git", - "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/infection/infection/zipball/c3fc380317eb14d213e1e1962801ee9325129fb2", - "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2", - "shasum": "" - }, - "require": { - "composer/xdebug-handler": "^1.3.3", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "justinrainbow/json-schema": "^5.2", - "nikic/php-parser": "^4.2.2", - "ocramius/package-versions": "^1.2", - "php": "^7.2.9", - "pimple/pimple": "^3.2", - "sebastian/diff": "^3.0.2 || ^4.0", - "seld/jsonlint": "^1.7", - "symfony/console": "^3.4.29 || ^4.0 || ^5.0", - "symfony/filesystem": "^3.4.29 || ^4.0 || ^5.0", - "symfony/finder": "^3.4.29 || ^4.0 || ^5.0", - "symfony/process": "^3.4.29 || ^4.0 || ^5.0", - "symfony/yaml": "^3.4.29 || ^4.0 || ^5.0", - "thecodingmachine/safe": "^1.0", - "webmozart/assert": "^1.3", - "webmozart/path-util": "^2.3" - }, - "conflict": { - "symfony/console": "=4.1.5" - }, - "require-dev": { - "helmich/phpunit-json-assert": "^3.0", - "phpunit/phpunit": "^8.2.5 <8.4", - "symfony/phpunit-bridge": "^4.3.4 || ^5.0" - }, - "bin": [ - "bin/infection" - ], - "type": "library", - "autoload": { - "psr-4": { - "Infection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Maks Rafalko", - "email": "maks.rafalko@gmail.com", - "homepage": "https://twitter.com/maks_rafalko" - }, - { - "name": "Oleg Zhulnev", - "homepage": "https://github.com/sidz" - }, - { - "name": "Gert de Pagter", - "homepage": "https://github.com/BackEndTea" - }, - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com", - "homepage": "https://twitter.com/tfidry" - }, - { - "name": "Alexey Kopytko", - "email": "alexey@kopytko.com", - "homepage": "https://www.alexeykopytko.com" - }, - { - "name": "Andreas Möller", - "email": "am@localheinz.com", - "homepage": "https://localheinz.com" - } - ], - "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", - "keywords": [ - "coverage", - "mutant", - "mutation framework", - "mutation testing", - "testing", - "unit testing" - ], - "support": { - "issues": "https://github.com/infection/infection/issues", - "source": "https://github.com/infection/infection/tree/0.15.3" - }, - "time": "2020-02-16T19:33:49+00:00" - }, { "name": "justinrainbow/json-schema", "version": "5.2.11", @@ -4155,60 +4054,6 @@ ], "time": "2022-04-01T12:34:39+00:00" }, - { - "name": "pimple/pimple", - "version": "v3.3.0", - "source": { - "type": "git", - "url": "https://github.com/silexphp/Pimple.git", - "reference": "e55d12f9d6a0e7f9c85992b73df1267f46279930" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/e55d12f9d6a0e7f9c85992b73df1267f46279930", - "reference": "e55d12f9d6a0e7f9c85992b73df1267f46279930", - "shasum": "" - }, - "require": { - "php": "^7.2.5", - "psr/container": "^1.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.4|^4.4|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3.x-dev" - } - }, - "autoload": { - "psr-0": { - "Pimple": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Pimple, a simple Dependency Injection Container", - "homepage": "https://pimple.symfony.com", - "keywords": [ - "container", - "dependency injection" - ], - "support": { - "issues": "https://github.com/silexphp/Pimple/issues", - "source": "https://github.com/silexphp/Pimple/tree/master" - }, - "time": "2020-03-03T09:12:48+00:00" - }, { "name": "psalm/plugin-phpunit", "version": "0.16.1", @@ -5145,69 +4990,6 @@ }, "time": "2016-10-03T07:35:21+00:00" }, - { - "name": "seld/jsonlint", - "version": "1.8.2", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/590cfec960b77fd55e39b7d9246659e95dd6d337", - "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337", - "shasum": "" - }, - "require": { - "php": "^5.3 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "bin": [ - "bin/jsonlint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], - "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/master" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" - } - ], - "time": "2020-08-25T06:56:57+00:00" - }, { "name": "symfony/console", "version": "v5.4.7", @@ -6657,223 +6439,6 @@ ], "time": "2022-01-02T09:53:40+00:00" }, - { - "name": "symfony/yaml", - "version": "v5.1.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "ea342353a3ef4f453809acc4ebc55382231d4d23" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ea342353a3ef4f453809acc4ebc55382231d4d23", - "reference": "ea342353a3ef4f453809acc4ebc55382231d4d23", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<4.4" - }, - "require-dev": { - "symfony/console": "^4.4|^5.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/5.1" - }, - "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": "2020-05-20T17:43:50+00:00" - }, - { - "name": "thecodingmachine/safe", - "version": "v1.1.3", - "source": { - "type": "git", - "url": "https://github.com/thecodingmachine/safe.git", - "reference": "9f277171e296a3c8629c04ac93ec95ff0f208ccb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/9f277171e296a3c8629c04ac93ec95ff0f208ccb", - "reference": "9f277171e296a3c8629c04ac93ec95ff0f208ccb", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "require-dev": { - "phpstan/phpstan": "^0.12", - "squizlabs/php_codesniffer": "^3.2", - "thecodingmachine/phpstan-strict-rules": "^0.12" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.1-dev" - } - }, - "autoload": { - "files": [ - "generated/apache.php", - "generated/apc.php", - "generated/apcu.php", - "generated/array.php", - "generated/bzip2.php", - "generated/classobj.php", - "generated/com.php", - "generated/cubrid.php", - "generated/curl.php", - "generated/datetime.php", - "generated/dir.php", - "generated/eio.php", - "generated/errorfunc.php", - "generated/exec.php", - "generated/fileinfo.php", - "generated/filesystem.php", - "generated/filter.php", - "generated/fpm.php", - "generated/ftp.php", - "generated/funchand.php", - "generated/gmp.php", - "generated/gnupg.php", - "generated/hash.php", - "generated/ibase.php", - "generated/ibmDb2.php", - "generated/iconv.php", - "generated/image.php", - "generated/imap.php", - "generated/info.php", - "generated/ingres-ii.php", - "generated/inotify.php", - "generated/json.php", - "generated/ldap.php", - "generated/libevent.php", - "generated/libxml.php", - "generated/lzf.php", - "generated/mailparse.php", - "generated/mbstring.php", - "generated/misc.php", - "generated/msql.php", - "generated/mssql.php", - "generated/mysql.php", - "generated/mysqli.php", - "generated/mysqlndMs.php", - "generated/mysqlndQc.php", - "generated/network.php", - "generated/oci8.php", - "generated/opcache.php", - "generated/openssl.php", - "generated/outcontrol.php", - "generated/password.php", - "generated/pcntl.php", - "generated/pcre.php", - "generated/pdf.php", - "generated/pgsql.php", - "generated/posix.php", - "generated/ps.php", - "generated/pspell.php", - "generated/readline.php", - "generated/rpminfo.php", - "generated/rrd.php", - "generated/sem.php", - "generated/session.php", - "generated/shmop.php", - "generated/simplexml.php", - "generated/sockets.php", - "generated/sodium.php", - "generated/solr.php", - "generated/spl.php", - "generated/sqlsrv.php", - "generated/ssdeep.php", - "generated/ssh2.php", - "generated/stats.php", - "generated/stream.php", - "generated/strings.php", - "generated/swoole.php", - "generated/uodbc.php", - "generated/uopz.php", - "generated/url.php", - "generated/var.php", - "generated/xdiff.php", - "generated/xml.php", - "generated/xmlrpc.php", - "generated/yaml.php", - "generated/yaz.php", - "generated/zip.php", - "generated/zlib.php", - "lib/special_cases.php" - ], - "psr-4": { - "Safe\\": [ - "lib/", - "generated/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHP core functions that throw exceptions instead of returning FALSE on error", - "support": { - "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/master" - }, - "time": "2020-07-10T09:34:29+00:00" - }, { "name": "theseer/tokenizer", "version": "1.2.1", diff --git a/infection.json b/infection.json deleted file mode 100644 index bd5df9b5..00000000 --- a/infection.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "logs": { - "text": ".build/infection/infection-log.txt" - }, - "phpUnit": { - "configDir": "test\/Integration" - }, - "source": { - "directories": [ - "src" - ] - }, - "timeout": 10 -} From 06d4acefaa96f22f60ea6d58ae43d363b7488ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 28 Nov 2022 10:59:25 +0100 Subject: [PATCH 244/305] Fix: Drop support for PHP 7.4 --- .github/settings.yml | 11 +- .github/workflows/integrate.yaml | 10 +- .github/workflows/renew.yaml | 2 +- .phive/composer-require-checker | Bin 493018 -> 656991 bytes .phive/phars.xml | 2 +- CHANGELOG.md | 2 + composer.json | 7 +- composer.lock | 99 +----------------- ...rviceLocatorInterfaceAsTypeDeclaration.php | 14 --- ...rviceLocatorInterfaceAsTypeDeclaration.php | 12 --- ...-locator-interface-as-type-declaration.php | 14 --- ...erWithContainerTypeDeclarationRuleTest.php | 34 ------ 12 files changed, 19 insertions(+), 188 deletions(-) delete mode 100644 test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/ClassWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration.php delete mode 100644 test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/InterfaceWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration.php delete mode 100644 test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/anonymous-class-with-method-with-parameter-with-service-locator-interface-as-type-declaration.php diff --git a/.github/settings.yml b/.github/settings.yml index 73134266..eef8c009 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -14,13 +14,10 @@ branches: required_approving_review_count: 1 required_status_checks: contexts: - - "Code Coverage (7.4, locked)" - - "Coding Standards (7.4, locked)" - - "Dependency Analysis (7.4, locked)" - - "Static Code Analysis (7.4, locked)" - - "Tests (7.4, highest)" - - "Tests (7.4, locked)" - - "Tests (7.4, lowest)" + - "Code Coverage (8.0, locked)" + - "Coding Standards (8.0, locked)" + - "Dependency Analysis (8.0, locked)" + - "Static Code Analysis (8.0, locked)" - "Tests (8.0, highest)" - "Tests (8.0, locked)" - "Tests (8.0, lowest)" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index b225e239..371476ea 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -22,7 +22,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "8.0" dependencies: - "locked" @@ -90,7 +90,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "8.0" dependencies: - "locked" @@ -132,7 +132,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "8.0" dependencies: - "locked" @@ -183,7 +183,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "8.0" - "8.0" - "8.1" @@ -232,7 +232,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "8.0" dependencies: - "locked" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 31a60d19..434e9fc4 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -18,7 +18,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "8.0" dependencies: - "locked" diff --git a/.phive/composer-require-checker b/.phive/composer-require-checker index 5b51398660138addd82dc90fce9f7e0e0c7a1b69..3f1299e8195f3b840965a2b1b9565783f7d79b3a 100755 GIT binary patch delta 517133 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

BNt5e3&|ZpW3}UPq%`!8YVx@nzjN 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


7_*sPI4RB6@J4p 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

9VTsU2ftO2yAPYn67`SGgJT^?QAr;s$XH8y9 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

gfTz#RZ(V~q*UG2!vmi#Lzy>?4% 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�aV!(-j8PrC;`9X@BHKrXt~-VS9p(~9 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∓1Il}Xl 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

    NCpzE6i`ou%jeCHt{h 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qrgbIQ754ILb;yUs5~F9Fd| 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

    a1i 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 - + diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index 59585e1d..09ad00d7 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -39,6 +39,6 @@ ->in(__DIR__) ->name('.php-cs-fixer.php'); -$config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php_cs.cache'); +$config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php-cs-fixer.cache'); return $config; diff --git a/Makefile b/Makefile index ecf318df..e742fc72 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,20 @@ -MIN_COVERED_MSI:=91 -MIN_MSI:=81 - .PHONY: it -it: coding-standards static-code-analysis tests ## Runs the coding-standards, static-code-analysis, and tests targets +it: refactoring coding-standards security-analysis static-code-analysis tests ## Runs the refactoring, coding-standards, security-analysis, static-code-analysis, and tests targets .PHONY: code-coverage -code-coverage: vendor ## Collects coverage from running unit tests with phpunit/phpunit - mkdir -p .build/phpunit +code-coverage: vendor ## Collects coverage from running integration tests with phpunit/phpunit + mkdir -p .build/phpunit/ vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-text .PHONY: coding-standards -coding-standards: vendor ## Normalizes composer.json with ergebnis/composer-normalize, lints YAML files with yamllint and fixes code style issues with friendsofphp/php-cs-fixer - composer normalize +coding-standards: vendor ## Lints YAML files with yamllint, normalizes composer.json with ergebnis/composer-normalize, and fixes code style issues with friendsofphp/php-cs-fixer yamllint -c .yamllint.yaml --strict . - mkdir -p .build/php-cs-fixer + composer normalize + mkdir -p .build/php-cs-fixer/ vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --verbose - vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --verbose .PHONY: dependency-analysis -dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer-require-checker +dependency-analysis: phive vendor ## Runs a dependency analysis with maglnet/composer-require-checker .phive/composer-require-checker check --config-file=$(shell pwd)/composer-require-checker.json .PHONY: help @@ -27,26 +23,44 @@ help: ## Displays this list of targets with descriptions .PHONY: mutation-tests mutation-tests: vendor ## Runs mutation tests with infection/infection - mkdir -p .build/infection + mkdir -p .build/infection/ vendor/bin/infection --configuration=infection.json +.PHONY: phive +phive: .phive ## Installs dependencies with phive + mkdir -p .build/phive/ + PHIVE_HOME=.build/phive phive install --trust-gpg-keys 0x033E5F8D801A2F8D + +.PHONY: refactoring +refactoring: vendor ## Runs automated refactoring with rector/rector + mkdir -p .build/rector/ + vendor/bin/rector process --config=rector.php + +.PHONY: security-analysis +security-analysis: vendor ## Runs a security analysis with composer + composer audit + .PHONY: static-code-analysis static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan and vimeo/psalm - mkdir -p .build/phpstan + mkdir -p .build/phpstan/ + vendor/bin/phpstan clear-result-cache --configuration=phpstan.neon vendor/bin/phpstan --configuration=phpstan.neon --memory-limit=-1 - mkdir -p .build/psalm - vendor/bin/psalm --config=psalm.xml --diff --show-info=false --stats --threads=4 + mkdir -p .build/psalm/ + vendor/bin/psalm --config=psalm.xml --clear-cache + vendor/bin/psalm --config=psalm.xml --show-info=false --stats --threads=4 .PHONY: static-code-analysis-baseline static-code-analysis-baseline: vendor ## Generates a baseline for static code analysis with phpstan/phpstan and vimeo/psalm - mkdir -p .build/phpstan - vendor/bin/phpstan --configuration=phpstan.neon --generate-baseline --memory-limit=-1 - mkdir -p .build/psalm + mkdir -p .build/phpstan/ + vendor/bin/phpstan clear-result-cache --configuration=phpstan.neon + vendor/bin/phpstan --allow-empty-baseline --configuration=phpstan.neon --generate-baseline=phpstan-baseline.neon --memory-limit=-1 + mkdir -p .build/psalm/ + vendor/bin/psalm --config=psalm.xml --clear-cache vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml .PHONY: tests tests: vendor ## Runs integration tests with phpunit/phpunit - mkdir -p .build/phpunit + mkdir -p .build/phpunit/ vendor/bin/phpunit --configuration=test/Integration/phpunit.xml vendor: composer.json composer.lock diff --git a/README.md b/README.md index fdff4557..e2825157 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,6 @@ Please have a look at [`LICENSE.md`](LICENSE.md). The method [`FinalRule::isWhitelistedClass()`](src/Classes/FinalRule.php) is inspired by the work on [`FinalClassFixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.15/src/Fixer/ClassNotation/FinalClassFixer.php) and [`FinalInternalClassFixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.15/src/Fixer/ClassNotation/FinalInternalClassFixer.php), contributed by [Dariusz Rumiński](https://github.com/keradus), [Filippo Tessarotto](https://github.com/Slamdunk), and [Spacepossum](https://github.com/SpacePossum) for [`friendsofphp/php-cs-fixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer) (originally licensed under MIT). -## Curious what I am building? +## Curious what I am up to? -:mailbox_with_mail: [Subscribe to my list](https://localheinz.com/projects/), and I will occasionally send you an email to let you know what I am working on. +Follow me on [Twitter](https://twitter.com/intent/follow?screen_name=localheinz)! diff --git a/composer-require-checker.json b/composer-require-checker.json index c16fa801..445a2323 100644 --- a/composer-require-checker.json +++ b/composer-require-checker.json @@ -1,20 +1,5 @@ { "symbol-whitelist": [ - "array", - "bool", - "callable", - "false", - "float", - "int", - "iterable", - "null", - "object", - "parent", - "self", - "static", - "string", - "true", - "void", "PHPStan\\Analyser\\Scope", "PHPStan\\Node\\FileNode", "PHPStan\\Reflection\\ClassReflection", diff --git a/composer.json b/composer.json index c6426748..d73207e8 100644 --- a/composer.json +++ b/composer.json @@ -37,6 +37,7 @@ "phpunit/phpunit": "^9.6.7", "psalm/plugin-phpunit": "~0.18.4", "psr/container": "^1.1.2", + "rector/rector": "~0.15.25", "vimeo/psalm": "^5.9.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 5495e734..95c1cddf 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": "9baa32fc94bf16e5edc9e50f005c0097", + "content-hash": "b6a29626c801d9a703a216ea55e1b550", "packages": [ { "name": "nikic/php-parser", @@ -4641,6 +4641,67 @@ }, "time": "2021-07-14T16:46:02+00:00" }, + { + "name": "rector/rector", + "version": "0.15.25", + "source": { + "type": "git", + "url": "https://github.com/rectorphp/rector.git", + "reference": "015935c7ed9e48a4f5895ba974f337e20a263841" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/015935c7ed9e48a4f5895ba974f337e20a263841", + "reference": "015935c7ed9e48a4f5895ba974f337e20a263841", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "phpstan/phpstan": "^1.10.14" + }, + "conflict": { + "rector/rector-doctrine": "*", + "rector/rector-downgrade-php": "*", + "rector/rector-phpunit": "*", + "rector/rector-symfony": "*" + }, + "bin": [ + "bin/rector" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.15-dev" + } + }, + "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/0.15.25" + }, + "funding": [ + { + "url": "https://github.com/tomasvotruba", + "type": "github" + } + ], + "time": "2023-04-20T16:07:39+00:00" + }, { "name": "sanmai/later", "version": "0.1.2", diff --git a/phpstan.neon b/phpstan.neon index 3630fd05..31346081 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -21,5 +21,6 @@ parameters: paths: - src/ - test/ + - rector.php tmpDir: .build/phpstan/ diff --git a/psalm.xml b/psalm.xml index a8c56633..566d969e 100644 --- a/psalm.xml +++ b/psalm.xml @@ -6,8 +6,8 @@ cacheDirectory=".build/psalm" errorBaseline="psalm-baseline.xml" errorLevel="1" - findUnusedCode="true" findUnusedBaselineEntry="true" + findUnusedCode="true" findUnusedVariablesAndParams="true" resolveFromConfigFile="true" strictBinaryOperands="true" @@ -19,6 +19,7 @@ + diff --git a/rector.php b/rector.php new file mode 100644 index 00000000..913b1fec --- /dev/null +++ b/rector.php @@ -0,0 +1,31 @@ +cacheDirectory(__DIR__ . '/.build/rector/'); + + $rectorConfig->paths([ + __DIR__ . '/src/', + __DIR__ . '/test/', + ]); + + $rectorConfig->phpVersion(Core\ValueObject\PhpVersion::PHP_81); + + $rectorConfig->sets([ + PHPUnit\Set\PHPUnitSetList::PHPUNIT_90, + ]); +}; From 215201d7d681580256fa6e8f88e86fb3a591fc49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 11:14:46 +0200 Subject: [PATCH 298/305] Enhancement: Add support for PHP 8.2 --- .github/settings.yml | 3 +++ .github/workflows/integrate.yaml | 1 + CHANGELOG.md | 2 ++ composer.json | 2 +- composer.lock | 4 ++-- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index 807cc394..b3258957 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -27,6 +27,9 @@ branches: - context: "Tests (8.1, highest)" - context: "Tests (8.1, locked)" - context: "Tests (8.1, lowest)" + - context: "Tests (8.2, highest)" + - context: "Tests (8.2, locked)" + - context: "Tests (8.2, lowest)" strict: false restrictions: diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 15c9adc1..8e9d2652 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -390,6 +390,7 @@ jobs: php-version: - "8.0" - "8.1" + - "8.2" dependencies: - "lowest" diff --git a/CHANGELOG.md b/CHANGELOG.md index 6891b751..13d38a48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. - Dropped support for PHP 7.2 ([#496]), by [@localheinz] - Dropped support for PHP 7.3 ([#498]), by [@localheinz] - Dropped support for PHP 7.4 ([#499]), by [@localheinz] +- Added support for PHP 8.2 ([#540]), by [@localheinz] ### Removed @@ -461,6 +462,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#498]: https://github.com/ergebnis/phpstan-rules/pull/498 [#499]: https://github.com/ergebnis/phpstan-rules/pull/498 [#525]: https://github.com/ergebnis/phpstan-rules/pull/525 +[#540]: https://github.com/ergebnis/phpstan-rules/pull/540 [@enumag]: https://github.com/enumag [@ergebnis]: https://github.com/ergebnis diff --git a/composer.json b/composer.json index d73207e8..0a9ad5f9 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "source": "https://github.com/ergebnis/phpstan-rules" }, "require": { - "php": "~8.0.0 || ~8.1.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", "phpstan/phpstan": "^1.7.15" diff --git a/composer.lock b/composer.lock index 95c1cddf..38d6d75a 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": "b6a29626c801d9a703a216ea55e1b550", + "content-hash": "8cdebad7e773f93e05a9b8a1596d4ca5", "packages": [ { "name": "nikic/php-parser", @@ -7586,7 +7586,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "~8.0.0 || ~8.1.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", "ext-mbstring": "*" }, "platform-dev": [], From b832e223aef3550334ec547587f5be68e95fdd09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 11:39:31 +0200 Subject: [PATCH 299/305] Fix: Run friendsofphp/php-cs-fixer on fixtures --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index e742fc72..1a419688 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ coding-standards: vendor ## Lints YAML files with yamllint, normalizes composer. yamllint -c .yamllint.yaml --strict . composer normalize mkdir -p .build/php-cs-fixer/ + vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --verbose vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --verbose .PHONY: dependency-analysis From a0351c12e47550d0a9e829a4229836e53416c6c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 11:36:18 +0200 Subject: [PATCH 300/305] Enhancement: Allow configuring methods that are allowed to use container type declarations --- CHANGELOG.md | 5 +++++ README.md | 11 +++++++++++ rules.neon | 3 +++ ...NoParameterWithContainerTypeDeclarationRule.php | 12 ++++++++++++ ...terfaceAsTypeDeclarationWhereNameIsExcluded.php | 14 ++++++++++++++ ...terfaceAsTypeDeclarationWhereNameIsExcluded.php | 12 ++++++++++++ ...-as-type-declaration-where-name-is-excluded.php | 12 ++++++++++++ ...rameterWithContainerTypeDeclarationRuleTest.php | 6 ++++++ 8 files changed, 75 insertions(+) create mode 100644 test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/ClassWithMethodWithParameterWithClassImplementingContainerInterfaceAsTypeDeclarationWhereNameIsExcluded.php create mode 100644 test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/InterfaceWithMethodWithParameterWithContainerInterfaceAsTypeDeclarationWhereNameIsExcluded.php create mode 100644 test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/anonymous-class-with-method-with-parameter-with-class-implementing-container-interface-as-type-declaration-where-name-is-excluded.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 13d38a48..dff2c961 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), For a full diff see [`1.0.0...main`][1.0.0...main]. +### Added + +- Added `methodsAllowedToUseContainerTypeDeclarations` parameter to allow configuring a list of method names that are allowed to have container parameter type declarations, ([#541), by [@localheinz] + ### Changed - Dropped support for PHP 7.2 ([#496]), by [@localheinz] @@ -463,6 +467,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#499]: https://github.com/ergebnis/phpstan-rules/pull/498 [#525]: https://github.com/ergebnis/phpstan-rules/pull/525 [#540]: https://github.com/ergebnis/phpstan-rules/pull/540 +[#541]: https://github.com/ergebnis/phpstan-rules/pull/541 [@enumag]: https://github.com/enumag [@ergebnis]: https://github.com/ergebnis diff --git a/README.md b/README.md index e2825157..b9bbb6ed 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,17 @@ parameters: - Other\ServiceLocatorInterface ``` +##### Configuring methods allowed to use parameters with container type declarations + +If you want to configure a list of method names that you want to allow using container type declarations, you can set the `methodsAllowedToUseContainerTypeDeclarations` parameter to a list of method names: + +```neon +parameters: + ergebnis: + methodsAllowedToUseContainerTypeDeclarations: + - loadExtension +``` + #### `Methods\NoParameterWithNullableTypeDeclarationRule` This rule reports an error when a method declared in diff --git a/rules.neon b/rules.neon index 9e2fbed5..6fb99ff4 100644 --- a/rules.neon +++ b/rules.neon @@ -5,6 +5,7 @@ parameters: classesNotRequiredToBeAbstractOrFinal: [] interfacesImplementedByContainers: - Psr\Container\ContainerInterface + methodsAllowedToUseContainerTypeDeclarations: [] parametersSchema: ergebnis: structure([ @@ -12,6 +13,7 @@ parametersSchema: classesAllowedToBeExtended: listOf(string()) classesNotRequiredToBeAbstractOrFinal: listOf(string()) interfacesImplementedByContainers: listOf(string()) + methodsAllowedToUseContainerTypeDeclarations: listOf(string()) ]) rules: @@ -54,5 +56,6 @@ services: class: Ergebnis\PHPStan\Rules\Methods\NoParameterWithContainerTypeDeclarationRule arguments: interfacesImplementedByContainers: %ergebnis.interfacesImplementedByContainers% + methodsAllowedToUseContainerTypeDeclarations: %ergebnis.methodsAllowedToUseContainerTypeDeclarations% tags: - phpstan.rules.rule diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index fb5ef40c..bb22fd2a 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -28,12 +28,19 @@ final class NoParameterWithContainerTypeDeclarationRule implements Rule */ private array $interfacesImplementedByContainers; + /** + * @var array + */ + private array $methodsAllowedToUseContainerTypeDeclarations; + /** * @param array $interfacesImplementedByContainers + * @param array $methodsAllowedToUseContainerTypeDeclarations */ public function __construct( Reflection\ReflectionProvider $reflectionProvider, array $interfacesImplementedByContainers, + array $methodsAllowedToUseContainerTypeDeclarations, ) { $this->reflectionProvider = $reflectionProvider; $this->interfacesImplementedByContainers = \array_filter( @@ -44,6 +51,7 @@ static function (string $interfaceImplementedByContainer): bool { return \interface_exists($interfaceImplementedByContainer); }, ); + $this->methodsAllowedToUseContainerTypeDeclarations = $methodsAllowedToUseContainerTypeDeclarations; } public function getNodeType(): string @@ -73,6 +81,10 @@ public function processNode( $methodName = $node->name->toString(); + if (\in_array($methodName, $this->methodsAllowedToUseContainerTypeDeclarations, true)) { + return []; + } + /** @var Reflection\ClassReflection $containingClass */ $containingClass = $scope->getClassReflection(); diff --git a/test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/ClassWithMethodWithParameterWithClassImplementingContainerInterfaceAsTypeDeclarationWhereNameIsExcluded.php b/test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/ClassWithMethodWithParameterWithClassImplementingContainerInterfaceAsTypeDeclarationWhereNameIsExcluded.php new file mode 100644 index 00000000..a1bce2cf --- /dev/null +++ b/test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/ClassWithMethodWithParameterWithClassImplementingContainerInterfaceAsTypeDeclarationWhereNameIsExcluded.php @@ -0,0 +1,14 @@ + __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/anonymous-class-with-method-with-parameter-with-class-implementing-container-interface-as-type-declaration-where-name-is-excluded.php', 'anonymous-class-with-method-with-parameter-with-other-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/anonymous-class-with-method-with-parameter-with-other-type-declaration.php', 'anonymous-class-with-method-without-parameters' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/anonymous-class-with-method-without-parameter.php', + 'class-with-method-with-parameter-with-class-implementing-container-interface-as-type-declaration-where-name-is-excluded' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/ClassWithMethodWithParameterWithClassImplementingContainerInterfaceAsTypeDeclarationWhereNameIsExcluded.php', 'class-with-method-with-parameter-with-other-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/ClassWithMethodWithParameterWithOtherTypeDeclaration.php', 'class-with-method-without-parameter' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/ClassWithMethodWithoutParameter.php', + 'interface-with-method-with-parameter-with-class-implementing-container-interface-as-type-declaration-where-name-is-excluded' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/InterfaceWithMethodWithParameterWithContainerInterfaceAsTypeDeclarationWhereNameIsExcluded.php', 'interface-with-method-with-parameter-with-other-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/InterfaceWithMethodWithParameterWithOtherTypeDeclaration.php', 'interface-with-method-without-parameter' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/InterfaceWithMethodWithoutParameter.php', ]; @@ -149,6 +152,9 @@ protected function getRule(): Rule [ Container\ContainerInterface::class, ], + [ + 'loadExtension', + ], ); } } From 07f9fd8360046c61dcaf98839c6dfed21fcfca90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 13:43:08 +0200 Subject: [PATCH 301/305] Fix: Remove comma --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dff2c961..7976105f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. ### Added -- Added `methodsAllowedToUseContainerTypeDeclarations` parameter to allow configuring a list of method names that are allowed to have container parameter type declarations, ([#541), by [@localheinz] +- Added `methodsAllowedToUseContainerTypeDeclarations` parameter to allow configuring a list of method names that are allowed to have container parameter type declarations ([#541), by [@localheinz] ### Changed From 793cd45db4e852f66058c929e10356a6c3156461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 14:30:07 +0200 Subject: [PATCH 302/305] Enhancement: Allow disabling rules --- CHANGELOG.md | 2 + README.md | 284 ++++++++++++++++++++++++++++++++++++++++++++++++--- phpstan.neon | 7 +- rules.neon | 236 ++++++++++++++++++++++++++++++++++-------- 4 files changed, 467 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7976105f..6f9ab023 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. ### Added - Added `methodsAllowedToUseContainerTypeDeclarations` parameter to allow configuring a list of method names that are allowed to have container parameter type declarations ([#541), by [@localheinz] +- Allowed disabling rules ([#542), by [@localheinz] ### Changed @@ -468,6 +469,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#525]: https://github.com/ergebnis/phpstan-rules/pull/525 [#540]: https://github.com/ergebnis/phpstan-rules/pull/540 [#541]: https://github.com/ergebnis/phpstan-rules/pull/541 +[#542]: https://github.com/ergebnis/phpstan-rules/pull/542 [@enumag]: https://github.com/enumag [@ergebnis]: https://github.com/ergebnis diff --git a/README.md b/README.md index b9bbb6ed..7e9954c0 100644 --- a/README.md +++ b/README.md @@ -80,26 +80,41 @@ This rule reports an error when a non-anonymous class is not `final`. on the class level. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + final: + enabled: false +``` + ##### Disallowing `abstract` classes -By default, this rule allows to declare `abstract` classes. If you want to disallow declaring `abstract` classes, you can set the `allowAbstractClasses` parameter to `false`: +By default, this rule allows to declare `abstract` classes. + +You can set the `allowAbstractClasses` parameter to `false` to disallow abstract classes. ```neon parameters: ergebnis: - allowAbstractClasses: false + final: + allowAbstractClasses: false ``` ##### Excluding classes from inspection -If you want to exclude classes from being inspected by this rule, you can set the `classesNotRequiredToBeAbstractOrFinal` parameter to a list of class names: +You can set the `classesNotRequiredToBeAbstractOrFinal` parameter to a list of class names that you want to exclude from inspection. ```neon parameters: ergebnis: - classesNotRequiredToBeAbstractOrFinal: - - Foo\Bar\NeitherAbstractNorFinal - - Bar\Baz\NeitherAbstractNorFinal + final: + classesNotRequiredToBeAbstractOrFinal: + - Foo\Bar\NeitherAbstractNorFinal + - Bar\Baz\NeitherAbstractNorFinal ``` #### `Classes\NoExtendsRule` @@ -112,79 +127,235 @@ By default, this rule allows the following classes to be extended: - [`PHPUnit\Framework\TestCase`](https://github.com/sebastianbergmann/phpunit/blob/7.5.2/src/Framework/TestCase.php) +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noExtends: + enabled: false +``` + ##### Allowing classes to be extended -If you want to allow additional classes to be extended, you can set the `classesAllowedToBeExtended` parameter to a list of class names: +You can set the `classesAllowedToBeExtended` parameter to a list of class names that you want to allow to be extended. ```neon parameters: ergebnis: - classesAllowedToBeExtended: - - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase - - PHPStan\Testing\RuleTestCase + noExtends: + classesAllowedToBeExtended: + - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase + - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase ``` + #### `Classes\PHPUnit\Framework\TestCaseWithSuffixRule` This rule reports an error when a concrete class is a sub-class of `PHPUnit\Framework\TestCase` but does not have a `Test` suffix. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + testCaseWithSuffix: + enabled: false +``` + ### Closures #### `Closures\NoNullableReturnTypeDeclarationRule` This rule reports an error when a closure uses a nullable return type declaration. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noNullableReturnTypeDeclaration: + enabled: false +``` + #### `Closures\NoParameterWithNullableTypeDeclarationRule` This rule reports an error when a closure has a parameter with a nullable type declaration. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noParameterWithNullableTypeDeclaration: + enabled: false +``` + #### `Closures\NoParameterWithNullDefaultValueRule` This rule reports an error when a closure has a parameter with `null` as default value. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noParameterWithNullDefaultValue: + enabled: false +``` + ### Expressions #### `Expressions\NoCompactRule` This rule reports an error when the function [`compact()`](https://www.php.net/compact) is used. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noCompact: + enabled: false +``` + #### `Expressions\NoEvalRule` This rule reports an error when the language construct [`eval()`](https://www.php.net/eval) is used. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noEval: + enabled: false +``` + #### `Expressions\NoErrorSuppressionRule` This rule reports an error when [`@`](https://www.php.net/manual/en/language.operators.errorcontrol.php) is used to suppress errors. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noErrorSuppression: + enabled: false +``` + #### `Expressions\NoIssetRule` This rule reports an error when the language construct [`isset()`](https://www.php.net/isset) is used. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noIsset: + enabled: false +``` + ### Files #### `Files\DeclareStrictTypesRule` This rule reports an error when a non-empty file does not contain a `declare(strict_types=1)` declaration. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + declareStrictTypes: + enabled: false +``` + ### Functions #### `Functions\NoNullableReturnTypeDeclarationRule` This rule reports an error when a function uses a nullable return type declaration. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noNullableReturnTypeDeclaration: + enabled: false +``` + #### `Functions\NoParameterWithNullableTypeDeclarationRule` This rule reports an error when a function has a parameter with a nullable type declaration. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noParameterWithNullableTypeDeclaration: + enabled: false +``` + #### `Functions\NoParameterWithNullDefaultValueRule` This rule reports an error when a function has a parameter with `null` as default value. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noParameterWithNullDefaultValue: + enabled: false +``` + ### Methods #### `Methods\FinalInAbstractClassRule` This rule reports an error when a concrete `public` or `protected `method in an `abstract` class is not `final`. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + finalInAbstractClass: + enabled: false +``` + #### `Methods\NoConstructorParameterWithDefaultValueRule` This rule reports an error when a constructor declared in @@ -194,6 +365,17 @@ This rule reports an error when a constructor declared in has a default value. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noConstructorParameterWithDefaultValue: + enabled: false +``` + #### `Methods\NoNullableReturnTypeDeclarationRule` This rule reports an error when a method declared in @@ -204,6 +386,17 @@ This rule reports an error when a method declared in uses a nullable return type declaration. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noNullableReturnTypeDeclaration: + enabled: false +``` + #### `Methods\NoParameterWithContainerTypeDeclarationRule` This rule reports an error when a method has a type declaration for a known dependency injection container or service locator. @@ -216,27 +409,40 @@ By default, this rule disallows the use of type declarations indicating an imple is expected to be injected into a method. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noParameterWithContainerTypeDeclaration: + enabled: false +``` + ##### Configuring container interfaces -If you want to configure the list of interfaces implemented by dependency injection containers and service locators yourself, you can set the `interfacesImplementedByContainers` parameter to a list of interface names: +You can set the `interfacesImplementedByContainers` parameter to a list of interface names of additional containers and service locators. ```neon parameters: ergebnis: - interfacesImplementedByContainers: - - Fancy\DependencyInjection\ContainerInterface - - Other\ServiceLocatorInterface + noParameterWithContainerTypeDeclaration: + interfacesImplementedByContainers: + - Fancy\DependencyInjection\ContainerInterface + - Other\ServiceLocatorInterface ``` ##### Configuring methods allowed to use parameters with container type declarations -If you want to configure a list of method names that you want to allow using container type declarations, you can set the `methodsAllowedToUseContainerTypeDeclarations` parameter to a list of method names: +You can set the `methodsAllowedToUseContainerTypeDeclarations` parameter to a list of method names that are allowed to use parameters with container type declarations. ```neon parameters: ergebnis: - methodsAllowedToUseContainerTypeDeclarations: - - loadExtension + noParameterWithContainerTypeDeclaration: + methodsAllowedToUseContainerTypeDeclarations: + - loadExtension ``` #### `Methods\NoParameterWithNullableTypeDeclarationRule` @@ -249,6 +455,17 @@ This rule reports an error when a method declared in has a parameter with a nullable type declaration. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noParameterWithNullableTypeDeclaration: + enabled: false +``` + #### `Methods\NoParameterWithNullDefaultValueRule` This rule reports an error when a method declared in @@ -259,16 +476,49 @@ This rule reports an error when a method declared in has a parameter with `null` as default value. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noParameterWithNullDefaultValue: + enabled: false +``` + #### `Methods\PrivateInFinalClassRule` This rule reports an error when a method in a `final` class is `protected` but could be `private`. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + privateInFinalClass: + enabled: false +``` + ### Statements #### `Statements\NoSwitchRule` This rule reports an error when the statement [`switch()`](https://www.php.net/manual/control-structures.switch.php) is used. +##### Disabling the rule + +You can set the the `enabled` parameter to `false` to disable this rule. + +```neon +parameters: + ergebnis: + noSwitch: + enabled: false +``` + ## Changelog Please have a look at [`CHANGELOG.md`](CHANGELOG.md). diff --git a/phpstan.neon b/phpstan.neon index 31346081..c955d8de 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -7,9 +7,10 @@ parameters: checkGenericClassInNonGenericObjectType: false ergebnis: - classesAllowedToBeExtended: - - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase - - PHPStan\Testing\RuleTestCase + noExtends: + classesAllowedToBeExtended: + - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase + - PHPStan\Testing\RuleTestCase excludePaths: - %currentWorkingDirectory%/test/Fixture/ diff --git a/rules.neon b/rules.neon index 6fb99ff4..123cc83b 100644 --- a/rules.neon +++ b/rules.neon @@ -1,61 +1,213 @@ +conditionalTags: + Ergebnis\PHPStan\Rules\Classes\FinalRule: + phpstan.rules.rule: %ergebnis.final.enabled% + Ergebnis\PHPStan\Rules\Classes\NoExtendsRule: + phpstan.rules.rule: %ergebnis.noExtends.enabled% + Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule: + phpstan.rules.rule: %ergebnis.testCaseWithSuffix.enabled% + Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule: + phpstan.rules.rule: %ergebnis.noNullableReturnTypeDeclaration.enabled% + Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule: + phpstan.rules.rule: %ergebnis.noParameterWithNullableTypeDeclaration.enabled% + Ergebnis\PHPStan\Rules\Expressions\NoCompactRule: + phpstan.rules.rule: %ergebnis.noCompact.enabled% + Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule: + phpstan.rules.rule: %ergebnis.noErrorSuppression.enabled% + Ergebnis\PHPStan\Rules\Expressions\NoEvalRule: + phpstan.rules.rule: %ergebnis.noEval.enabled% + Ergebnis\PHPStan\Rules\Expressions\NoIssetRule: + phpstan.rules.rule: %ergebnis.noIsset.enabled% + Ergebnis\PHPStan\Rules\Files\DeclareStrictTypesRule: + phpstan.rules.rule: %ergebnis.declareStrictTypes.enabled% + Ergebnis\PHPStan\Rules\Functions\NoNullableReturnTypeDeclarationRule: + phpstan.rules.rule: %ergebnis.noNullableReturnTypeDeclaration.enabled% + Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullableTypeDeclarationRule: + phpstan.rules.rule: %ergebnis.noParameterWithNullableTypeDeclaration.enabled% + Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullDefaultValueRule: + phpstan.rules.rule: %ergebnis.noParameterWithNullDefaultValue.enabled% + Ergebnis\PHPStan\Rules\Methods\FinalInAbstractClassRule: + phpstan.rules.rule: %ergebnis.finalInAbstractClass.enabled% + Ergebnis\PHPStan\Rules\Methods\NoConstructorParameterWithDefaultValueRule: + phpstan.rules.rule: %ergebnis.noConstructorParameterWithDefaultValue.enabled% + Ergebnis\PHPStan\Rules\Methods\NoNullableReturnTypeDeclarationRule: + phpstan.rules.rule: %ergebnis.noNullableReturnTypeDeclaration.enabled% + Ergebnis\PHPStan\Rules\Methods\NoParameterWithContainerTypeDeclarationRule: + phpstan.rules.rule: %ergebnis.noParameterWithContainerTypeDeclaration.enabled% + Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullableTypeDeclarationRule: + phpstan.rules.rule: %ergebnis.noParameterWithNullableTypeDeclaration.enabled% + Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullDefaultValueRule: + phpstan.rules.rule: %ergebnis.noParameterWithNullDefaultValue.enabled% + Ergebnis\PHPStan\Rules\Methods\PrivateInFinalClassRule: + phpstan.rules.rule: %ergebnis.privateInFinalClass.enabled% + Ergebnis\PHPStan\Rules\Statements\NoSwitchRule: + phpstan.rules.rule: %ergebnis.noSwitch.enabled% + parameters: ergebnis: - allowAbstractClasses: true - classesAllowedToBeExtended: [] - classesNotRequiredToBeAbstractOrFinal: [] - interfacesImplementedByContainers: - - Psr\Container\ContainerInterface - methodsAllowedToUseContainerTypeDeclarations: [] + declareStrictTypes: + enabled: true + final: + allowAbstractClasses: true + classesNotRequiredToBeAbstractOrFinal: [] + enabled: true + finalInAbstractClass: + enabled: true + noCompact: + enabled: true + noConstructorParameterWithDefaultValue: + enabled: true + noErrorSuppression: + enabled: true + noEval: + enabled: true + noExtends: + classesAllowedToBeExtended: [] + enabled: true + noIsset: + enabled: true + noNullableReturnTypeDeclaration: + enabled: true + noParameterWithContainerTypeDeclaration: + enabled: true + interfacesImplementedByContainers: + - Psr\Container\ContainerInterface + methodsAllowedToUseContainerTypeDeclarations: [] + noParameterWithNullableTypeDeclaration: + enabled: true + noParameterWithNullDefaultValue: + enabled: true + noSwitch: + enabled: true + privateInFinalClass: + enabled: true + testCaseWithSuffix: + enabled: true parametersSchema: ergebnis: structure([ - allowAbstractClasses: bool() - classesAllowedToBeExtended: listOf(string()) - classesNotRequiredToBeAbstractOrFinal: listOf(string()) - interfacesImplementedByContainers: listOf(string()) - methodsAllowedToUseContainerTypeDeclarations: listOf(string()) + declareStrictTypes: structure([ + enabled: bool(), + ]) + final: structure([ + allowAbstractClasses: bool() + classesNotRequiredToBeAbstractOrFinal: listOf(string()) + enabled: bool(), + ]) + finalInAbstractClass: structure([ + enabled: bool(), + ]) + noCompact: structure([ + enabled: bool(), + ]) + noConstructorParameterWithDefaultValue: structure([ + enabled: bool(), + ]) + noErrorSuppression: structure([ + enabled: bool(), + ]) + noExtends: structure([ + classesAllowedToBeExtended: listOf(string()) + enabled: bool(), + ]) + noEval: structure([ + enabled: bool(), + ]) + noIsset: structure([ + enabled: bool(), + ]) + noNullableReturnTypeDeclaration: structure([ + enabled: bool(), + ]) + noParameterWithContainerTypeDeclaration: structure([ + enabled: bool(), + interfacesImplementedByContainers: listOf(string()) + methodsAllowedToUseContainerTypeDeclarations: listOf(string()) + ]) + noParameterWithNullableTypeDeclaration: structure([ + enabled: bool(), + ]) + noParameterWithNullDefaultValue: structure([ + enabled: bool(), + ]) + noSwitch: structure([ + enabled: bool(), + ]) + privateInFinalClass: structure([ + enabled: bool(), + ]) + testCaseWithSuffix: structure([ + enabled: bool(), + ]) ]) -rules: - - Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule - - Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule - - Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule - - Ergebnis\PHPStan\Rules\Expressions\NoCompactRule - - Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule - - Ergebnis\PHPStan\Rules\Expressions\NoEvalRule - - Ergebnis\PHPStan\Rules\Expressions\NoIssetRule - - Ergebnis\PHPStan\Rules\Files\DeclareStrictTypesRule - - Ergebnis\PHPStan\Rules\Functions\NoNullableReturnTypeDeclarationRule - - Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullableTypeDeclarationRule - - Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullDefaultValueRule - - Ergebnis\PHPStan\Rules\Methods\FinalInAbstractClassRule - - Ergebnis\PHPStan\Rules\Methods\NoConstructorParameterWithDefaultValueRule - - Ergebnis\PHPStan\Rules\Methods\NoNullableReturnTypeDeclarationRule - - Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullableTypeDeclarationRule - - Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullDefaultValueRule - - Ergebnis\PHPStan\Rules\Methods\PrivateInFinalClassRule - - Ergebnis\PHPStan\Rules\Statements\NoSwitchRule - services: - class: Ergebnis\PHPStan\Rules\Classes\FinalRule arguments: - allowAbstractClasses: %ergebnis.allowAbstractClasses% - classesNotRequiredToBeAbstractOrFinal: %ergebnis.classesNotRequiredToBeAbstractOrFinal% - tags: - - phpstan.rules.rule + allowAbstractClasses: %ergebnis.final.allowAbstractClasses% + classesNotRequiredToBeAbstractOrFinal: %ergebnis.final.classesNotRequiredToBeAbstractOrFinal% - class: Ergebnis\PHPStan\Rules\Classes\NoExtendsRule arguments: - classesAllowedToBeExtended: %ergebnis.classesAllowedToBeExtended% - tags: - - phpstan.rules.rule + classesAllowedToBeExtended: %ergebnis.noExtends.classesAllowedToBeExtended% + + - + class: Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule + + - + class: Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule + + - + class: Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule + + - + class: Ergebnis\PHPStan\Rules\Expressions\NoCompactRule + + - + class: Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule + + - + class: Ergebnis\PHPStan\Rules\Expressions\NoEvalRule + + - + class: Ergebnis\PHPStan\Rules\Expressions\NoIssetRule + + - + class: Ergebnis\PHPStan\Rules\Files\DeclareStrictTypesRule + + - + class: Ergebnis\PHPStan\Rules\Functions\NoNullableReturnTypeDeclarationRule + + - + class: Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullableTypeDeclarationRule + + - + class: Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullDefaultValueRule + + - + class: Ergebnis\PHPStan\Rules\Methods\FinalInAbstractClassRule + + - + class: Ergebnis\PHPStan\Rules\Methods\NoConstructorParameterWithDefaultValueRule + + - + class: Ergebnis\PHPStan\Rules\Methods\NoNullableReturnTypeDeclarationRule - class: Ergebnis\PHPStan\Rules\Methods\NoParameterWithContainerTypeDeclarationRule arguments: - interfacesImplementedByContainers: %ergebnis.interfacesImplementedByContainers% - methodsAllowedToUseContainerTypeDeclarations: %ergebnis.methodsAllowedToUseContainerTypeDeclarations% - tags: - - phpstan.rules.rule + interfacesImplementedByContainers: %ergebnis.noParameterWithContainerTypeDeclaration.interfacesImplementedByContainers% + methodsAllowedToUseContainerTypeDeclarations: %ergebnis.noParameterWithContainerTypeDeclaration.methodsAllowedToUseContainerTypeDeclarations% + + - + class: Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullableTypeDeclarationRule + + - + class: Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullDefaultValueRule + + - + class: Ergebnis\PHPStan\Rules\Methods\PrivateInFinalClassRule + + - + class: Ergebnis\PHPStan\Rules\Statements\NoSwitchRule From a16e03fa2f480661106f5f571e95767f918e8585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 15:25:34 +0200 Subject: [PATCH 303/305] Enhancement: Assert that files exist --- test/Integration/AbstractTestCase.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/Integration/AbstractTestCase.php b/test/Integration/AbstractTestCase.php index 797cb500..92fcfc9d 100644 --- a/test/Integration/AbstractTestCase.php +++ b/test/Integration/AbstractTestCase.php @@ -25,6 +25,8 @@ abstract class AbstractTestCase extends RuleTestCase */ final public function testAnalysisSucceeds(string $path): void { + self::assertFileExists($path); + $this->analyse( [ $path, @@ -38,6 +40,8 @@ final public function testAnalysisSucceeds(string $path): void */ final public function testAnalysisFails(string $path, array $error): void { + self::assertFileExists($path); + $this->analyse( [ $path, From eb91113b817455f382dec0aefedf601a648a94a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 19:42:20 +0200 Subject: [PATCH 304/305] Enhancement: Add support for nullable union types --- CHANGELOG.md | 2 ++ infection.json | 4 +-- .../NoNullableReturnTypeDeclarationRule.php | 25 ++++++++++++++++- ...rameterWithNullableTypeDeclarationRule.php | 25 ++++++++++++++++- .../NoNullableReturnTypeDeclarationRule.php | 25 ++++++++++++++++- ...rameterWithNullableTypeDeclarationRule.php | 25 ++++++++++++++++- .../NoNullableReturnTypeDeclarationRule.php | 27 ++++++++++++++++--- ...rameterWithNullableTypeDeclarationRule.php | 25 ++++++++++++++++- ...ble-union-type-return-type-declaration.php | 9 +++++++ ...r-with-nullable-union-type-declaration.php | 9 +++++++ ...nullable-union-return-type-declaration.php | 10 +++++++ ...r-with-nullable-union-type-declaration.php | 10 +++++++ ...WithNullableUnionReturnTypeDeclaration.php | 18 +++++++++++++ ...WithNullableUnionReturnTypeDeclaration.php | 13 +++++++++ ...WithNullableUnionReturnTypeDeclaration.php | 10 +++++++ ...ameterWithNullableUnionTypeDeclaration.php | 13 +++++++++ ...ameterWithNullableUnionTypeDeclaration.php | 10 +++++++ ...r-with-nullable-union-type-declaration.php | 12 +++++++++ ...oNullableReturnTypeDeclarationRuleTest.php | 7 +++++ ...terWithNullableTypeDeclarationRuleTest.php | 7 +++++ ...oNullableReturnTypeDeclarationRuleTest.php | 7 +++++ ...terWithNullableTypeDeclarationRuleTest.php | 7 +++++ ...oNullableReturnTypeDeclarationRuleTest.php | 27 +++++++++++++++++++ ...terWithNullableTypeDeclarationRuleTest.php | 27 +++++++++++++++++++ 24 files changed, 344 insertions(+), 10 deletions(-) create mode 100644 test/Fixture/Closures/NoNullableReturnTypeDeclarationRule/Failure/closure-with-nullable-union-type-return-type-declaration.php create mode 100644 test/Fixture/Closures/NoParameterWithNullableTypeDeclarationRule/Failure/closure-with-parameter-with-nullable-union-type-declaration.php create mode 100644 test/Fixture/Functions/NoNullableReturnTypeDeclarationRule/Failure/function-with-nullable-union-return-type-declaration.php create mode 100644 test/Fixture/Functions/NoParameterWithNullableTypeDeclarationRule/Failure/function-with-parameter-with-nullable-union-type-declaration.php create mode 100644 test/Fixture/Methods/NoNullableReturnTypeDeclarationRule/Failure/MethodInAnonymousClassWithNullableUnionReturnTypeDeclaration.php create mode 100644 test/Fixture/Methods/NoNullableReturnTypeDeclarationRule/Failure/MethodInClassWithNullableUnionReturnTypeDeclaration.php create mode 100644 test/Fixture/Methods/NoNullableReturnTypeDeclarationRule/Failure/MethodInInterfaceWithNullableUnionReturnTypeDeclaration.php create mode 100644 test/Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Failure/MethodInClassWithParameterWithNullableUnionTypeDeclaration.php create mode 100644 test/Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Failure/MethodInInterfaceWithParameterWithNullableUnionTypeDeclaration.php create mode 100644 test/Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Failure/method-in-anonymous-class-with-parameter-with-nullable-union-type-declaration.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f9ab023..e3390506 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. - Added `methodsAllowedToUseContainerTypeDeclarations` parameter to allow configuring a list of method names that are allowed to have container parameter type declarations ([#541), by [@localheinz] - Allowed disabling rules ([#542), by [@localheinz] +- Added support for nullable union types ([#543), by [@localheinz] ### Changed @@ -470,6 +471,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#540]: https://github.com/ergebnis/phpstan-rules/pull/540 [#541]: https://github.com/ergebnis/phpstan-rules/pull/541 [#542]: https://github.com/ergebnis/phpstan-rules/pull/542 +[#543]: https://github.com/ergebnis/phpstan-rules/pull/543 [@enumag]: https://github.com/enumag [@ergebnis]: https://github.com/ergebnis diff --git a/infection.json b/infection.json index a68df2bd..57284ac7 100644 --- a/infection.json +++ b/infection.json @@ -3,8 +3,8 @@ "logs": { "text": ".build/infection/infection-log.txt" }, - "minCoveredMsi": 84, - "minMsi": 77, + "minCoveredMsi": 81, + "minMsi": 74, "phpUnit": { "configDir": "test\/Integration" }, diff --git a/src/Closures/NoNullableReturnTypeDeclarationRule.php b/src/Closures/NoNullableReturnTypeDeclarationRule.php index 6cfef38e..9d0322d3 100644 --- a/src/Closures/NoNullableReturnTypeDeclarationRule.php +++ b/src/Closures/NoNullableReturnTypeDeclarationRule.php @@ -37,7 +37,7 @@ public function processNode( )); } - if (!$node->getReturnType() instanceof Node\NullableType) { + if (!self::hasNullableReturnType($node)) { return []; } @@ -45,4 +45,27 @@ public function processNode( 'Closure has a nullable return type declaration.', ]; } + + private static function hasNullableReturnType(Node\Expr\Closure $node): bool + { + $returnType = $node->getReturnType(); + + if ($returnType instanceof Node\NullableType) { + return true; + } + + if ($returnType instanceof Node\UnionType) { + foreach ($returnType->types as $type) { + if (!$type instanceof Node\Identifier) { + continue; + } + + if ('null' === $type->toString()) { + return true; + } + } + } + + return false; + } } diff --git a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php index 2c2137fe..63c61ef6 100644 --- a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php @@ -42,7 +42,7 @@ public function processNode( } $params = \array_filter($node->params, static function (Node\Param $node): bool { - return $node->type instanceof Node\NullableType; + return self::isNullable($node); }); if (0 === \count($params)) { @@ -62,4 +62,27 @@ public function processNode( ); }, $params); } + + private static function isNullable(Node\Param $node): bool + { + if ($node->type instanceof Node\NullableType) { + return true; + } + + if ($node->type instanceof Node\UnionType) { + foreach ($node->type->types as $type) { + if (!$type instanceof Node\Identifier) { + continue; + } + + if ('null' !== $type->toString()) { + continue; + } + + return true; + } + } + + return false; + } } diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index 040f09c0..078f57af 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -41,7 +41,7 @@ public function processNode( return []; } - if (!$node->getReturnType() instanceof Node\NullableType) { + if (!self::hasNullableReturnType($node)) { return []; } @@ -52,4 +52,27 @@ public function processNode( ), ]; } + + private static function hasNullableReturnType(Node\Stmt\Function_ $node): bool + { + $returnType = $node->getReturnType(); + + if ($returnType instanceof Node\NullableType) { + return true; + } + + if ($returnType instanceof Node\UnionType) { + foreach ($returnType->types as $type) { + if (!$type instanceof Node\Identifier) { + continue; + } + + if ('null' === $type->toString()) { + return true; + } + } + } + + return false; + } } diff --git a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php index e1ec05f3..2fd84695 100644 --- a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php @@ -42,7 +42,7 @@ public function processNode( } $params = \array_filter($node->params, static function (Node\Param $node): bool { - return $node->type instanceof Node\NullableType; + return self::isNullable($node); }); if (0 === \count($params)) { @@ -65,4 +65,27 @@ public function processNode( ); }, $params); } + + private static function isNullable(Node\Param $node): bool + { + if ($node->type instanceof Node\NullableType) { + return true; + } + + if ($node->type instanceof Node\UnionType) { + foreach ($node->type->types as $type) { + if (!$type instanceof Node\Identifier) { + continue; + } + + if ('null' !== $type->toString()) { + continue; + } + + return true; + } + } + + return false; + } } diff --git a/src/Methods/NoNullableReturnTypeDeclarationRule.php b/src/Methods/NoNullableReturnTypeDeclarationRule.php index 228dad26..2916e6b4 100644 --- a/src/Methods/NoNullableReturnTypeDeclarationRule.php +++ b/src/Methods/NoNullableReturnTypeDeclarationRule.php @@ -38,9 +38,7 @@ public function processNode( )); } - $returnType = $node->getReturnType(); - - if (!$returnType instanceof Node\NullableType) { + if (!self::hasNullableReturnType($node)) { return []; } @@ -64,4 +62,27 @@ public function processNode( ), ]; } + + private static function hasNullableReturnType(Node\Stmt\ClassMethod $node): bool + { + $returnType = $node->getReturnType(); + + if ($returnType instanceof Node\NullableType) { + return true; + } + + if ($returnType instanceof Node\UnionType) { + foreach ($returnType->types as $type) { + if (!$type instanceof Node\Identifier) { + continue; + } + + if ('null' === $type->toString()) { + return true; + } + } + } + + return false; + } } diff --git a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php index 27c3f90e..f920ea60 100644 --- a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php @@ -43,7 +43,7 @@ public function processNode( } $params = \array_filter($node->params, static function (Node\Param $node): bool { - return $node->type instanceof Node\NullableType; + return self::isNullable($node); }); if (0 === \count($params)) { @@ -88,4 +88,27 @@ public function processNode( ); }, $params); } + + private static function isNullable(Node\Param $node): bool + { + if ($node->type instanceof Node\NullableType) { + return true; + } + + if ($node->type instanceof Node\UnionType) { + foreach ($node->type->types as $type) { + if (!$type instanceof Node\Identifier) { + continue; + } + + if ('null' !== $type->toString()) { + continue; + } + + return true; + } + } + + return false; + } } diff --git a/test/Fixture/Closures/NoNullableReturnTypeDeclarationRule/Failure/closure-with-nullable-union-type-return-type-declaration.php b/test/Fixture/Closures/NoNullableReturnTypeDeclarationRule/Failure/closure-with-nullable-union-type-return-type-declaration.php new file mode 100644 index 00000000..68fe2e15 --- /dev/null +++ b/test/Fixture/Closures/NoNullableReturnTypeDeclarationRule/Failure/closure-with-nullable-union-type-return-type-declaration.php @@ -0,0 +1,9 @@ + [ + __DIR__ . '/../../Fixture/Closures/NoNullableReturnTypeDeclarationRule/Failure/closure-with-nullable-union-type-return-type-declaration.php', + [ + 'Closure has a nullable return type declaration.', + 7, + ], + ], ]; foreach ($paths as $description => [$path, $error]) { diff --git a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php index e7f78cea..28ebc483 100644 --- a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -49,6 +49,13 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 7, ], ], + 'closure-with-parameter-with-nullable-union-type-declaration' => [ + __DIR__ . '/../../Fixture/Closures/NoParameterWithNullableTypeDeclarationRule/Failure/closure-with-parameter-with-nullable-union-type-declaration.php', + [ + 'Closure has parameter $bar with a nullable type declaration.', + 7, + ], + ], ]; foreach ($paths as $description => [$path, $error]) { diff --git a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php index ffd622df..b1d8e3dc 100644 --- a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php @@ -48,6 +48,13 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 7, ], ], + 'function-with-nullable-union-return-type-declaration' => [ + __DIR__ . '/../../Fixture/Functions/NoNullableReturnTypeDeclarationRule/Failure/function-with-nullable-union-return-type-declaration.php', + [ + 'Function Ergebnis\PHPStan\Rules\Test\Fixture\Functions\NoNullableReturnTypeDeclarationRule\Failure\foo() has a nullable return type declaration.', + 7, + ], + ], ]; foreach ($paths as $description => [$path, $error]) { diff --git a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php index c9d3017d..b17a872b 100644 --- a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -49,6 +49,13 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 7, ], ], + 'function-with-parameter-with-nullable-union-type-declaration' => [ + __DIR__ . '/../../Fixture/Functions/NoParameterWithNullableTypeDeclarationRule/Failure/function-with-parameter-with-nullable-union-type-declaration.php', + [ + 'Function Ergebnis\PHPStan\Rules\Test\Fixture\Functions\NoParameterWithNullableTypeDeclarationRule\Failure\foo() has parameter $bar with a nullable type declaration.', + 7, + ], + ], ]; foreach ($paths as $description => [$path, $error]) { diff --git a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php index 97490b80..41fbd057 100644 --- a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php @@ -57,6 +57,13 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 12, ], ], + 'method-in-anonymous-class-with-nullable-union-return-type-declaration' => [ + __DIR__ . '/../../Fixture/Methods/NoNullableReturnTypeDeclarationRule/Failure/MethodInAnonymousClassWithNullableUnionReturnTypeDeclaration.php', + [ + 'Method toString() in anonymous class has a nullable return type declaration.', + 12, + ], + ], 'method-in-class-with-nullable-return-type-declaration' => [ __DIR__ . '/../../Fixture/Methods/NoNullableReturnTypeDeclarationRule/Failure/MethodInClassWithNullableReturnTypeDeclaration.php', [ @@ -67,6 +74,16 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 9, ], ], + 'method-in-class-with-nullable-union-return-type-declaration' => [ + __DIR__ . '/../../Fixture/Methods/NoNullableReturnTypeDeclarationRule/Failure/MethodInClassWithNullableUnionReturnTypeDeclaration.php', + [ + \sprintf( + 'Method %s::toString() has a nullable return type declaration.', + Fixture\Methods\NoNullableReturnTypeDeclarationRule\Failure\MethodInClassWithNullableUnionReturnTypeDeclaration::class, + ), + 9, + ], + ], 'method-in-interface-with-nullable-return-type-declaration' => [ __DIR__ . '/../../Fixture/Methods/NoNullableReturnTypeDeclarationRule/Failure/MethodInInterfaceWithNullableReturnTypeDeclaration.php', [ @@ -77,6 +94,16 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 9, ], ], + 'method-in-interface-with-nullable-union-return-type-declaration' => [ + __DIR__ . '/../../Fixture/Methods/NoNullableReturnTypeDeclarationRule/Failure/MethodInInterfaceWithNullableUnionReturnTypeDeclaration.php', + [ + \sprintf( + 'Method %s::toString() has a nullable return type declaration.', + Fixture\Methods\NoNullableReturnTypeDeclarationRule\Failure\MethodInInterfaceWithNullableUnionReturnTypeDeclaration::class, + ), + 9, + ], + ], ]; foreach ($paths as $description => [$path, $error]) { diff --git a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php index b8d29360..677b015d 100644 --- a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -60,6 +60,13 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 8, ], ], + 'method-in-anonymous-class-with-parameter-with-nullable-union-type-declaration' => [ + __DIR__ . '/../../Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Failure/method-in-anonymous-class-with-parameter-with-nullable-union-type-declaration.php', + [ + 'Method foo() in anonymous class has parameter $bar with a nullable type declaration.', + 8, + ], + ], 'method-in-class-with-parameter-with-nullable-type-declaration' => [ __DIR__ . '/../../Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Failure/MethodInClassWithParameterWithNullableTypeDeclaration.php', [ @@ -70,6 +77,16 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 9, ], ], + 'method-in-class-with-parameter-with-nullable-union-type-declaration' => [ + __DIR__ . '/../../Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Failure/MethodInClassWithParameterWithNullableUnionTypeDeclaration.php', + [ + \sprintf( + 'Method %s::foo() has parameter $bar with a nullable type declaration.', + Fixture\Methods\NoParameterWithNullableTypeDeclarationRule\Failure\MethodInClassWithParameterWithNullableUnionTypeDeclaration::class, + ), + 9, + ], + ], 'method-in-interface-with-parameter-with-nullable-type-declaration' => [ __DIR__ . '/../../Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Failure/MethodInInterfaceWithParameterWithNullableTypeDeclaration.php', [ @@ -80,6 +97,16 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 9, ], ], + 'method-in-interface-with-parameter-with-nullable-union-type-declaration' => [ + __DIR__ . '/../../Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Failure/MethodInInterfaceWithParameterWithNullableUnionTypeDeclaration.php', + [ + \sprintf( + 'Method %s::foo() has parameter $bar with a nullable type declaration.', + Fixture\Methods\NoParameterWithNullableTypeDeclarationRule\Failure\MethodInInterfaceWithParameterWithNullableUnionTypeDeclaration::class, + ), + 9, + ], + ], ]; foreach ($paths as $description => [$path, $error]) { From 99360283faf07a6d553f384183f3551a054c5aeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 19:59:46 +0200 Subject: [PATCH 305/305] Enhancement: Prepare release --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3390506..b4a7dd8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## Unreleased -For a full diff see [`1.0.0...main`][1.0.0...main]. +For a full diff see [`2.0.0...main`][2.0.0...main]. + +## [`2.0.0`][2.0.0] + +For a full diff see [`1.0.0...2.0.0`][1.0.0...2.0.0]. ### Added @@ -380,6 +384,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.15.2]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.2 [0.15.3]: https://github.com/ergebnis/phpstan-rules/releases/tag/0.15.3 [1.0.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/1.0.0 +[2.0.0]: https://github.com/ergebnis/phpstan-rules/releases/tag/2.0.0 [362c7ea...0.1.0]: https://github.com/ergebnis/phpstan-rules/compare/362c7ea...0.1.0 [0.1.0...0.2.0]: https://github.com/ergebnis/phpstan-rules/compare/0.1.0...0.2.0 @@ -409,7 +414,8 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [0.15.1...0.15.2]: https://github.com/ergebnis/phpstan-rules/compare/0.15.1...0.15.2 [0.15.2...0.15.3]: https://github.com/ergebnis/phpstan-rules/compare/0.15.2...0.15.3 [0.15.3...1.0.0]: https://github.com/ergebnis/phpstan-rules/compare/0.15.3...1.0.0 -[1.0.0...main]: https://github.com/ergebnis/phpstan-rules/compare/1.0.0...main +[1.0.0...2.0.0]: https://github.com/ergebnis/phpstan-rules/compare/1.0.0...2.0.0 +[2.0.0...main]: https://github.com/ergebnis/phpstan-rules/compare/2.0.0...main [#1]: https://github.com/ergebnis/phpstan-rules/pull/1 [#4]: https://github.com/ergebnis/phpstan-rules/pull/4

    |`6Zu*eUpR^{f7TF1^yBi+?nink}yp;Z*m#> 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

E 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 z M%qWF^~w>+|PzdP*qs4sYa`5pKp@=?xzPWBy~?mVDqZZN~eZmrcgo-Amd?PjHV zobEY#umY7vEmNMx%tkS9C=VFpw!~NpMNp%53Vq0YOc*94ndx7IQFniVh`xOB=GLF5AbJ-naBX~8bfVSD1)ysKcg58C_cZ3U%I_wvvp)T2o z)>nP7;&ZS8@|E+ZpdmJm70(3M#MfVc$48q&?`&s$HT-wSSM#V}ZrXIe3>WD;V)gHh zrzM^+Q&lqAdI4pvoa0syz1_yTkSe^_mA+cpsX?q6{Og4!M?B9SUd z<)vHx`|c=-da>S|VVl3$mX62go_paP-=8MCWHLE^J%QJ7vl9kF5plrpglP*Z1iRyK z{S=2vKH;Kf}ilDL%9pV`K$`j2Et}(!%KvvNIk)?Kr zl#X@5@g#_tF<#H)&k5is(c+$24oBa;<+aDmS{^6XG#>B7W`nyfA!L!^tuHTG6s<92 zP{``EDTC-0B10!zuFrGPhK%EtS*07#H#}r%WE)Q_(3xQJ8R-ylzT5hVw%mJip@Yc@J@xB?P!A5gj%;NX>V4r`3aje|oKiD+vLe5`?K%Qs@xF(xeD!zef$X zIYT+BCQ+EFvz(>Ysx`03(#IhMiN{tQ>}+~gFyu2ZU=pb!kozXQozBaw%zZ+in#V9d zXGH0|;PhnD>ftWWRtfa}L{#L#(xr>i`HD(@R@fCu$u~`#I^2I~z!vAnsKC9foghO2 ze>`kMUY)xc>5c9}`-u1+h)GX^*V$3i_s-lRDnif9L2>ab5rzja5&~h~xz(ey!#IKO z=&=2Z4xph@dREo=&F!}5?xUbIDmS*d^4y0?ix)o-{v}RAULa14zfAZ%grNW#UqXNGG*>W0IG1pr@%YNVSC*vg+ zxj^=}veUcv7Zuku-D)iM{1w}0b5{{dFm>=%?`9GwwfE1JvI!jfQ&+)riv@O1Oa>f> zo7)@B?y>PAI@<|4XTgr=&D6ciUsvgUC63c#Zpg3`|ZuCH-5(37t*dlYdRBSY~TQw&q4 zxYB3>{z9P{bDR(<$x<1KSkRr)@X9eqf7dk;CVkm~?{7tALS##aV&pS>e>}@qVVi)( z!(ZOC^$2Am`mHcM%Rleo=kCnxGG;dY+)1~e5*Z}Q2rKS+)?W=JYO#JRF>2Yvl6uCoM{7hyg}i#ew4K&pt-l;a%ai_DDWS2on{K@cgEYEBa#{h{kb zK^2r@fR3Nl3PV-h?QL^Vf2sT8@lI z_wNX9ic4MU_xzngmv#OMxXbScMQFKqHtu`v?R`)agB!X^K)vz#e?0jcwO8A2+c*$? z*H=smr-aG7d*{*Ml*%KGRYHq`&U7wc7GZKh1@21`54h$e@ote%vK~}^K-E*Qk1AR zPBpM5^KUd4RN|fl0#VE{TlmL0D$#sT3Kb(l`yx6CqJ&5Z7sgx}Hqb}Zn@cDcf`0?R zFBfb@6orBHE>G*LX^|)ip$6*ug0+e6!W=oqnuT!zgfbT;aU^o4dsu{QX(kms&A)B^iErddr)*Ey=p z$MeDegp17tkI)uD!=$DmUDv7!?vjttW}9A%gqG5 ze{RxIOpQo0yLQf=aHA&mTuLL#uns#7ZE zFDjzY$2`HoKOBzzs2k>>f8(-?l4X)2x*8~UBGP#+ozS6bR*a80UK_0g*(8<51Q|?e^|E~ z`RUUq1AtxYL&3o9=Gp0Vx+REaFgF@4?WG-18?6q+O7FK3FEX5qo!JpSkKX(bS7LZ= z8|;eB@$$Nd2u^z>ov~%X3waFol_g_dBy&CE;rmp-cn;+;a-OB`0sz(leFw_;_PtY9 z9x*aQ@V%r&U}3QMj-jjk`KTQ9f7LKw$h z!i}2A;jXuE^?9>ud()+IZ_}J^(uCKq;e|1I@fgXy&al(@FDTdc&h5#ocA+sh(Ty^r zGR)mYc1I&Dr;)b5t)`t?R0#d{4Lj8Rw{kh=JO}>)tr^>L+cx%HUxBD#$f+D9B$OS=Pk~-hM=KvtZ3rIUn^k7rOIS1!{)BH3I)4^c2 zHz0fDI*c+BL@^`qKczyFBp@WNHd4JIjn*uPxyWW^w(A$V{@+pywdl3_4 z9;i2OGmSI#lI@9szet24e;4F&OuQt06wxM>gmRz6k;ixj7xN$yTPmZ3Pe>Xw3h(YB zcCYY0ynlE8->Y*ZrMQ$KmE@jg#E&v5qT5_DpWH_>gcFb;OLE~cxX4!=&jtfdw=4r8 zN{LqQl5LuB#w9%QEQ#6bLftQ!I35i0tPk@1!DA_Mx_Zy=XdL-xe`1qw0irxOM$HzY zYpTSHX$D#bRd|{XNphLyvQX+j0f#&9;;$X*Pv<20pBpLZb&@`pDF>AoQ=kO;0 zRSv!k2z*iz-BHQNf5>NEBH+nCuD{RZW6UzLAj`Gw_qmO7?)dQ{V;GTft;5I6<%A8$-lbpax{7S;%j}@c;}Q&I7mP z9$Jks1@9W{5u%M1ycQKd>Lm!13bwfsER8`Et}}C&f3D!Oe?A@0XU>E;qr=r|4iB1! z5f48FgDeh?j`V%k0xSa;{sM}~z$~F#U?IX&r)s3ZBg5738MQ=cG*07}E1}I)O)E!6 z#SQI50dbwx${~xzf@JwE0BK<+WdCqHu0SeX#=!4_tN;q0YEn1VE#S6oK?-l^fCEyc zRfemBAplpbf6&I5mMDx$gQ3{kZ?ILterj1$fpnScJ&z=KZ}b^VR*!rV6hYN87$jl3 zZHDI+#!DH0%XJxBXF||N%-KUsbYyWt>Nw~gm{UBK**u^${ml(BC`Il`_clr5N>GDt z0~%*+La4f|8rJO?fh@d#QpK%ihbCOcq~g+bm=K8oe|vGr`!?BK=RS-i!vGV^cdABd z(ZYh#OKKw+ta`(yPYZO3uK&-iAeg1_tfihz~HZiYczfC z8~y5ge_4sL9VgAJ%RsMl@I&O+1}f64wo`B97gn^ZN4v-p=*a{;lL>A6@fy{o4!@u4 zkY;VJJ9HL77b4x~nEL^)w6UqO$rM(oSB9BV3Juu|AsLF~UPVAxo9AZG%WxUE&hOl3 zLBzo)m4rv+=M3wPrrTdS`t|btYSBf;JuS2Xf1Pj!y?noiYos&oV;kreI1_U41MF0% z-Q;TmwMvrFedNoq<>5&XfHQ$3A5^lfDW(f3_0=3qHy~uKcyV!cetq-q?9=t{m**9)*rj)ausm3+6d$Slu3onCdzxVJ)rZT&wY?oO z#|P_5F)5&qBQrh-^GE#nPMgRCf41o;cN*3XF(HOs^L;!i$W4qVO)SQ4HiV^f zDPnJ0eQ8s=BxM{u7bH1tX?KLD=zB9q=^1G(?b<{iDs2VEKU^-+=C+Kvl9zbjb>v1Bu!FxY?BFZf8w|r zz^Or(C{lWX2eBcUvj2rhwpS`!sJLq-Y<2Go+{la(-|iwic9mZ2#%#--<4D(Ryq+MTAp*LbS`P&O--7F};xh zBEU@E(>iBnr&6+J51XRa>i;mspY}GImfp$M%^7m*E+gBat>#oor%`v+c4e`CGhV>| zWBBhL|2-Pxn#GW6Raz{wA1{ABzwF`&vyFWQDzZ=KoYq&jRnfMVYc(|Ae`H}46e+q{ zeTqu0ml$OiSiEl5AGK)-Hl}D7K(guYlUrneCk0Z@UPWM*r-h zP_RI6k6wD$e*mLGx|4FEI`-@Z#GCF1UN=Fv1BbIpgIPusZ``gpHAi69nh$hi?7XT# zMX%D&Hg+5O_^2n70-;U+f61aD3t4NV)bTCTOz(Vo1|{t#WG}U8+^kPB2Bv;ZWP0hO$mi_b7;Qy6W!H(K65WVLs=73ZdA^3oze=aKu722w;M5SK17-t+? z>)4S!fzqn~-mybiiPBWf0gyfO-kUcsEFK%(6vcc}zy!W(6G0h^z~7As1YQAYgx$GT z-kteOzK9BET%791@&PvDV9>!APw1q<01K5*ma*%ZNngLa)Ng#qaH_Qyq;Jl_RGL7z z60DKvA`?61e?u+EcsGT{qTsWm!Bg)0xLvJ3?bZn@t0XN5P9j2SA_a432}?K`(tN`c zMBfI9OjKsY^P+H~#>hilC)%%k-FSzN_?L^`;(n9)3B%iDORu{-VtM?j5&+9&yi>Un(7I?%k`+>Bqe`;ZDZ_m7Vh5nr3uB6-kqWD<= zKUq|ICa^<_*_jfh4C7;kEG2dkEk)L=IA%f)bWj?71?WOvFLuCcX;4qcpoAz;Rk4 zoh|;;e}-ME8mH*E3Pvd$(_8a%$#nxT%D{KHR~qF@Ofz5RRoBdD4rp%cq8S^MMj5s- z5f0fnD4$XPl>fK&b@aYTo&1IeU;n?NL1S)vNC$t4u;03)u%>(pRa^5*w*D?Li-2#M z|1>%cCb~Do(NM-=IXH85Z)JC8?nI_6Tyh3N8**;S)I&a}vNFeBKpf6Vx5)8h&v}7l z+F!+Qw^ZQ+j{$$}S6frtI23-*uTU9ioK6Z9+?JBkg=NAnEhRg^?hDB;w?g}FHuifoF>c%Yp_tT`mRN%xl#ox7vPdOpXRM=@zSdbtH?@W!|7LD5=CZ@dI zB0qyG!6Y_S-nXbY3tUO!LyP>KPh};hk1YyNRX7f$sq(2_Win`|{8!-gWt7`x%Izm8 zx8HxYh}ThW@3bh?Qf}|IXw*<{+b#0-l-uuHRB9-1QK+Zf{#38>6y+n` zz)YsYz+|pW+|EuhBB&R_g#-P<463YTm#Lu4tfn%qJMYWI1g%h*9?C%Nd@L~$GKb*6 z(AX<$>@9IB0k!Vs?XQgB`fYwmj02w&&v<_oF43Ks(l8ET4*U*Ezj0{CYFIAPAoMU% z&l_~gsH8A-eiDH~-OiC$o-v!LXr^%p6CKZxnv`t%H&ZjXkPHlelFp{WOGjOIq{e2O zm1X7yD}|R8D_cp*F>vj`HozQ(2D-U%)Ue~RBdx@KDZm4yy!BCbRB(_TVb1ZQjBbBV zyL!mkryjC&)UOT>ispL-8TG8I72@p|sE6gevx@SAT>P=Y_%gs|HM)m!hW0$4W^(98%^JPNf?UcxvIO1N8a0 z3|3Jkh4Nl)l~gYOimJribXHm=m6rG)R*9L&Q&my|^!d1ys-&g>)ELXDk9mL4+eh<| zx(4rQ3~EqKmmzr0$bWSXXn6<&bvK>r{6&WsulVi|>@1ShLrMzUq6y#Ifhyq6QLxBM zS(1BMNeBWshWaReN9gw&`Qk~#giYIS-4{ng%C)lKr27?yJ;#)Zw_k}%uLz%Ybzw}2 zBy4VVuZ9=jPtT9eZie6gJUhA?U37cs^=tGhJO4I1zZ{(nZ~huyT%Lc9&b!ThYq?;X z`%NY03@E>{ zUTB$YTR?S)={*37<7M>;7X+NHjkkAqCwqfI!IpY89&3s0G?4^;Edo%IvD=J^uktkpku9y|X4wN=Y*+b|Hk z>nrvUz;Y2g?X`{_7l949DB7Sd&_f&q485}0NTfhgPK?6e(+}y7bxHXp*;0~2b+JM2 z?#vE{%gd`Q&Vu0LT>$UkM=T6PB0-?vjA;uh0vjVtS81f=iq?PlBU@mXf?a&b+c0Ji z0wvrii;@e}a2ffPp(%2@T&06e{8(vUF3OVxxXM;qEMf~x&LI&Tr6FJ$DV;Jalstzl zK}Ks!flof~%jA0WbvkmTJWCrh3s20zTo|jxLvC>nPr}BuLme2EYmNjo_lz%sK(Z7K zHL>excCFG(NtBlX-vd*BE;-eqGQ(eyaSPo@4}5z(VaC9>+-AAmbuqQ81g8}L2qGmx z9X|tQ;NW)v^m%ai5rHMsCoAo8Ztpg+7ydWXV#zGRnQ>8uS}Cn!n%R{vu-(ZY=*Ys9>Y+*=NoB8+sm78bg3$XSEa}#6AH=wC)A^Bu_paP&D7!7{z@XpXs$Wyjd+^@%P=-HQ zmIg2~9z$4UXohhLi)GPvAW~?1X_rln8XMnYN$`usej+p(>O-kc~gHEshE7@F~yWBijg+ z@Vl}oxj+q9g|}Rr;4|i`T15Our9EBIlqGOgAGFx+EHIfvDL6_)fn}j|#jH^B66z8e z+4cfoyx-@$o7?-bBV-Pot4*6iRPXHIi3$}N>> ze0i243%PZo^Wa8z&u&`9uUTVvq~iZoy>s|eZG?oI9V)t(YiVhe^W8 ze`X+-6~svXNq{a_VK6*sCR_>5T5GXq7U3;#l{m4AQ0V!Mk3{~I|?O3*xF$MI#0S?);_ zwxJH7N4um{?QUi|fYMJ$(u7g!dz`}Qf3-pz0(l+!NGM9S?UCfjl_q)eAw`cwHP*3o z&>_bj^+p+C55MN@hJ7$)#khII^NRss=bXT05d60Zv zq26M8ECl9@a~a-~Bx&~TGP-B8jx(+aPaXW)0FpjF$Gx4t@}xHWMT?QSNg7pHDSe2C zofa6x#c)V)E zFznqC{+}dgRqsz_=hrQ|bD__ns9yyu4gS2b!hZEjtc%naA+Ci8K7Ojs%)D;oiJF%! zBJ9Yl{Q~_+{soOxU2obj6n)RHuz#vago+mJ6!+>fi9A}xZTe;$x?GEccC3D1Dw|AHz*WI{{|WVXo@DK>b< zUg-)h5p3}x>ykUV)g^e6u)2w zT9%3d28x~Heh>(ngT^Gb89h&AUPuAL;G57ggXcMD18NuqrT!OeTokC;2_2q*PDN3g z=dn_B<6ei>Z)Zq^>1mgm!GEY+tgPXzx<=?Of^HoDoubzbmI@!!Be4`6L(sn!7-FP# zg)W^2%2P~sn`%$YJ1b+e>*P2@$%oXL@WKtab>#MoN(#n9#2^Kx{Qzz}r#tvjl3l>MIe#6KP9e*@>!=r33W#;s znSG1y?-$dDdGvEUnNNR3o$fGbsrGf~lOktE0nI}VSuz+fd^b=ZwRt?HRY{J>x&GQY zl2k*-&7*6cttWm0HEOpd>>wXZ_r=JzfG@DupsL37DQl^RrrwaVL-_}=Gcq72T(6t? zKzp-wK7zl^SbuGA;y4ig&ad!Q)e`pD_B(yQF1@YP-BzXQ>9kbHgbDbX*g4xNWl#L~ z8{0`p0txigl@3+B#Pj;hHBjlAb~$Q2zk;N(td;64LMjsyGTTsfTsUw=fWsr;3Y)?AQ;A@N1LkZd~B zgz^aqnGal{V;%?@QOyMJk~jp4&t4eJt=`S`W&hitZ%o-J^^9sVr;1FN(vpo64HGhF zdWI{Qff9-I0Ub?j#D}dGrx7SjBF|`eDWX_#;2OViB|;cJfYKn3TCGGiiCyzJ(eC}4 zqe6gIkAJr4+$P#6r9a)T9d+EtTRjc51R7@ z20lej$oHqpice#mNN^_AHJ?BX_{Md(K=FWv3V$)k+}lq~>~}z8hA7B~IHU_A0gZ4Z z#du+#hg4|-uiz(!U>UnH!^m(DA)#@MOtkbnNUdhZ&z&)1n8v5LS8_M0M4E6iMhi%B z?pq&I(4U={Hx?o!``qw5WIrIwqhs|PmgdC*;&HP>PEJn9zG3pGQ-@xsAZ1>9CdHg^ z+yIhkcW;atFEE}6zeh!$k<@VS3~pAoN# zSJ-H2M5^TYV+N=wjj7c`Ff0wQS#nTjWylR_vBZsB-Nw(pltMbXyoIB`q{V93stts_ z5mV+D=xX*8m_RZtv4I=z(idz(bd248J~POon6@p*2*`xnevc|-FO6fQ^aKr!6n_|C zHH3>jBCHdlKp(u7#6@sA??>z1%>Ms~ZaX%}Okg z11oxol3P+#xnNzIgDg#~rgYR&HGhqnN{L%68&xiN`T&!5-4(kK#1a(N%N&?M{h2eE z+1dDtsWLpm9$tjbaolx~8r*D(jYz4K{mLtaUWKf<3CswViXE-@1|wJpef6U53P;SGb~2% zikBnhwQJL9cUQj1hY$IW?+q$XtHb0!jsm4_gb|yepm>4s0%Q=*1$aH}9Uevy327p2 z&+*NTB!vSli-X~&(%ve8oPQtfr%pA1wIHx>;H;i$)L1F|TyBjZXV=aVJZ2g-R_Y>H z5>=y|(Kk?PfDJs|();r5JWi zPs;>$(0HU_0_AYKCA8`xxTAL1stez)UgFH7ybW<6u{HwW)Ybqn@|yrCnAs74s>VhD z-a__e%@LnX9ysIJe}AZLJjcw)RUATmj8CTr!InA1Ks%nq-_sB2kM#oFKz|C7CATggL=w2T>$wYc z@I0NRoz7mjgSzP5j43o>2}N*EiPT6;ke*R=em9>8eg|vOXELRIAU5pz7K(ZywGdFJBHwH?z)NMf*jSaR4sV(MkN z9EAHdak;Okt_db2Q52{uGDv0!%wSMyx~N&HlY7k1y;iVL#=-NZqLL^ORXqnNrw@S-$CiUt6T7SvXbB#0$8gFQu6i@5L*%YbWqg?T7 z)m-=)T<8k-gNozs(Uj^Dl&>H}&j$z}a7eWy9QL=a#(d1T8t2>RN|b{t<~W!~rynIv z6ToPI_r|JwF_vR~2@iX?hqi!U53OJUQms$~ir}y*8h6pDLX!TOF-c<}Xeh(f@5PQ) z1b^RAg$)-juw}aCV`hE1$Z2Sn*JT4$j%0}*7_S1-D(iDwF<5;=j{@oC_UY77o}L7iz2>;Yw{A-yEAy65XPo_+wi%o>KlJ;+k{VD5{P>|7{&8KCXh| zZe~gQuwL6Ni1Yq+$3?1`YK+g}BDla8E zz^2va--Uw#tS6KQ9xfsJ9{m_D>6}_!ib{Ebd$!qm1(lQSEB*!0}*#XnVDT5iY3*VguY-2O`9{Juz%F$w6WDn z_}XAMxVE0mAQ&d0T)o~(5mBXRY$D~Er&?*;PU2>U83CbphO+XT!Po4DI(U3g^itu= zn(IUI_MaxVopcMFXK04?%etS}ImdWZ{TptVAKV!{wczjHYymBKp+5c2Y&Q5Utv)#;i|$56IrLN%OB#kQFSmJB zmQ*FjYF#$4%1OQk?03mv@bl}lpN6kLj)ree&fgASoaEiBVs(L8Y=ZIFrr2!K-EQ%D z;qdO`0W5FO>Q|*tPQm7BBI0sfE-D{M1GiY^>12EuBJ+P*!@n!4mw!qn<9Y(Npo^;= zb#)m$+fgB|E2LrBLyfPs0nUf^g%Fmlv!RaLPugzjH9}LIQV^ifU#ga)rx0CYr(m^t z-SSU8C$|O8b zAEYnVW63{~e_&~0FV?coIp6u!(edHie4TsV!LA3p@cWucNPk#L0iQV$3bF*$n!@G% zCdv3c?nQr)72QYXl0S$-I3qWVa`==f$|FVv9430_SQ?rADBB!W{AZcaa7mG-5M}wj zV5_wP!edBTM7c!8Jjuj{D3Rt9RKZ&p71@S6pT(y*i~b5-eAln0j6z zA7eeqbF^C@U0kyDy5&bBej61vEZ0M>#|*2l|> zImAsc>YN{wLai~6A1UE`XM*s5{?0Jgmu!=9IE*r`NPnb`za_HV*iS^A`(wrx6`Z6x z6H!W}gpV@gZMcE{g*6mQXt%uY9^g+~RQ`71JL0UVU@Fd{hidacKXZX47?l-}6g(<@ zsjR=DP83wHDe?TliOVu{!@j z^@N?sEdH-Q6`t9xFkj6HtM3KY8qZSuvYkUUVmxm;^9(N^NmX5Ja^W{!+h2z876u9M z1~}d-(=N0*4>RC+g;=JZw#2}-dcdR!C{fVR!hfy;Y@C{U4FT^iN}@Fcwst!|G6(_h zt0qHMEF9p)5}}{SZfnnjXSt0$m09&3OCaz+&wrU;e4YF7(`@D>N-HRR4Z@x|CD_8Z znEj=Ry07gUMwvPoTPXiRg)9@%(?4#*tq~bEqrr16c^Hk?!ms0Q0P8m^v!xpYr7;pQ zyMHieLnUS94rq#3^y4tbE`6Y`Z%JBE*{`q$8*6N&HhS%&RI^2s_*zQflvS1%R_`~w zw)Z=|g545D+fLEysJejBE(RCtZ!Wfn8O>NbH65gWnJ(_x>3mX$WX zYn`F%de5D~>wRR72;UetJI)EJ3c+FFqCdODIy2=XBkV}I?J&Eq$j)7EPZ%|jwzv_fCXBK^ zog?47s$4w_E#ZzGkA2b%-!QB_RexJsUa@!WuFmA3)s@Jo%>&;ogZ9=(+ppb{rgq)X zVDVMAjYX|Yc)BX=*{wVEkCi}0Hi!M5XSrlD7#KkJjy6=Rs596$Ur!0a!6KaYy&b!P zY^{S$tdL}7c+DuHl?RIvbC(kr@^dMT`gmh=TkfXhfq73oxRw=1Q>;KEh-_X2}<=;JiRb;St2bO(2Bb2P7mcewCmkbaK`mjE~dyA6B7xj_vMunWi zG5&%hIz8YK{rfKlu75rz8KdY~%&3fFx%*`%)WYVB*GIogsKlH`sXmA}jf6m-v$S9t^^IZzoO{GbG52nbiAM}7X+NX?I6f7zrsc;ZSQY5 zi&BAIusTcxgt4shei)DhOtQotLbeab4w(*aRT;jAe@>DFQwxEJ*Lo2`?FD**o}w+U zC6>nv0VQ@Q-b(`8-%Y$noJWfb?bGnoa|-7jL-$ewb$=E%I_n>_AaH@cD_U&tsx;bm zv!PFM<)aeHlMK9$sjJbl4BJpy8KJ}OSN8-e(INBbn|yIo_1t!9ATtyO9}a&#Jo)!23nlD#+P_`|Q z6{LT}T$EALQD8`k>ypW(M~i2xa_dYt4Zf@F4S%KKnxxmrHTj@AZL7Am$-<7QHkc+z z@&b2Hu-)$+lcB5Ys5DbxN^mD$vt??u)DEq>j=E{8dymz+CPO>3ZR&P54XRr?<$?zT zK5(C6LqBwmEs=ea!#+7|xGJwSFvb}>1KLu`r|_OCP&F>QNbLm)Lqth1Re3!8Sp<zyxA#hJU%*FJsWLUIVK<-Ftbi!?7D z`+jp=O{6V@K*!w<5>AaQey$#g&JB1t>fX}plRcf=1WGEIC{}5XV~QkGQ(Uz~%NeNU zFLDhDu=Q4_ZmSkmWk$47La6T()UJ{&XB^!9Uhj52)s_mI4)U&2PCwrh?a5E-U! z=9$xY`H6tH@gD`@II&@f_^n#E#(y;{A?nQ0h0}e_QmlVER zbWPG#wOj?Rv)X|@bu@{36uv;7EpTk8_%9hthuBZABYuIus@&istCEDuwmuRCng!et9HkkwJ!;Ex-Ung_g_dq%ztr@mL;EH zIt?}}8$9_ZXDYOX?CxZ)1@)X;k|A*3J9GSoH=((5k47>@{ zt|*oiv!1v%>}uj;wQ7lr$f_hxIjWAhHu_a$$(h})`u4`M4{(;tMGNGdzuv8o_0D6R z1+5Ey|H4*(?l;`I9sL8XR@-jlHV}Q+S4@F)EiIe`eNEzAnkH=*X@9za`{o!1EmIa7 znG{GWj?vxk*$>$t>yXxkk|<}ps9q9~b2(?`%+MECd71~o>H7fQ!(S;=kg$vb{>_Qh zAQI3ih3RgS2)@I!_?fKf2^t&wFpl7!EE(nSQE19zMkQP%_T*aaeNJMrxh(DPg|y+4 zBFi8a`A)KRs)6toWPdECTw!9K2)QAe2|k8AqXf@h7~NXGhu?4S9;bIEltrmiqG3xE zteDc0EelOouw^>M8)TqFA!CY(Ru=JT5OA`g3Q5$Ao^Hh^7o2j9|8XTU`t%D`v1GXx z@;nF%b;$H4&k?r;d;W$go@|h3_4h6FyVscJCT`{MDD=H3_!xl@ z=Uk;?`x{%WD1R?wST#mCdhNTdhTOGVeNTz6Hv+et1z9TaT$Cpl2 zwCwl6F?Dlw+v1qDQn%V~ln-WH6PWKwfEPsK}kc7!((gUR;$I^krxXNj) zol=HTgSmubK1p>Uc|UFox7+H{VW8W6f~DbqqE{*H|0UPxcYvBsrPwMM+A!b9G;~#p zq|0Lu?H`y@REHgSGwV2y;N3fDTa+VI8FZ^-;RDCFVTeJfa2&Z#!cl1fKjK>pHkO&FHEvgtWRNZ#n&DJ#D0l*B1iwo1rmTnwfN@GW<@-DR_dd$VE9y39(6 zw>ESgqtbF8PhH3=zni+7xt4QfaC})VwlIQEpMT6nZ%3lG8*8Tar(x97boJrupcyZm zz3b7Y3&w}VZWycWfh+^6ozz%8>4D-ib2wgG?1#hk+3XuTn^*5o+o|KwllrWYkBKlF zvDL^nvpycfs3Pp#%-!jC67{CDC0e`S9gX@|ev^B3J20{PA525HCg-5`wn?1LZN;+Ht%uk_FYLIRMOK*ap|g$D>js zB&!o=5l^Z1b+F9mTJ^`hTM645rzghk8-Myz{myAet6tU5!N0v#-A>yu6u!?>98I0p zqEhZDV^sV|owgMXrd^B)InGIAme`T)P^yjR*@NuGcI+f=+S0W{fG=X_`22jwKIikn zyFAH*U~eaY9k@({fmoynH0MlPP%+p9;bNM_N=`|}f3Pw3NZIMPc?Zr|C{V(=vVSPK zKn(}6mmHbWrpHxwSm~cB?cK#ingUn(REu$9fyoF`!BH9tEMuiJW`&Yn$Wvq_yA?R` zb{~evr=KoPohy&hCd|Tw8Hj|jT7-qg2qwZNv_lyfRcMYBDDsH+fad#WvPe; zdR%0rG27VWVJP#$mfza;KTJ+A7E=6YoY7XmMul}2@+Oh;D4?ct8mn(#?mby5yV1`?Jt-#g4UTVXt!tRYuugwii1!i z`_bPXN?C^60V#E#1;)IEwu3U)e`+`t=WK*g={j0j^^qz@FLO|+VT zq_<=pr?yS5i8kW)n^BpCd;X?5!mHQjm3tGVvUN+cFvZ@RE?kY#UVnR5sR4I74WMOv z->*=>SL%K=^fpmPOAA&(*^9k3Try*Xi8E}w=T45HRoQnTR4Rp5gj{Ln^xs0vQiK0w zfZfB=+1!h_={EhmTjsj`{n3}p^DmdzpGKcQ4nDyCT7}Ppuhl`Urhii1x1q;>kw9jZ zQ=i0)cs1HWODI$Sm4Aslj1~@S#_|Zlyvd}DO9}G3|gUm zJoq^Qy+8sDwp$KP)mN_{kxb2Y&znO{m31&`A-{Ok={HF4c~LjnwHdU<=0EE)xDWmU z-CAvL+eQ-pu3s@RoRUgpsV(l4Vma|S_BBQ71n}kVgCq!RYJVlMp-6&D#W527p8FyF zV>kOka=F~4=r}D7=c18B&fCt;JTv=p`ZC?5z24|q51zq4Hz9*n7*W8_lw>(1E66t# zZtl0MB)-RI!AG*DLnP+(e$a<2avRbZ-X}SYgOFx$x)M)bG08IwlI@wIze+M8ZncXd z2$J+Z3)h<*NPoP9C=6)KP;tCUvMtHOBpyH-QG(Ath4fDFy?t|Wd3|%qMF}hO4awn- zFj$5x&%)bXPM2^O<{Ny2BVfrc3n(gD3X4a*UQD)>;ULNp%`TE{n#45D@mtK2h|XS9 z7Gz5lp>e> zI7Iv=M$z)$^K8A_;=2d1yr!!#4!aCqV|tfL28=iva`bZ!%hKgVWW6H0e1p;QD<$#C zRYu}J{*&O0-h|sEhSMO4a}wmQeqS;EV7SVP2zwRA=%koLV!nfjFeX$~lM48Y#!Cj( zqu!Su;D4X6i2prd)VBeU zEF<@DoCrrSn80-27ow#V{4ZRAAM+e}GMQAYCueKQolbU9?)Tw`AHaVy3)w;l^c`e< z`1%!QL9#=WTqHE?gOOZg6sV`+viUHKk5eSgb&&tR(Fj^QbrpN@*>-T;ny+MS%q z3|8|0MWP*btA0@`-UE#=iky~so<`d%zaHmFPNIK@OU(KS;ufPgQ03gICtfb@_*-w@ zhnL`Z1!IsYGae(7L^L)mzDD5ib!(3~jD+#JP^_DA0<(4@n(@M6cNl4uhpAt>8{m{f z;eXjvb~+MY0KLus^9FSXSv1rs(3C|+Q%Z7_$|p&;+@Kwe;5qyahx0QCm}GEEaW<(k zW>7sRtDIxKw5=v1&FGpdjF8UvMl<$oI?HD99KVcE{n0Ew8a8awyoUz#2aTwgxr#G~ z4jfoRq{876nz_v+ZRiM@kS}MSL`^+)T~lu;e+<33 zX0{xfZIIs!(bW6|BnoyBL4+ygVml$NXZ}?2&uidzA15gbnH~`~@X`EsgXKC8c7Hrf zUsg;fPuV~uxRtVxMtWS3A-7^bky@cSLj&dEewFt+u(rap3H8Nr9|_G({}h7%FA%ww z(}(fc5h@`&7vROiL_-;Wi!32F{2*o(hZ9A~9bNV{#NpB6{Y5ZeHMhR;TMSTr?*#ev zeD0K#nhN3X;<*l?JPJs#fd+BWbblf_;M%CHqzyEz*|jB~eeKDhQ$N(VqO<@@w^2p%^YGkqrJeZ%0c1GAQr z12e%J3U{a-nkK`D18UuJc@`9rFA~V8y)E&fxH?6LbLLCS#Jo#p+pP0Zm4A)Bqn@3? zPd3)ZIHz+co4n?H^FO}E4dWeczTJOQd}wsGezxAjJ~C$a4#(GKy4~6TyF=Q4&sw9l zgM9S~$ASFPt*|I!8HK9V@be6tq8A50 zU*r33z~5AdZRb$8zJpLF;(xUa<^v;ZdTamV=?{=EfTM<-9ZHCr02InWL1*fK=wfykq@nf13 zw{KkiW36BO#t7C!ZG(-O>5lhVf@=Uqm%M9h_(E{-S}(qc{RKVlzkf?Ol=03j_>;3% zEmp*OhBJvZ3;=$L5!&Ofo0~OfKNj0H5cRe1*jiRUy5W2wad};yUo1n^@S0MclAXR2Kq%3?Y6O~ z(Y4Z}UW$xh&HWp_`G0fq2!K>c)u|;Zb_9-|o_vv}?ioB~M*|b8)P9A#G&%#eYo2KB ziEU?%&xhw>=2z&UO{XwO0!O!2Ob8Lx&}sPoKo5W9tdDI{n__sQEL*3kVwuCVSb?#5 z)5wP)H&2HKnwyT(Yml+hIjHzy*k_hUL8OMyk)tKH4ap@WSby2dlx{F;4POn7cs^G$ zZ9y~|!Ipfaz;+qsdpr0)_A5|YPcnY?8$`P$Kf>M65=OFp(9gK!lFP-g@NW?(bPOn@-OOufQXL{SbDT$*#KSI|xc*}P?Lq*)e&_HF5e-Yhqe_|DA` zBvRgD3%CS?a)0uPgb}%oXyxIQW)ANifLXmG9S(=`r`)A0-jUQV%b(`xKJas4zjTMq zUm4AJS*+G*;`EkbJ=KKho-fvNAL%{Q#G2SMs6}JnzMF5UU=IO(ZIi0$>y^6baD>&M za=OtKSqyN)sSVYw_O;p7sV&>PDyIe-MFP0pW}Q9^F@HIKt1!y>xr<|xjacduMp`JT z#>2=#TZ)-+QN+d*yJ0T9ZCf=C`F0Gow_fA%Ki zU@~beWq)~p$Xj*|esxwcys9%D*G@lMed0c|D$dooNrOWtQs!8O-`dKy7PUWPaTb2! z6|%$=%`QyX4vj{drX_Vp8YY%d1*MF z-x8~z`X7@judMrE=02sOZ|-&|*;8*AZqq1PQs4W^bD&@tq8IJg5mdnuA`baA>sB^lYmHvEiDUHzJi%g?sE7>d#5T<)AV*H;pk3R=TSYM>s{ z*?&DD&PGDEkQyqTEmuvPdxr(Dd0V8=p)S9;RMgISgf3o6uwxWk{PNC#>vTsOfh2TR zA0>Or1<%_?Bjp^1LW@(C*Y({lZ-##uoSyjicb3Ep8uJUT&?6C#fR(5n~U@J zm#-H$Z_jUjxx9g|=8F&4Z!X@wzU(_8L4Ui9RRKF>y|Iv}crhTcIGL#~ zN^|2Ju$t6r#pvFx5&2$#R2Z|I!~soKaM7~4BlU`NIkPKh7VFjpq!o?inKJ+745=0i zB;&y#axM}M53b8;ashX0ieAb)1M*iNp2N>rY<@ftOxgh*k0VvH+QX>*u0*|X+kbMVam{^na)iTV>bw`f9u43`JmYOtbBpCIjn_iuPe{U@Wjfz}iag+l z$o$sN^TupF?4nxhWjJA_K&P6S9W-)ROpsJCx66D!(Qp13*XA&SWXN!VQxrIFE)#S= za$%bAwln7gcUv^6_CuDkvX@LnTz~I-{{?+f!EW0y487|sc-WyWvg8AjbphH2=rFVc zvRm7OEK{{wn-nB!K``ul_96SR(W;#dJ4_eaavUnU0!sul5<23Lf!i?i_Zu2}tmT1<3_Wu<-+ytcbiVXG zIF82@o;v|cE%d=5WfdmRX|NKQ77%;1n)?>;Q2RdLUfta7Z$_#*rF2%{U^BEKOA1X9 zY~c{3(~3ICT#`c-YU{)+W5^De)x^os;}s8)2}$&eGWYm+joGCTh11%YlK%(2FA|GP z;g$rGSMK$=&g%CMmHL{h^MCHPwn(RiPiX1=E?N5ZlXd2O7?@z=n8Z5SzW6*QmOfop z2Pc}pxKG07y8(Swe0=i&4QAajaPxvrAb7|nMozk{l)cBbs`08B@*x6 z<>*|#^PNkM-&RF67)+lJ;5mFQn1-Bj3iw$OWkBX&3JTZjGM8eFXX!0j(g_M%`6L~| z8CftY;7S@QQbrXV=kDZ0`#Y0=RF-do{FzivU0!nzsjSwDEeiugWWZTUg+{|7m#QR& zNil|sQ-WuAjIP|hi}TYDpRPYxRnALO5CbcsA!FJowx|uwV8u*<-(Un<)+(iFD03c9 z2LnM$sxgQrqHm|NtfZjA;D16(PQP8&rmD?sFsSt*u`}nUp(Vp{>jnC>;VlQ zDX;Ll|9D9FGgT!MgwJfQ9GEAhHU$EDg`g`6Sq)d5YK?IpR~aIwPnIQNJmTNT|49~# zQ4W^~ndEhP``^ECy!3|?84uUp+tWeHiPjL@xu&VjkdGYb56pe0;o2xlN`E-`IRJbr z#qNlqFia)FA`Hyo>-SlI_bbi>)%eBB-nsThbnn<~kg(?t4f|k(NLf;Xq9O6!XQ-Wf zJ>gveef_>M9>k~KhkAiLMfwW&CEVO#Sg5v6O%l|Pfha}R@U+n|Mot?T-chxXnwj+& z7E*E;W;B%wBg)3Gk3lfZlcP zhqj1Xg6{prn<#)8d)muUODbjwr36-Qq;C@R-ESrD6l+~!*HQG2$y$T-+{#_cu*K{x zO@e$cjSgZ@q)&CZz&3=P%fA~5sntD!^Be?rp0VvE!Zj3xkYVivTdvt{OxY&rZqn=^ z3!F^S@?h@F^fShPa!6=dnROB%3MDauU%%kDaK`len66|rYTdSvqNY}219bo~D)-j= zmwbA4WgBeI@)%x(O9nt<=ED`9yKThZ`|vwE7I|^)iioxw>7|vc~Cun8*G(HCch|V8UQL;`DS(M zE&PK#;HR~+!l4yJILD9^jA1WtFR|8ER=0MH>hsr4BjWJF(WCwF+{Iv*r(brAi6sn! z>_OhiXgP`Eeab}`9YMD%*G9I~uIJ{?APh@>T#nKc>SJAZJ0o{!+EJI1G=(k7k>JZm)_RKr3Jt!PvYuCqa zjDI4?1;w0aGQIEOtZ;iv?ef$>-4smV2117%wtnq@>T8c`Ut6`ft-4jY8$Ru>e5!CY zjC9yElgCtc+f2CDVpgjf_P3G7b)3AkRaskt9XB89CGQLlGG-W#O>La|v{o8>E>0rc zbp6E2?40tGJ~Ww$U))QI`&|Ylxkb{3i>V?j4t2F63Kz86f&t7x!A#t2tfck18L+4f zJ2?t}IoEaU>Gs5FLzb9A$$D8#;Igt;2+FFS$1XZQn{~J?NniT^f=YC{Y>uXm^;{(xQRg^S2X|?@5h+e0vb=Uq*J?eS`Vvg@G$aiIXf6wyr?< z)#G6A&`2F&^5n_4AFmc)f6v}M8Sf6YH@{m}U5IwIi6xaPTwxAc_10eg^<-OVEBqZ( z&@W-Q8c?PCO<~j%Hd8Z$^%9-IEl>2nY3$;0x|0^ z<*!6$)J1ucKp@gZ#-_0X!b3<{K)FQ2JQCTAC?T9rYm zVxr)gNC=r!8JpyahVaZ(j5Fwg6nPd$jxas5t6AzXDNw)Tw6;z_zfb}EMrVjSqQ$JS=wkV#jOh3fx|iY zGl4eN<`=FIO2rt{WC8R$CPavTidPqebdpbvB#IJD12a$)`j#`QQ0SXR<;>~nGm@(q zx!5)Djy*ELm;NR$rDxATexy; zDbFX^AFyrkz@+SWY-q^xK>4SdWQWQgNSZ{QPD$DL=Jx*Y^Xs;y!|}QY5lJL%H~Qqd z(*up#!m{~cIMjXSu)920`6Pz0}ALxGwr3_B3nz~E+Ie;?k|g;%$oQI%(W4Z^#SQqf&Y zySE6~XRw&86z@pJVSi=OyKwWlNO|AXu4#8WRF)Ndmz<~&Y^R}rR-C`b{U^PvH5sfo zh)<8h!N~TJJwUPk(_O*Xw*j2&4b9@`5$zq;r9PSL3g~ih@%Yz%kUXOhO}KwhY{_kN zusE>iH(Bm@w~wQ{$I)_YX{aZo%hiONDDHrTu6L;KH4C=?;g*#!JkXSz?$5ixBJlrU za*X;jGD#dGt(GHyX1pzCQ1id#kN>JIa_OOEW|7hc2=KBxdVl^@AG*6fAKr9VwdrPM zwfi3tb0Dku%JJQ||~bO-G6KiK09<&TN}Dx!hgHWty-Ha+7y;V2*=2fR3_$ zk(8?qxgJYfa2rF1yA&ls3{@roUIvRFbwv_yhDKP2raq~EpFrQXYG>+NxH@Z#+;oH9 zhW*pNmJpqDn)^)9ldtPjTOnaKZpQN~%1j==>7Kr3r(;E?(tq32-CcEJY7AP{p?F$p zChf9~wA^%X6gVBrEX8~%E;9PUp|4W*HhHwt!^#_Cn&EXa(3gX5V;ddX(33FC;^fnAt9l)J&sph?^-*vL@DCGcf8I6 zp{A;U)CWJtGy6SeygvR~mvxf#_7m8LNvR16Z4l&IE6?Bx;1XfHs0wEn63c$786HY< zli$tu;6kMuEnGWBn`!iLT*SyJwKa#Ct4@~r7tY6j<%(boWUgL#Ju4ZM&B5plEeWtK zoUasXXAht@s3i8JaUSa~hi8MU@t|2MvgA@R%oRbdiM>t(V-9o8rMwXZ`divXq{--)1?%VjdkcqFPKA)`H~ol) zU5QbDZ5B|dYmY=opu{~FqpLhId|F1 zGT4jPI;1ikGBh@8#sUa8o^`i*2%TaT+l#Azw15$`2e||5WJc^PMqiTmvzfhS^9Lw) zGJxX4Vl|k}jIT(}5vo889yxdm3bx5vuei)?TKpzA_W6Ti#M*ProLBN8byMdIbn?~n zZf(@G0e*|L)LbY-_$eCi(5H?xFS^nS=ooxLv-2t0fNs%8Xo{nwyTR@E(Retyf4rH0 z4hNHu>(z7vg+l4q>F=`~IEp5D^Z>OoF^B zMfYGQ3cF4+CCW`3=>MlikQ1E-S_I|EekN8%8-jll1g6hQos&YR$jR4#ayaNj8Byxc zr}P1D#R|&L&X11KGM8*aG=-DWG7N`VwIMMNipKOJYmn5D^yuSmo7a)^QGKHU#JE0= zQ37qKTnfeX4s#q6s{YF8hGyU+y{c6IeKPxXI={U8hIzx4CR{57ch=SX>NdnLg~%Sc zN$aEHV;TubOm==vDN2!lhIiE>U``scDex@<768D&h|^Vp8;q}-!rDk*DsYli8}1-H zFEDEny1SI5OOnMjAw{N}xRuyix=y9oDrn1hV;e`lN`)oOZJI*L1%6}PNakYb0E3b# z#S&{DmP8&|kTA443$bY1Qz0-!m!ho~KUzdScqb=|^{U*vQVxT1$-~+Vkwkrv3*W zcBm;)W046tFY;V}NbMh20U3-64h9Edt|QyqL+tCwN;zrl*PE0V*Dm~9PWYN+f4a!&Nx;EhV3JII+Q1|Fh|DO zwa8d}HLc7yZJ)2;#FdaL0gzc4%C@39R&1;aQpdxHk?eajt0K|CxtHE9nKL|jjqR3+8F-9Fyl4H+m$&Kb%;Co*>=l%3o)@iw|ANmi)zP`6el z&1|TUOtPTH$URc2lFXzoDQ$mPW=p2M?lv_W*SMZXc3DF3iD>o zIED%bNCIZ`iy>z@MJSvuw$x4Af8=n22a9u>mOw4pX{r6% z@VHqAgz2_hrs#iV)Qj@f$Q@+vg~&3bW@QK$r&eNL$W?HVA51BVWi6afX4sGTB3v;LC!h^}Hm%eVPLC!Cw z#v#@Ot#>UI>8bM%wO4IV+d35fo?me$p(UL<*oXV6e~iH>MYj@LQN!KUbeTFgb%?dp z&b6HuwDI5Xv7NL|ARQ9iYGSQ(eEdAmdCBqn<0319;NVRFZ{R9p3R0F+!2b&(HHZ{+ zMj^girh?z$TJnS3(0w#E_EFM!6KNr%vOUpcm zL=<0+KSP&-FGn_jy}gDyb|3s^Iq;S*$_L@5)B2Q4h(gCO8!NfnaVFuER!Wg$4_8ozNRa(X=}by4cWASl%? zvvUhmQ(0};{2p`slj0eNMpnza+T#q3wua1tf2O3&H6%Gvs5(kRP?h1u7=*Rkhp`64 zpdh|FoBVZUWx}tc>9p40#>?%;F9ezL73C;Csv=2IU^IvnCGPtkYe~t{A^2`jn+w#b z)3y2RIUsNZ90SlG5%msz4ET@!Te20&&DmNEI=%QfqEr-=M%1zLuE2-jiH zf4X zAyF4iEfGX`*j!B9)|e(H<(&tGWdHew>0>Ny3Yia*!IC6PED;UepS=~8bD@~N!_Z*u zY<}f*MRSNSi|eZXGMb)F;_=m2lQ>Efe?x_FXwm4kj-LyW|Kg^CA3c6S6CsHy#J@9& zr(neks22gtPhkU55Lpj4>q{-(-jw)&@tgKxUA5%^?4|XC$`G~-%re4CcPAkTQ_pqL zwfxq{9=PC?b8JW0rML|W%w|>}StdF%;(HPwfueaj7;L1ReV$A|eZ1&fnS3=ce}552 zzmt(q#@RYhE{QBGA~D+r10T+wX>@Ntm_l%lU5ZA%zK62!;pltk^r{rIaU+Q?Nq*+x zt$Z`JS+rGOZ*WgtQa@Im9yF|9A)kQE?YN;^d7_>VlBHENkB*MKojp$^9~#wLuA(}EAEo&QgXisH>{(r zY@Wn!?a}Vy3;m^zgtw`oLw8gj7v<*(<5=_zn|X5o8xg$lw5p{m^_wBxns=mSI|teu zo(X@e#}kTr2c@l_Ms0Re+Ogr8l(zX`8=ZY;>_EOXuS|EL?l681VoXZge_QIIOW334VH--jT{^2SFjEU0=R{dj)Af>48qI<76_bLSsRLA56hh)FdySy+ z)d^Lx*PTd<+M65l>Xx*5!&d5;(rfaSI3*>fM{X!*M8$SIi`}7JN~a{pm#pp1buXEg zoFlqP{Kva@QD?|soUj{Zf1gPhWAuL!9%eN8p&C?gX;NBVK53k+$ETlw#h99AY_e{# zE3Y$_WVN$}po)ju5W$&0zjGG>yuKwFPEp8AzQwUuEYP`vIn`^5v+&1wI3An1XmmO} z8xLD=tZF{p2-4;?*vjZ7dE!{%_}X|OU)OGC^cHVw%FgVw(%i9$H zHMIP~&bZY{B&oYy?pE#LT-H*|Of;{m)OlEB?ZKudlmBe`sk-aMFF-g5$w& zoxX$=jXAKRpe&4re zktjzJiYg&hYkQomYVVreb)u;4fA8%2h)JD5C{m^7A#rBs_`bQ;?>?lX)bqABJlKH2 zh--*=j6lCBQwC%NW`xk6CXp0Vk_F${5I0HL>bHV*IAK0Ve*u@$pa?iBco#Xzq0VhK z1DU)p^iQO6?xHM?A&}`*@!`k-6CuPrK%ptHh@?uG;Zn3AjggUT%yHuE&bpsE=lza# zcL^Cs=}-NK}k&KglGO0)?R`p=FG> z7nw;jv+sGCe_p0`;$Rw7g+cYdE9fht82dJ@j(4t69oXzzI(#Nbh-yOa3BNxDM(N3I zAc&dPsLPBWvdoMqi;vCvmNyGBhr;{e0eu4EW8h1t_wl0N9en+Eb=~a@-~e{s>^GjD zU-Uj7osq)J-DZXSsY4oXUMGbDM=)seMQj!V<8ZCx$=C zQZb*Ja;-4dG)`D~q9$bmDkYk$+)e{klYyp366dnH0KSwl)IMthCovZYa5F-Jrz}hs zhUBI=f0=VYEdci%$kfi41~>wrn}q4_7Emc|QKOfGpXbbCtjdySlL@2O+pukW*$Q}w zikjEjXc{uhS7RLQ?cFcd&q6xiPX*#F_nT%utpnN;BCv>HV$0I1^4iWbQl;SlA{J|G zJDwG{1K3_)wZd)_Q6}{)l|UQDDxe7eRsH{qfAYnmUcg6Gs*fh$l4Df9)Z9!r5K( z_Z$ojlVTUl!cuAPGL8mXFYeYC!FQu%R7Q7Dbl;XzXs2WDW@zWb2GRzbaE(jBbA4qI zf2@o<|AT~l{2a)OyJl7FdEW6U=%;lG&&A>m z^jJuvY;p8`#^jXRKgvxt0@g5M1vy%AzVMo@E)S7K4~LIeNTvZRZGy<&A=C@bRJN zuIHPWNfNzOJ=Y@q3o5!^dqsc$e>fSwwXGwVYe%d!FMpa48-?+Uv`RNB1o+q+gC474 zCg5)gsR}TBX3rT&b>2QHM##$qhFiF}knQm(DTpnN z!e3a+0Ru4|+Kt`Wu(mHHbGZuAF>El%x}IF7vq4y_d>kyQ@|fxMVi0iie~LJ7pNo$* zu78;_u#WG{JufZQ=q*=HAK$9<@?YtAttX+C`z}bF44xpD8x8VLUP0+x13BTov4ro8 zypdVlo_J?!t%1pjf5!bUfAeYcWA$+V8pLrlcg+3)T~S+a+AtJ;&#yS*sg<&>oA$E3 znZy)pA&wkV#$!kf@f2cYf19EH`<)YLyH1J}`CPu+$=vD1+e07WuDyq^kB{FzeSQ4$ z9Tv^bnh`1&&DdJwlcX~KXhX1W1RJ0?-t1oB;F~d;E`_}}2HYOnzVQc>LUhoKFK{wG z;DX!5#*TJ8Km#o@CO8>;gb8jRFO4@i+(8q9Yi)yg(7E<}G-GTcE%EK`U;^C5-oUKB zZOrZ`lFl?kVn?9fYYQ$m_U;_Pn-INi2_pqNw!^t24X>9Yas@6PK06P=3`2ql7IjZv z-_=bsB>hBz##=;zDwp0JKRTChas@U4`J{mOOjcVZo|czja|IXy;+J`I1s;Ff>PFN& z1*Swzfh?3#1C~Ej{5geiSy5?_ykaJcb7M`d4aK4A+FP&HKa@sf$ z|ISnFWk@k?0&|y7M?x-X>a@(IBtvrTbP|RUw!pd=$s@^7Cd~ugbKHyFO0vNa1J`&a z6C>?E{dV`K^~oPelvFCsw-tYQ3wIGyFk&$U{GSl1L5x606mI8}k>GP&3m(asHc;5e zdqEv8$&gVFH$qb$Fe>3>WLM6V(`f`^a+=9s3Te%a(l~}dBy-8ekp{v;h*?0nLdSe0 z=-%m~-`X7wPp$I5@xdPY(mVXFT8_n#@_@FC^n7(qS>-OJf{LRehP>zSeyBCQkE zYBp!HSp#e8aKy$9A;--`N%MDj)U-JW(1L<2Uo3&PZhw&#HgXuy}X7t z)J%QUjtd)puXo)uJ5)*`am(%{l1+)GP!$%6v^x+>3)2*e)k%q_jjnfH@{5Z<$Ra+Rudom_kZm=fR%B|{k1}IT=X+lqG&wI zaNk-FJLHO)-ywgx$ng%jLN=YGfp>e_w#((|*)Fxnz`EEv*0z6BwST#vlkU1aYvu%=*dU+qCCr~)oDUNSf&G-?>R-L2P`m}hWV_?NjZ=Kgpo(QLw3 z#1W?tVTXSbTepy@;XyeK3^HM1Nmj$)fY*$V&EzX-i~}e_KgXg;a4g05#!CK*h<(W`*{j28dt--h z%I3n<%oJ5zDCU#>U#sf$e*d?s>cjp~Rh=~LiYei3^^#ZkLd=4d2s{+^mTj9iY`uQ4 zJLrF6Vhial5KPZvj{&4Fflp63L-M4Fr<{bSrZ#WXPsj`sKy3P8VV6_<)nxx z-_@YE&N`Wi)k@t&keww+3UV$(zDe;X0w`AMC5f@AA`ypFzKlGZo^L+gz@@}0o(cKr z%!`Cd{5XmcVfZLTnyj8Iy9pOZE9T97-(Y`rZerbf3!Fp=@!IRu(hQ0uLKSMD_EdYp zw>fH=P&rFVY9TN*tSsX%#jq$T2_kHg97Sxl>LZ<-A)tzgmhl-kUxbzkQ2>7Yz&0GH zfW$<4P6d~|2V4}xzbRh*Zt=|<%m{)V4lKDVyNstA479klaNzMuxvv=i{od1)iSK{; zd9M#Hf;Hj;EKq9u-b7bm+lLRBn>#k4+nIKUx4ev=*q8ZIlYtN^iCwJh>g(N{fh~`(rzjvaC0I z%`knDz&qaEbNBEO&wkEV`C#zo^#ESO-AZVPMT$W0oGSxa3}%IJyIseb+|pY32TyQJ z&eorW0es*~ffDAKK^Y2Ea2C6j3+?xe!)!e*{Xb;Ng^PwXim=#$FfzApQ zA|;Ak#cu`!$=9d}M1|E@ z-fzFp{U+lPD!Xd9kf<8Vhhl&9l;^C}4^@54xz;mjP{oAxKSjDlwV{#RWFa@1y5orr z`LakQs&|D*Ux?@WDa71;&E$rsBDz#bu_o`z@RDeE+Z?0M7^9+f>IRYBvGFq|L>p9^ z7~FL71#+I~G$FP4er8dE36qTbc zM{1h~VoiLuC^YoWY4GO&=*gAXaD#9X*6C2rV@BNSbD{weFlQ;2be8CdNrxUD9xOVe ziqJ57NMv#-GMvM(?8LbAcu1Yga0IQbl&{Bq7`PHV4*Q(gb9g#EnC~dYZUCRPf!R7e z_ao0$7NXXy%|siZT*RC{m2eCXidi9I|S@> zD)eo!bi03zS;>F4$>je-b4S1DM)k&>6aT#~w8Ozcmqpl%g*7=)A{uoM`Uu)peh=O@ zBiz=>#M7D=sj&vu3iaIOp|m%Y^YimYz`j2D2G zv6r|9ng!S6;g~wtZAuxXVlf@4OY6_}p*?||sjRi7SdD*JqOR1lo{T+X*o)TU-tM-A zcD!tnLKb**8ilMYLR*fS%DSjetIB(5gB9Bad00nF^5#8(d0KkzwSu_*V@Hqev)5!> zu@hqYIK-U2-2I!>)${t6Ha8uZUAsTcO}#DhGdMDl2BmoveMGt>MOQpc*^uDa-qWdW z&Z1B2cW{4tmHl{*OTW{lDWkNhv4>DAe}66-zV?6R?}F^;jm2tG-(7ttQLUh@WBqV=fLJ=$hTGnLq-+K;jyn&MJWcI0k zu?PYO=klE!z~{eatE|@>KkAW3mA!OL_{E zaefdD$(wM_Xi7eCNz;hYoIGEskrzU*IgR-G!pwieb46}ZBngRlw$0gcB}tgZBw-Ov z1#EwuE_l8UCFALcWC;yn?3U4uTKD$y)$4axuaT7EQm#TtHlZLf6EbJ>LeiLQm|Vdd zkU;Pvk0@*uD~`v#UK*~c03n=2pI`BH##5R~_>~Ht(9f4?R>(=OSBPD+Uf)GDLoPpm zEK9cP`A6nLj)YpDdD#?&siLUt>;@p?=r9$lL=x%2o$7A1Rm5_1R8&n zc@asTA0SART_@P(f^2!Ab|XyU?_AJiF(NTf2NK0tQmGN4AjWbb2~8-f)52Iuj>JGL zd`39fcX^SfC`Oo}WD0;*4gXnz&{j;)hP4uryeZ)bRV9ktV3VQgMMfhjkPuE5xMyA@ zprB9~u9mk1&~-{KIO^W_TAo-UQfzK{*Fhq~E> znx`!1w=AYgM}%(-;H)$+!a}aV==X8l7lKloNoNmDC*>Do67L+6yNyB@r>tnm z{Fn&O^6)4@e3Xty??Ad(5cSmi)r0)otD&enl;qrS2ppcq2hNN@8mx?m|& z^ZRl6ThAFPx|$LEV+#`CIGKM=r<&NX@>V&D*`etf6F2L7&;1;a2}Z(91FM9xg1Vcf zSf7a%TY$r5Aq|#yt9N2FG12C>sZ@9o6uA6~upWM-Yupn*3;Z zD1IvZmD4sWOibFOM^no-%&+OZN^96OI6|V%%P+r>!GJhw%>_;NtlI@<`lL4dJ48i6 z{hOSe?AxZHqeTd`4yJ#mP!5>MxG>C()TS*RG(~#L)1@Z#0HFrjxzxJrvl}~jbg)9N zAYRJ-+y9tZdi7szh<|@TB9I@5Kz0bvOpa1-E!K4ut0TS2zEGLN%H8w;l@P%~5PN0r zEcB!r9#F@h;cY@e7dU@NE?|Za!&>$-G@M+lLZO(6Fw^5=Fvk$>;h78RT=NW7V|&rb zMHpeh^&8e2ffqjz3n5u+HR-A_)TIdt)Kkidss)E#Rtw{}W_f?J_sHo72T(l^K|_V| z6*Yo&L&8UK2bUwAYbFoF6ozPvD?9OpT;+TtNVD42#gSRJWVi4Tb1JYTqjyl1-w&Rs z35!srkS0JA6-(>*E2YF*Hs~{$aW;VhlRQ@oCgkzsKJy{;=pcyp*^NIwLEXe--{`=KU;qdKh&D7|Jvb|2@twRGx&4P0G}*bvc-}6E`l?Y2G=hj=9sOA&{anh0pA|S}Iacy#z}Y#ZIku z+NaLIndV{Wp|>a8R!#n(Xj`_B_Y1RNS)%{ zc2$5tdIf)D>njykBB?pEBFIBksOa2Njn_A>NvrFsNHsK|YwCZ{LW@gmhxc$P0#918s09MvsB%!c zZTZ-Uv;+|37!oq3UbfB>9@AiOOpf7E$E~k)D-0KV(&`}`z2lXAEh{6kgbKiNVLbVO z5cD#RTjib#e}7KF*CiY0zJ3D^$&id?-}QebI4*sw-Pn z1N+WkeKx9hoXt~W=rz#|kBq-odAZh2z5kR3{~``pO`C>qnB4wB+_{9lMqR~KGwVp* z^Fh$b_1zx5rTG@vz>a5ucXWXHV|#zIXn>CvJ@xJI9;4ZY2?)RDUQhQ4(JIVIz})`L zW4RGTzhqm^$5@CLv@-lk-SMV6-PG6IfmG3G)@e&nUdnmawxnyQf}IQihPvPTlfNy^K5^uFCZz{l<26DWAm#%=driUh zY-y%HJQ$HV=Lu9W;3;Z~yQpeKJ@ci)l<2$2p&hA|cRRvgci^jRU0$p0x@|J5@m;6Y zo=R>E>&S;Uw=2a$pfML=DkgvEHRry0M17o733s4INrn2b0tL{6(*c3VH>XRcK9=Yv zRE=A8N_-EAenLZYs9wJ=G}WrQF2vJqQ%L|z=dFxcGlsc=Evs_~0RvOv+0D8xC+&pJ zaAXYE<+J{$wogJNF`r)*21zDc8T`5D?8Tk6)?j}=YP+!;P*Gs*R*W$gyRIk?8_ zI?MvMF6d5$!21#=%V>WU48HvyoLv7ty?Hzx2B(jQ-`&9_{8v-F*0IV{GoU;@H4%o2 zD9ot(lqfJSpEmCreYH@nDLLBLl(?#xj)Q8VQ9VpnkCV(2cdksFmV`S7{NDQ? zl~!$U+cpsXu3vF2x>zYZ2Q3B+h@-4V>H-FWv~w~HLsJB_Oj&8Y$w?!)csUW;XA6Fuw_Y0oodg^((8uFU|2x(?eqW>dF*m@>6 zd5RwO!u03}*J8uM#y+furE5tuNfquz}pod5aPVmbc^0lb?w?4Q5fEk57OuF?L!Xe!hMyAXmiI zFspZL%bbEA9RRcVLGWaES{_iJqhl$yrZ2jC8vc&4y&N8lRB&NWW9u@`Sy97$g;R~g z&O^KR;lZ|w%tP&$WY{8&4gDqC0hpY|6a>&PF?9OhpCqFy`n zO-z0k^JxQ*SO0xuWbM~W+u1>Lt{RJFc8v*ZEV^`d3|GTfQT?%?+OIe-Q9U0F;*#oI za%F!-+L^OSyTPROtm@l0m)#Atq51}W{C3UDm<@Jb#3^wySmffxN=W)|&Lmy;!CncG z)SK;0QjIEG&4H^3V~7ZL5(qp+ZkZZRj;UpNcwc@ky)g~$w`?cPE_k_GT`YtIrH6c{ zkYd3Z-oS;9sG}%xiKy;`pCw`@CD{$Lu)lw9_AJ!4<5;+*x@cHOFAvf@MtKiZw?|gp zi@p$3#zP?`4RuSmk;M&rqjmZ_ay~d(H_~L(t$J393!HUtv~jtz-viz}4Vu1wn>x#T;eU0{)B~|6)vBdrO=`NzO`RqpwIkbUVT1p^vy*?cDJ^J1o2AP3R)hS+(mhsLddfRkxXL+giRn#LdqltW)T-Nq7u#;kfoHMY@X1CvHN^^-n)Og>1kIc zOBE9Z3nF2XNF|bSuIL07iHh+HRv>vULW+SVCgY}MF*2hPi&$0^oby@68D$DjO!AZl zmn_Rw+p==`npW>Vq?yhV_2(o_CTC)r&roCep{-FhW#3?KY-;?1pqZc&^(2;!)oNKL z_&k|l>R1T@X|yYdZzba0DldO}?G!d0Und%+-=8emzJj_S23dh zx7})5VM?T2OP$`M(L@4PIyVyQx1}=*5fTO0y-&R#qnrNq<<%$5&T$7n13BF5dTzHB z$Vaz({4T)d*{fsVJnnc-d&9}M+b{jz$GWd>%SL~;wi@nghq(Nuz}tUCuYrl^JXfhC zs1rCkn2BZ@qZcBBJSVdf^$Ojy>b`83zGw;>ZK|liK@ogrWapnROK(lHXZaZEj4WrN zCIXB`raF;_%3X`&8TA51V@L#sYPISHgP~U@ZMv_Cy?-L9>hn7s7`GHCeM^2(w{+|k zs6K6!+b6 z>)427P83~%v&?)QnHCTs$ip*$c8s<}P7H?al{BSnibLOl0G;5aLZPM-=0YO>J8-ZP zE@J(NxYf7g%8^%#s83nh+yOr`F| z2+5z~Tj>rQ%nxHafnyh2akXt{h#MYdK1Kt#boK$IhmBP;DyawiaO8Qlw!8w%t04RX z2%eR@R=~m50uFzw0^X4Se@lGX$*oy!an)?XmLc6xGmn7zk9p}Ga3#(%Q<3Z3ZhZ?F zB?4^U_u;(+-0T`pDgcU-5$uCaT3Bn>YDo7wTiUX+tXT=Fa=|L-s`v28`U9<4ZExE) z5dQ98aV@%9F7mP#8!#kIS|fD<13}U`ZHJ*L3|XdZq7r|lid52|&VS#L6eWs!v6D_; zY>{`zyXRi1*Kg8wIv5cinTA`*5|OKTx4{S3$lb;D%QAz7Vsp` z0)huEmBxpI0rO+R(TLKb>$42SMa> z4$9I?C2H_<0Qdx`n}E;b^G}oc#pT5WPT=KnV`nz``_ptbd562Nn!A@DK29$$#^<>E zM{{?2H6PDr<9~7YFSJx{ry0HR1%YSMJID1Uj&_Ma`lGfSqf4EoB?_INK3flNt=HG3YjPaTvV~Y`F-uWH`K7$1T z$+L&PE;PdAD`{X!A{tW};EOxh0Jq9 zJ?XQ?FrC6>Ok%@*w9fA1*OBz->7AW5N zTw#~xf$$2nRAlX0adA=v09stQ#;h0)8@dx14)-cNG^w^uC$oHL2;T2-a&jU?qzQlb zibIF{`@_-5BCJ9kN%I9#8`4*!YDPo%C(*&-D7E-M(9ItxEWebwoKC6w6b&L z$J)P|^E9Hu8~*gJH>3SG_b4gCP>6pkHKZ%ilgHh1l-_gfmx5#!AMax6)Le2jfZ67U zhetxGM_)A5p=)!g40)A9jmRhx%dHDmgaC;+k&-m+DZKm>Hk*R;HN1R8sB`Q{OoZO> z(kdlSf8$SOJ&|TAz5|K3Qo23zpUJUi|FlR`t6y51mLHw&X%Q6|SbfymtQUWomKJJ& zF6b#AtJE05^XKrSSo8yF`e#{`y+_rCDb7or%eo38fwg}_WW%#7u`^Im-Kq+TWkNKt zS`lojszG$s6ayX+?{q!&OkpkP?;F#@jEFpA+&~j)b?}{@FQ<~a5d4$wBTQX z!-m2P^ACfgVPrcbZ3n5+?6vMZx9ihmuo3<@35=-|e)PXUWNtK%f~bG;^>&D=tCI^+ zx%0~q$*YEh31Td66mQttaJ~~pZRnT+{7`g?rm-EB>dNS%Qts@A$`uj1_|@(V4Z|OF z4QX6KI<6P>J3jog#*4bVJY*ROgmZ~OfLHW}uwDRLT2;>-z%71FEY)fqN7>J-`PlTs z&R$+O(HoxW0S*<#QdNJq@K&0ibJWrA> zB>2R-0T@~Rv#yKA*nuFd-QbI{rntPC_1$LPa%?kZw2ff!rZV(MXX-9vLVu>z$C{2* z>B^AKLBfP}f19m+@7ZQV{e!~}15d{{iXNRy`mK6f<8-_3XKQE@eB&}nWGPi9sCr<+ z1e-4UPk-Y~SZ{ah)mzI^RREr8*S%7Z+5b=NbH>LEL|b~`;8rMHm_Ss_oTZOg2f)s z%QMe2ao)Zw(jo{Bb^_RetCVXxyTbK7PJ=Mvl;G_v9%B52tKk2 zM*&}?K@oFQ@HTNPr@A_`AAigI#M^(A%DGF*EQ44U3&m%t0Vbx9@fd}sz#@?My`kGgy=>1_st{K;eixWRD3qM@ zDWNr4z!Vc!X6DeJqMvV6%-p&Bc1T`qSDbrE=s}`n?(#YNbV0tVsx^f4bsjApTv9v4 ztnb3|Y8jgP#y~s6RexN?7C$~EC@vZLgil#%QUc_;OgsqKgu=4e1GYptC%RR&xP=R0 zP$k5bU7%`^*^SPDoIsGZ9OnsfE~a5K+|iJg6CX3!@)}gX-5)0< z``LlVQ!Y|e+)QQsQ_;~XM#*%AfvvY$7;;Ke`#4RLKV?+wNm2 z)CJ9IlZ4x!r2!POoTbeNfOmfguYc38qy6n&H&W^08`4+$>Bo;Ys#&ftR`amOH{S`* zoyO!GlhN}7Yc$Qs6DhOSY#tdF?diR>(UjVB9)_Z#WR7ZvVNZW8(tW6I2;^zEC%(}! z^rB?LEq{AO8+rh}8b~o^x^r-x&12WJ6|3!i!&0~AG)yH8QDMn$HES8|qcmyTg_TH- zChWp=?M~iC@UDlT--5&b6zoXf1$S${BjXQ&pJH!20#!*+mH*Q&jG=q%tNL}o`t`0I zHS3|;hZQxdV_bWeA zd#lWULF)rec!A*mBh46wcB4{%25Hyoy@k|RM&~+ag?%*#Bk$=Q)*@(cS6Hp5m}NB3 zY(uzx4Ht%SdW|TBW(mF5r*utUUh0<~PkmC$_vuo!r5KUOq_<> zkAHt%-#qNy{=W5OJ5`->ly_wub_xi+#YTu+y_ARky?W%1Rc%^EG+)1eagO=O>uJ!A z_Z0jC?O083+eQ$*^Hgq zDuYs{sE8A*T$@T*snrbX5(VE|NnHDVKh59Y{`_$3Lis9fAuOx~K_xo9kAuz!}e z;3tfLbYoKFM47MnI!TnMkQhXV=*xRu)movle5FX2_+_r@#=cIHhQ?OiKBZW@DtY}% zlrno~mQBSgx(BaMj_|2bR#v#Rll$Qb^R>*CMU%Ut8Iz+y_BSe~$Yo{Riwy{-Rk|&Z zmVyYWZPbluY{BH8+N|rO&#_xW@_%On{PFd<&n0|9+ZYup%cUXiXQTphqbq;kh_%xb zv(I4&CQ4iPKVde#igDU-H^#>U*HE?mOF5~0<`7JBgRLI-@-Q;LPV+OfmV`0bwg0Z0 z1*?lir&7l*EYaS%{cXo4QzrZnD8or*ehdU_Oj#inh*0M~C~qv@SLn<)QGde%f#s38 zOQzarsxh^(yRLzKqBh0?*%?mrxPd~fkZ*7+z4iq6{|e?7s)lK4L#M)^bK0h@20myc zaAhk@kw_R>ZXojQQm5J&SB61qN^T$XN-P^D*z2+@WnFOQikC>1ALON25;w!`uNG2q zY8m1YLx_8ywb=t~yDW?m8-KX)+>u|=wcN8+YW?WTiGlZ9kqYHt^Isonx|e04bqVd~ zLaTCf@9qeUoTE|n+` zDA{M<7E+Kh>maJ8Cu|qjsEP|g_wCA$zLrVkZx%9c`eSh0x!WR+{j+*s< zUB6h@6Po@5%C6)Sm(?me!(2FkF;Dw%=qo3Sl&}nyZpm;bzHU_ZpR!DVIePM5fgoImP3A&DhvKd81>ak*3CJEA2q@lU7=7Eeh3g8XoYV_ z>K-jX(!7r{JIq{LHFL7RldsKKTW{Mo6n@vQU<s_?RV` z=N%n*=m1?ORHB%s1i^oXg+e?=Dj{gHS;d@fU@ctY1sQ{|mJh-qy25ix82Zi?VId^~ zeTdDbde~8S%gv=5+=bhi@8`~ML9b}SxPXhttq)P zdS5<&x_|sSxzwgilq$gr-C>C$DwUw~T#*RfQI)_G$UyR3gajN#CgLN{V|Ya*BvEE` z^NFuA&InU*#UxM3&1aV7>csPM*(Y^*ACgQ*3G!>4(&$1g@)byw4^EzI;hVXu=tETu zY!^b{jR^}0k_jTgj0DsGEWMTqzNQgmj?E(0(tkyT{*q9xV|Sx}1FLh27+|_J987(v z(+Vo#qti3w$DAL}vG5PgrCoFPqmjNSr1bUe@WgpI$GJ+N$orDw$O}^}Wi>-`4?2-V z=Fa=+>7X+~*H{rW08T;$6%i89F;DV2Fb4?5LX8=k%|d`zi9A$+0ivpNXpR0!V#=ry zAAdyKYk&l3IW%UiTZ5No(&%h!1mv1wm{72Qx*Q)@L#Wu-7{Tw+DwxXZ-vRo0PFX?( zRS^##-QrPeatorasF13lT2K!bT8H2;K|wQW;D!xb7j6K2%gL~!sed#EMJw~}9lD`% zrkjc_+~QEL`Xi|PX#v6X{cYWd{z3kVvVWYM>^yn&c5VexxnM4otz<>YN$9G)9=im~ z?*$sR(E{rlSTW~3MFY;#jSHm2aSBmje1f0@GsKcqq4o+dtUK-39w57bB74vU30PA zi(iBF{_NVtqDinHMhq&2?6yZ^3h&hNg=K|*n}W^LGM20vc*L+EIs}IpJ^8I0xcDoEIR}B3+;^>P3a_EUdL*5Zb8~xih z{EF`y!r+*$vJ?i}z(+8YnMbn~&Vs242FA2XH2$q^rlF3gE7<)TX~(k*@_!}MjezMe z)DwHz0bom#=T0?Cvgw~`Dtjr}bZ;hI02F548ynCi8JB@JWoBW&{atM%#ZmNyvxR#J z$$SplPW6vrvBA}mFL%RMhfn#N!1%4&9RA+#u-9lga9UICX1v|2CKWEC$n35bePJcnya1(JNnXk_da1N}I%$^)diq#=9n;sgNpu$|0 z$<;V$1~doAcBUVl!B{zQszGU_Q6iI%IdQe86iA4ZsW|Yj;Z5>(^qYKJB&btEjJw>% zy5qKPTF2&A?zMytW0HLcr}CB@jKEiDw4hF$&dR3X@7EW0FDn?D`hVY?3fNstB>IEK zib~md2eNRP*nrg0DezhfDOMY9TTA0=^PTRw@=>lYX9$_4^)`y&$sLaq% zIp20Qj{at2H`tE0v43-#CF28tW0OYc+K!@DRWH>vR`ebkpqh`?uvfAB7FX!^w`$|- zmTR-Z`AhcU?OWxA?X_#*=>}^gQRA9sTA9%^Tg+{`PP>x;kKTX9SzA-vMihScuUIlr z$qAS~n*i|;(lV2#DUh@?hGB%Xw$;d5S1Uo7CjY%>Z_?f*%YTq2kCNalwR44SV91E72dYfD;>4w~OQVNw90VZ&;8;2{*s1DRBHeI!i)lH0#= zTv8QB3(9{6EtsN3s2$UiBjyF!1{*^Qnaccm0yAKE~k)@SyP=D2(Z ztveiE4{gVAGkCK$EeR>Kro5bm0f&IpgU?)S3P8_x=ra^$5QXFc;mVUHn2822z)bml$p-iKDO3!7+hePz!Po5-yoPtOd z5|4kPM3oO1AA76GofbM#?J79X;PIwDu=&4u;VX<9S6>J7R?1dw`r#RAMWU@Xp5wAA za$X+Ith#*=SccIOeq9mDTYXEBWQ#{W|B|w70D`Fj**bhWuwa?0O z)3$_&!c&8a*BX=%O!J@=>DgI%=1t!WxpjZOIxO?b zlP`;5XnNYDG}i}L+jR!l17+&h;j_#wnhL+5ufyP@^g)SnlE>#Nsy+OHFu9-RtYpeePL#^@ZO3D8k2GZVJzJI;^QLfT7@8PNjhKh>8k9coq zY}cqW2E6<(>RJc|6FHR`OH)5PL)}A4rFEO2x@3~{#umtSnyvZ;lpN^vea?S9YI~H{ zvu>QU?v0MHuB}lczK|eyca%Er`12|w2@ZoVmLUBs!-Ps0-{pbh-a5Oc^|_vYZ9nfi z_%V*=OShRiF>*}Myxcis8o^^nQ)oLQYbo}V(b@;qdQ&WD^+aPmHeC6)JfB?~?|3~hVyiQaC2o4Wl#0P2yP=UlQIcoJQJi zddvFNe{GAhY{S(}sQ$#ot;gJ~mbR`j;F~RM`j)Q)f?tBkA-f$|kL#jMFS7YT2g5}k zW!>AI2^t52V|mHv>$iXF$Ihp>-tNxpn-yETuTR6Z1)o0TWJS}~T#ydC)JWGs|3cD* zyle_x)b~~=4{(O{&%frtDvmavf%N|1WP;+vzt9I$nLF2k{c%K$Qk-@B$4ysWM-p=J zJad@jz#Z$2={t%U6h1O?*9wQ7f{T}m{RC)-vVXyDD@iRnrCfik`U(`X3*cZHpfPCO zejFfBl4`ZWMd;ZUA1n4+i1nWKZbq)l>s9NpWj_Hqb-F>ObuBVuZ{SQ&)x4%Vl+DaL zfG#abearN&jAX}RV?bWryDGUu6aCs%^*a3T?HSP57sx2hETDRTuZiluHk5K1$Cts# zcY8Prjx68y{hT;z2pEBc(P$Ldu5>tW_57G>t3L(x<)0oXaJMlXuDdlb1K~1s>vy`8 zn>J!_szX2GB2@+dI`|K_aG?TO0T#trZExE)5dQ98aVd;SN*p^0I&84(mtmy?7HT#5 z?>mx`EXh*pbOYuOjw~MU<+;1($h;oKUfgQ+_FJ$IHy-7%q&@-s8{14kv;^T17~coW zD7?pa&Nq8Sx+pB=O~-=w_JWcSK1YIt4kZj;FV&m3T<_^RQSc^}e;+ZWZkhN#I8l7h zm*J%Y8CPy8S*v{?FV4;{$LCU&@=|!VfVIuRrCcz&NCa_VO@)Um7y*wG<`6XGDvx`u zR%i!=V-R^n)3YduqmYCGpF$q_WYB6kzRfw@5EjtT_FLaufS;JrTbEI$0~LSn(S%&; z?eD9<7|riQa226Qje=6&P1iHAw~UB{g$R;JU-h(+WP$i0tf3=;gB1~9<$lvr%Q^u0 z(O$z)N|5l@G|sL*e))7cHmpG|LziGKZ69&p8xGSQRzZjSq<)y_hy{pzV5V{#HIJ>5 z#!#kwhzdFJm;HXdTD?X?D&Bw50LuYm;by(g)Ptfn81><|BQ5>71H?K_{{rI=O2IbB zT5$p8j~AEcPhqS#>;Q5qxHHQ2ihmmBG%&>Zmqwi5qPv92zNyD`5k-C-uxW$j_YOe+C7X`6HprZr9M1+#JM#9U zoD*T@TVBm97*+MWnnAz%?xdpo5eT-b#C1=bz}oyn93LHxlQ@nTG61}M3Hef`Y#U&U zLjN8TF6#kH2kYP~4c%zXW&TPugZ~ z5H4uA0-UbeA`QXLw;vyAt%oF(PP;fW)iA^{gbhZ67(0{-bQlM%6i9u@JVNisH}9^# z+%%-5T;g9iIwCgo@=Dk*o#9{3bEFhMqL=tHwT_%qLQpo**O!tzm5~j{w-0GGIx`DX1 zx}d)y_wQAnoMzkRNRC`^q*^^|)}6sFA^p zHS$%{Sh_%5sqNFhi99XlHI+z!RljMnmj_-u)E(kPeiDD6j88+d8zPO#tKoDtGRDZd zXunX|QvOUE-mdH|YG;T|SMm6uo4T9+>`^(vHa4Ee<9WYG1KM>nqv!|Vfzl4^41xb6{2zCIf~k?WD7>?AEbst%5paIXf}z5| zwQL-96bXMY!d2bdc%>tZ;YiTc|HN5%GJ8;@e2Qa(Fi-_@rl}^?yZ@{ z+o^xLfiI*+-cgQc-xDKC{#<398`8L737J)Hs(Vw)=P0QDonmITpASyfp8^vW%&~Ch zc<#Up2ZF90#G)>kUOGM!%nnN@#U+JDww!vpeQi^|WX1K^`Uj1Y!A`?442JJ{3Lh!b znmZDwAd^b|6a!I z+OuF5)>k2*V`LD`)d`(Y3=kWr&}E?}ci@5tK^9ld*ZT88M*$55!PK}Kxin^j9COmx ztgg!#fJfNB#5(s{X=1-Wv?2pPS<7SJ#4whMv_96h&MB$NF3woP$*iT|@l>|bcg25< z)K^HNN*#vdJ;a;(FKdHCOajE5k#DdgNt>&Qb>S}iEG^ERQ3SxAQCsqsyAC$^sVTXS zGw2O2CIp3P0{h-+w4L*i)ESe+G~RH9KqUZFG`mozhLW1R>xCa$69Z&+k5yc7oRm?D}6D@{~DQ;zjR9CE`ui0}=MSbuevhsK1 z2VJ-d=pCWCDPsV`kxQowfm5mpEmY?w>|EE=d#*-%!P_b!NGWc)!z~NW4RYjaX0AE^ z!ToLgmuKKiOJS|_f0*2#@U6NI!oByy|K;5s(__4=Thw#Xe;xL{DWh$zUJ&VDb9Y6T zMH~jRM|OfiwVg#~{@BK^w*57~u2l~GUy#p5AMY~kSrkvwX+OYS0x6A?y2c|cUv<&0 z%CQ%=$x>zpSB-QVld|8ROsC(bCjM2>yb2Nc;oEobue-mqo=v7-&n`a9CM^#Ymv_Bf zH?wmiVNZH>e|FTvZcj!ZPL$nkPXSl$3mkw=g1g3r9XQ!5wku+qiwVIusGFvux+b1f8H_Q55J0>?i5WKJNBjd^k+e6crGY z+~>@1W@l!1CP%MkliA+h;dguFJ2IF=oQ$KG68N0?sUXRihzTVhm(y{=me3a5`*-vJ z2IF`)e`t}n{wSi1TqT0CAfhQb8q1c~T+KNMlIgJ?|29eGa^ra%lOUNb)97v@h|fY2 zM*(FVHfG}_o%$k5m`7$Y^`Y${q6<0i{Oq)M@v(ka{k8ObcP=Ar#a=w%~rb&{1Jk``Pfq$$J>nmNI|cCk*p=?i~+Lh-!lf-jzMeI zf6YYb0kMuO>N0q#X^ zZza{~JP>YCOEr-mDXA3MPh>+&uBSN1zkM{8?PEC!n6_E8x{E}?I0iBAoi%tbh)iozUAQ|`4q7*S#T0e!J?=Bj1z>56Ccew zun(W8E<$SK$ln|4suS_ zB3~ve?RfljIe~&wzlD zUv5A4u1@+V@RfACUE&Of4xm=MO-t*8)Cu5Var`+7QusDWl{i3Fq-e+l&CQa*B7 zz06^)9?KDKwwgy?scito<&2`9L9k%8a(R|bvuT~BbR2z#W`{T)86`;!ZGISHXV<8o zYNkB!<-&j$t(=97t1cNv{8sXsQwP!~vgsClKAd{Hr$er@UpJPJv^Ie8O0H5m0~7Q{ zvfQdDj6^O5JyAacP-Q{if0Xf&xOf@}&#>-g{CbAPR&@u^>vPabw^2KOejPD5FOdk7 z;BlqgL?mMB8vHeR4W?xa-mkL`{NrE~nHamy5g2xiu8yDbqr+pz*tX1kbUKRXK?+^~ zD0%~dDhC%Z$&hQcybYHIo^Fv?U${;eek-%y=|Fo-*(V4u;fQ^&e>@lFmW?qho zz4OhlDicoS=l{G^+P^8O#BezQ=3Q+!X-ttZzFsN=FvSI-n5kf#logu#GdJ7EHT^AX zRs2h-n5Qhq7N~#99WPtY+Tzi(2&@{h%tBdXem&sO6}g)$v4LwtW8P@X3#R-gXAnYE zj4eoRjL~)Gvx=aXe-O*TSI}o_XkowBW8;~?%d$Qj+qmhKK?j6ngrq`vP8l|0=pciF zUrrrO(DB~ZTn>7gI*X_$#MuEs0azO8SGJ_-^yJ6E+2uu(RG;h+Gl35r#?4HqAHv1jBl>p= zx2X!vCYV+iGx43|Wm*ejtu4Iv9+R=}BZ8@QRhu3n)w*9L8m{WldGVkTy%5H%x z$2UFc$K@BNf9O|mPkoz|`zyy?@GICX*H-Jonb*wKkLm-buHv`0Uoz(^lB=||kKs-g zVz98iYs)S5BuS&cB}~B0RIYlkQgHd`!T&}06(X$LCxg`0r|VadGsbp!Yrdz;Lm5U` zvW%By2i?Q)0k{HV0vBIOP-4lrW4ga1&WXBLIeF8ye*9PA?>D^)biH0d0Mx@OLAQysPL!Jum^zC(R0HRU0n6f}l=QV8W>FB-!T zCI5(V;j@5(QWSA6&#@`FzQKn#xxmZnAfRjIfB@7jV&$I43WXR0D@D-6w${>=frvuT zvpmqre;|qZ%x6+BU)a~D3egxIem%)gthl|IWHCX}A+1fx7}xnpN{7QOF%I$U!3mV> znl~g5p97)M$d6P6c;K{Fkz2qG&a5H0I48p;n5U_Xxyz#-tCngzyLpX!+^jW=|7qvA zc^u>O`|JtByscX=fck2Yy#ek^kxNsinkq)ge=MRE+N3XBYjv}#&6w$x!2D!3ar6Cb zfb=EXTub?Vb(h^h^F9hg%4z`G0S*O;7ueUkT9N91D@1|HY}E<3;nBC5E<~v=Q&y`v zyP#br^J-+PBS6*9z49R_bA+Z7+sTt|Hz%SU|0~-){+2poB5_-0rxkIYnLSV-y?#6VC_4r0V@?s^fg}~w$ zow$ljS87L*1e1SjRE)xb#H^k?khOWge=lE%^L{y_sUuT>fEZ;Dt~2QMKippRFW>b~ zJ~)-&XTPXwRP?4Zv4kI|6Np&?eDikx_0PXU;DYaPv8=Y?69^z=22>6p!}*Ip{PFqf zWescAvgKf?GN(+%KQtAgpWfFK@w-)qq>@LkO8vDSJB>cmaGe{?jF0(}o7*~Te`+Vm z;e*SpI?x_HK*-bZ_PZ*<@>tZ3CwfY;l%QeV;vntJYpZS=cHH+FUr@`k6<3t@y1=og z27076QutbYN+DyZw^(qXU((%ghU}Yqri`K}-gfXxYH}TU>Q$Nsot9R~`O6;%S3eGJ zFE0BZPR{G}<_X+iB7{O-M6+yhe+3aMRZ&PI*D$(W9>UnDGCMkvT#vmRtcp9V2^c$7 zr!}Q5wnW;-StaU0J+Oo#&)@&%;kUup+!{Ts+O5-l#dw>&ugk&uwVvvJ3iR5`h?|{yj(l>(JoB&IMdfQi_dM|s&LX^}Y*3UZSuEs@W^~+yI z%0;FST1=?D0TxfO1mXh>SZP>z?Pv__o4j&`x2iAfkcT7+%K?_E%!2bhAAz12U5R}N zS+Cw--S#feJ)*UyUdP5%e*_R$wmi~)QFc;b4InUa)h5@^Zq_>{2v{hFR0P`LHjA%C z30Y+CND?bmajcXR&*i~hVNC^C`H)H#Kh%h1Q)L;Xv@Q%VJAbPS)m&MaJ*D8rq*;d2T20K(AoS;3L>rGQnYOKOsiMYmQRmVUXRfIp87yd|z#?EH z5^~SrOh&4*UM!NFT`tQMwVvCP0VGb-2P&t?;lI}tz#39KuEZP-B_C;Tb`Gp9+T(f+iw+aN2J={hH$P9D9MVQO`(i0H2kV??opK}P)bubLk&5oIj}X#_q7&GVpOM#I%%{5 zoV>d8DbET!vqEOM@CK@9B2Xzk<8vPO{tc~GUr*aGe-MAqr?^RdNKv8N>tL({ia=w~ z4cHS>JgBi0B z3G0lQ<`)e_}peiPB}FN z!WH*Dk6vqV`^uF?=+OSP^aip$m}o7bL*kMOO7>zVEj5Za?B-c9Wl_eTKVRM6jBann zmsh`jd<47Ls??X2tphdznwQM20~!Use&M>Wm+P$qK2Vs;i&JK^sfNaAQ#Sq!b`eAP zVf8p6=rF<*M><=-ew6Dr@ar7zFCr>yZ}#wt!#bm<;4igSOLNmO5Wf3Y?4gIGlWE{g zpn*<1bm#yx;lP)9t^*){&g-&HlKE)@r|_+m77D2l_+AU+Ko{Ujgw?((H0^mT+lV!u zad3#AWK*~jsYHUW+972U4J?W{vb4>bvrJd-+W0GNB3$8>f=t(YBiE$^K{+UyAz3D- zLYqoBsc8naLcwEOiMzP&=KA9D^Xf7{MU}1;4tByqF0C^%^$v4?*hyFN3_Gyen+%yK zkBa9>LZU*;CJv5nFLYIFLUQ~>Rx7++xxKBCz=lyMQPpT{=YJ`@E7{X0 z+)9EEntd!b;W_2U<+>75b@u0pB!{Mm+yU#ldrf{Oz*nRTS44;yoEg4G|1C5ypr; zoS?#rH^L5}KBx|%z~SA2p^IE{*@_Apq4zCvD|a}53^o~;H=ku31_rHH4pL#BO+*Vl zN(TWN!^QUkG9vIu5j$Zh)Wi$OXragL3ULDhkyn~zSo~~%A_DF>1sQjPu;K+ow9w;p zIFUZuEJ8^4-IXYEZfY}V-;Lh&eS`1qCZPZDXnVaGblwnD@(%Msa$z@zM$)0p;Jh2k zu@Iq>-U9J4F=Ova1-Wpt6-ws9am_b#kBjUM0|amRXp$6Kc`5T8|4;wN2+`x>>0-H| zahsQRvX$L z^=(x)^IWBW6-b|vJO{#^lEiq^;V*&XZbBRzVGivn;J)qwT{-?AvayzGqt_;!06P8~ z3=?$0aeYHmi905F)vJ6fh+X#4z;{kM)^;3Si_{Q*hIL15T}hI*>}MRu)F4b4`&aTC z!O?|bz0;@w#aw_&u&wGNA->lUmhHv93Uvd zvYsV1yGtrIO{=<0ua-5Rvb(gN!5ip7RV>SY35SNJgz@f!2YE8*6?8)P==^0dUlcjd zYxtH|MaG{#c(ANm-s6)wV66T=?O6P0o-Nj_as<6vugX!8OnK@4I?QWcUPGT(!8o|J zen}AYY^{n1Wm%N#S3Bk9Jk67ucdPno!WYORs;kFE{km8JzUoDH2>M%hLg~6k#Z5YY z*`Up1#fNL-{hDS6AbS3GSud8g{=KRq@*mWC#jln(x{`Rx(%*b>!iNN|HXUy5vxHW^k^FnWiqKNAxU4QAW`bc4C}bRqbRESC%n9c_4oWeuejYIPzz|?9_MVlSillZ z>oO__xEfEOev;;}BJ8CFm1Hnv;@$kuXUn zmY9ZARZ>ePSyEL9q5zhfr~d;hy=blq;1Rae@5AbRT%9h<{{epSpJrU$=2z-AX^dJD@Z+fsywE}mUHb>H13d5v-p zUtT9!#l81{b)M!oTIq0JqVnWDy5(g>^E-rrP(S>4$dY=sLp4ODw6$hWvI{bEO z2`}fx%&Z=61w9kI7qw72vStIxGONQ>sDM6t+#_Tp^pXsj6ebb9T3*3_NP^;JrR-iPD=IDY%s=KBgt&P91vJB^u%?j@oqntFs!k%UK%j& zz*$8UMdbXDT3JS{?3Q$igs5epuJ%N^FQV5ZKJWum;2Pn`U%Nq?08<;8)sM+AdpILR zFa@xy{^)-Rj|jBxsLlOF3S>n@5w?cr0H4mdRc;4 zfMQQrdd)Zt={>X#{BnnNf!=(`P(p&R#WjTNARkISD~r2|8P$~iIs*wMmZ|CbeDIWF7O*U4$Q)TA@i11wpGvr`Q9fu zyaAct?;RZ;ADry>c04}betyG2;-Q%-WVBc9<=dkVZ;oRXe@&!S?s} zCFTPQ9pVAqA6#LS=4el$FEMzcs||pL0szs`St3xkfPH|`%&6|05$Knk_W1KXkd#E&(rEMK{LT_e84_` zW)H0gXHPC{y4$*7klNfT;4GdlF{#g9S+~{g=RgJB*Ppw8(twcY0?2MWK1votE4i9q zr#DM5dfxWMG_%KAmqyjnn?fAaiI*S%v8QsCC_vr@pcqn-t^)JLOrxy^lha@->|9wG zA`Z!00ONPrMb;xTkjw5}qd%PH5dI3W8ZcT8hGm&f`npzl;4GMZSXTz-${y*`bwGwr4=D5WP&nff-9?kX6fhb`@jBm)trPPtzrXVikict;GR}GQGxB^TuZ;3I8bK4U z)3VZkUc&x>kp@>6wD|$FUZ&LyDO?Egc3l>8{F%rKI{_Va`}tLxPpw`Uzo4Ur>7}sg zD-SG*fIcZI6`L=snq6_0-sB)tK*Z9<54H*T?%slhJWZr5UMx6pT$Z40B@;t4n-8fah|3xB9XUSD-_GfmmV|WeFhw5ryFNRW?0AYRVGNR8U@H zXk2#v5&`ts{`0WeeX*vlZ2Nx#%3(~Fg*)gGKIApgMUBtK87Z6JqBTfNE55J#q%~iH zLUY6W&3@X|ZtQAQ+dxb`8d;d}ybV9iW2 znD;q|qFY`Wg?el~1#u{BGbu3AiX>ovGQqd~pgOHBds0w*&s1DlM!%P9>YFW9-&`58 zEgn!&tkE|un(uwl$WX(_U)5-I@c#YV_x{>tcSkAwSYFueQjG{xKz*9apZ)m~Zf{GN zHl`^gLRg30(8{t#9hTy^u3OHA3cbIoHkfUKQ-VSTYp*s40Lb zV9?wnnkYP(zF;85?2bcYM< zZ%Wk|vN)@@uN7;X55NDI<}gBkX+13_Us@IY68EzDw(1`D&+F)bzW!!y`b1pu`aM#| z+aYQq{x>Lxi<>Bjjk2VwibDp1GQ>@#nSe?Cql{_QDgFGa% zk5^l^K8Vu*ST(k*hR;@cTgK0#M|c3^8a0lfhh59&gRJUoYle3;UIkk8$01h3)8Qiq zvR|tM^R2-M$fpdn!b(Ii21i=%xQ?B|U1nrsFkLi#4?!!kVE>}e5jj+7%G~Ui7p2e> zmV~F?>*t^NWZA~TS4EM3;ojcHfLn=>l-&5eUnWc1Zfhlo=PQrViLg}hkp6gR;h z5o*_gb``2|B2vqCa7yQxlNQ3+Xh^5)nnaVeR?$t1+E&szaWEaJ=b;^?pTfY4;)zf( z7Mv6C%~KBqUKuPZ3Zc#Tksxe9UuQWBC^9-y$u<`?KZm?Mu^Ps$9xyRghm^(pO~sz! z8G`5ERL^$l3!1opUhBgk^j15rv78G?Z5m2Xg*2XmP>BXcy_Y+R705d@kyn@&$~42F zgW@1DCnYC+wu||owl7~fSF#V zKvXRz5Sq8|vi5kmeEOLjM#!v+^$e%dR-puq>pGNNH9RUP&rmunOwlB8j0{y?*dbQb zFIDgZydIi=;%TL|p2n!gV9KrQko<6c@0QHi-DSTbZH4PH4UWU4C`(`gnDbVE=}w@J zjh&TP@1pWppn>z=J>p_qi>DTT(rXE53HRb8$r0aKa?5GYcfP3ah0+1S_#7I&r1)kt z86tZcZZu_e7C`*Maf!v}r}XHjNrldQnyd-_icD31(2P%~ z)k;u(vC&maz*v71qQNgNV>_dpCKTy;litGr&d$%Y;Bwxh%vhxdbkPtS)6wx%C6!uK zqD&a;Lzo?j2i;yE<2fsr&uI-et>FNycHtrK@25uCC=hS&7Mqz=7B zNgdyR#T)ahSoOXJ`_lfoC!^E?L)|n%Q>|9(8gN?K5LsvwHdKKt75bpV<4)Ut-a8rA z{q48GaBrKVtunOu2aDryOWusCRa$UZIt|#%Y?-IOEyYq#yPXw=^O7i$fjh8RG(}BQ z3#-k1kwn2Uxyg#FBs0*#Y)?U`CfQwbU&)bwYBw=JA+yymgXb!-qW5pBhIO%J_12tm z!H<#plIB?^Wqm|3qp57I^*@t36t*<*xKo-pVfmOFDp+r{`N2QY0jzPBS=|k- z&i=gKczOF;I11ohB6lS_h-Pk+Y{^v!hu~fL<2uC+F&l%H+3-3gh1=$A!=u3aiCIX0 zq2;TqlHaCX?BQ_`Vq{&7M;M5e)nEkbTbfJdjgXpOr8moB***zypHR2qh&OuDm=%dV zLd-Y0)m(D64Hp=Uxqv=jmVA*xflGA4T_ux`{oe2Wv;Q7lJpMfR(i>Wb2e#(4`HGCC zhL!;Qwk&F{-=6JV40d`5;Je;a_GM^)h0 z7K^gyY)?ilA?Uc~+tLLcOmaH2Gyp50M9Z0-_Avr3w>x2b$HtcMJXzk{h@~wuaqrcsTqkyu%*1a~r;=XJ1PTX|svI_=%%Pw$dRwNj}g!&i;Wh^Xidr zFGY|=8&xhcVcfO^a#ru2vAvKnB&=@Qe_0gRSC9cEd=nfwWW7-@IEA2Bfbira0!ggJ zNZ5#!;Yp^8s61c1O=F{fE?J82@(OTJ?LQe3Vk+Z|W3z=EUdyhbWWRJ~RO~DQe&iH;*bp_g@f#3yp%}{llUivT)UTwJMtzw^ zC3O`jm##6PBKU$8%bKYr_?k{yNhu>;H>KGUDuj`fX(ump)m0;ZUY<9Fh0bUIwYx1t zl6|vuv2sN+8?*+8k^ksvR6e)37gVXnjCos*g(e}6!&|+x@g_oq zXS=i7vcerWO2%M+SS^&Ofo-!r@07uoP{|Ejs96=k7F3Q;M;ya2JU~VnRS-%2r0+py z(175J3|JnGU@6N$#;STlRV?aB3-)22EczDzPUh1v-&%yzEg=sZa>w*$hZO;Sh-IT9 zzF9deAmjps=y&oE*xp(Le3jo8Kg*n~NUhxqGFCh(@$dkDK(X2PV#SF8E91`!gyp~q zHR^JaOjTQID0-|1iY)^@Ezm9hfLMIeMz{+mlQVZ-n1WKN5(R}?WtZG$KLB1kJAm6r z^}^#&f0Z)2Wk8AQG|!1*m2omSKFoGUgjR~gL}}oFpEY(9A1R^yM|>$mr!x(=h)pk- zjRFkS+@8dLnInB8LCSaC+4vXkv3A^K)S-fUMekc)dFh!I+t!wg{Ti&Y;x?V~>A?50 zPyiwAK%ogsDv(Y>OAyFB!AD|j+|Uat_E!0Byp1m3kFz51D9f4-{z$^3wk>s&NXWRU z+wzsz!nh^4u2u1hoOf#aCaTzax5XWo>t+`Thpe z`4&=m{9XkoMJQcg3wbI{4LTFvwykL~k_o4jyLraEmZC~52$#O2S{VH7F$n86h1Vup z&|9|3H`dCD{~}KL%JljZxGzBCFb{T%FIW^+mEz%S+pAqk(VNiOIJKp}DhR-njt;<( zWCWpqS$hEiwgRBTGpX_BPN-Iw!!t?>{Rp$5)!g68NOeC~8kHCUMvtF^X~4F(@q2Jm z7^Sb_y2=`wzK!si{DS0ac-0zaNuWyEfabn27YPlnR#H6V;e zzZ|^(>Fvqk>3?1R{lnqGsk2p}&#Ja&aBHrAa8`J@dth~Cz80;@G-Jfos~}*ShbQ-W zv8d9@jUQJL8lC#yid;wfxy+yjx-4ow!7y+;h0a$T?P(F;REJ4E@5`hKZ^Y9^I6VdU z_k?IwH9voD>#z8Bz@F_psRDoD0T@--&?3QLD;?H~f53n;Mahn$#{o?0w9Xt~ zHDhPrRNqt=jLzrF)}IjHH+R+k#r*EhqSwVkZMi1Ba+A3Bkd~0?o0XQ%VWH1>DM#9bB=aao557^b+acA=BN>QAx5NHWMGQ)cF#*Nf049*x<}9) ztYo;(BJ2>AebtU&osiP-)4f2P>JAkFw%K0>tq}3EyNj4@i;F~<=$F{!C(}+`IwI{Y zVC9>77FNoz<`KOQ%ou^dWA>Nks2Xz8LVl*YVBq=LMNBR2F|7{T90uuJuNe%yZ}k)SHSo(iqF=j*ddLpjwm)C3!$Y0O7~`Pvj%aJH3Rob~8U??NaYjmM;YMi$2Ue!+tv@kJA&c-jU~t8yWr zdQ=;L&6`%>X%@zo7@-N2o-#SEEvi8fCb3Barg&;#hJi*+U50{xoq-~xY~GP`G+J60 zhKeu55bfwEJH5WNCx(I^Qk7ZXqKo{@F4;8#r zxy37!-jH?%y!`hSsTflgKC!GYRfWoIBPxirAYOuiriE^2Gym76x=r#bU7g{U(lt$r z5`}T!i)l8gpS!kynHQThD~zmY@W2|4rz%;aO!1q?F_Ey;4LdT!V*{0tZ7k}FYpj~N z(-hh==c}c9$1c7KF3fHl3SD$h(X&RH?gwosK6HM6`zcRW*%hSVO4#MGv z9Y;wJAV7-hE~N~lTh)wbnbw7L;(HezEqR*AOz?in?Y)u1!A7@QEyUOrkmKXiCeTe_ zN?or7>i3&L?E?CT4M4v-`02yn!Z2kzVF20~qbH3D8%l=XmMO1EApF)zG_5nRE|5ka zw)a*D6C)~rg6Q|QZ*OmV5@(!jtz|L4IW*1pf3U0k;Lr$H$!Nu%ba_RHv=O1?;5Pv^ zi1kCrG1-AY>(l3ZyUO=}E`8j2*MUsmZ$_r|skFCtl~9F0gP@&h8NXu06*b#?f=OHe zn`#vX_F@@af$*X#uPIY~>+<0Em$SyAMScpml3nM2ykF$9CpQVQ@O4aI`=@iIh{;aLj{9sS2B>fDh!;dN&+Z?ny>lxtdc7>R|fKWmOk=`D!S$ZfGz<*}vs~bddSK^_*x)PR*OvRP?%ob@GG1eEa6j z`1n=u*pEyLF3~%g70Yajchao9I;$(oilOXq+f{&UqtW|=(+}^DFJHcWb#VFW@MQec z(ZQ>@N2JSz3+pFpH$l@rOK+a4-Nh(!1wdo8yqn0pYOR+PSj-inUOP9RIv3Z+`FY5H zLRT|wKq)Yd-y9x~PY>d;F^#cpUWgDne;rMP-!T!YK6$PDV?=@W*s#ydv~SJT)VtFs zxO%o{F?4V3)f?sBCAK45H}$StT1g2BORgFwFLl?X;^XF{a8B_cePVgP!&K4N+E_*1 zZIN{@zIlHDHt+j`S71onA>y!Jh{U~ryf+v=2tzk|zjfEr(0&IB{P^g@!R7JW;{$k& zHv(tLy*R9IC+Y5a7v}_;u+9C}HVO)Amww+Qzh9#bW4?f8_4yY6-L^J%m}3IZO01~2 z+5&+orM3h|Y)`JxBScu*1 zMRyUSgTd=rQnQM56P1+<6La1sX@)&q@63XNzT)gcoA^;DpJQ_84C(r_Nk)gEl$2x= zluZ5TqB9+=TRL>=Q}JwL(wNJCI>v#EJGxUMeoKcXf=!{O@YN9vqL6=o85Vhkv%5pN zcV&SlO}xP0B|A1t#F!jC8t z_`SCiI;$<~uj)|kWYbwBW$o)Xl*!cNpHq~Fb6(F1ovu|?l|k6!cZVc@nI%ukB)XKY zZ<>m{t{u{K8_Zm!TM90U>pGdB*@wusk2@~w!Ifh zsW`U^8mnJ4@ zS|Yl+CZ7qPR!T86)$%HGaHD~&=#}7Et-u%OZa5E=e}4xje(b|W z3rP!k%t(NaM%=Wv#2)Wk109Yo38$$fLYo_#8>q$bX@M4q>D7^Dbz!pFcAde=MJy4P-mOT(>ebe6k_2_cb59SUE1D?<4xtM)`m0 z@OL;5w%&vejHet-Zw^Ptf6y7g=4c@peP}p%mdc@rk|)7gNiPS@u@aTG<0BMy^=y`W zC&Od+A{B!kC@Z&>pbwaC-`N96`E^voA8|eLTR3_9{`B&AeEQ-2_=tTLKVKh>|91Iu zd~y(2e(j81fgCk07oGSTGQ;~8o|#b2pQ(pim&q5{Om_-g{CH05fU)}-fne`?M+z0AoIb+QA?N+nFh4r_H__;Jr~9D zW`^RhD&|(}v_Uy7mUL4E_055Nhc~gH251NcI0@t=c}Us6w;+np+^Z!$mW2qi!?-3s zYK!NS0&h*n(;-)vQ;wGBrFz)ccu=t^?De}cTZwXCoIO$@nc8Z?4i zUWVH4VNp6?Az#^k?$GHX6$tBu$8Qza*A-n$X`L^V5uG&ZlpC+#+uiwnZ@BjaK3{g1 z*s4Jkk01#vLcj{d^oTYdTPqbE+lr;xb`Cm;=BT{TEMZh5ncix!VR0m>3=VoWB`*Zt zc0U#S+-l1le`yiai-6{Ux`7nk7J+q3Lak+EEDKSco{cMs3>@Pf_g%@O;Qo)JckBi zas6#lrYNcKP^si{i}3~Mz=;+om;`>g|iS$Qa{|o|S{cx>G2;blB^I zM!r#35-U1^LGW*>HSXd+etXuJ2mcGFhgbs;w^@_~ECILRm;@dHw}q7iJOa0bodib# zx51YL9|3=bQ_XJMFbux?DR{^sEwX0kuFX;eDbS%PinX_8C={8FwON!Q(Mf}$548K< zpf5H`wv#j~FkNg>6u%!*7oY30&a&}o2B+{?ngE5V5ae4c&)^E+65(NM3rAat>7Qza zXObNAhx!Dr)zTory<;S8(8EQMBGb^`In&Ngy8M4@=To_&sVdN}-g>ht85HGE8I2SK zmb6*K)KoQGiufN)O|_ z1!GO6Jmgpy!q(hyRKyTNw+6Aj{pNs13?JQEJVrihDXtHsp=;xskTUN34eqWtL7LDnsHxS9#o8*eqpyWvWT1q^GCYe)f&#VP{xx)~M6}R{AA;`#wsdS~ZvOarA#a z+e;vMJ0}UY?O!4wlS6!deh9orOf^UQA}3vUlY8-@e3%@uIhuu-`10>Wc;v=YC+JFE z@c;YwzF#Zks{_E{vAhoG9j-mMm+UW%RLO4JFc7`_D+HZGxlSFVFmfnRAV3cV3N*Jm z254$*G2vE{QX?epw|7V_wjA4vE+T(8Z)V;se6N!Pzf@5P=^{y8EjL=#Q>K;E0@AC- z>}wOvg0C&Lb$6YEW0o7wwF=f>jdSv?amK$iT7mK%{u%1O+U5?yzaQJXLQ61o8^agg z8@HHFTNWA9vU3%jfpQV`(G))DO09!y~QLJez;Nt!_?pg9>+wB3j>c~hV&J=a8ZBja1yTliev;vc$af=xTWWyTZdq2bW+%WI3sULscmUGyy!gKb6 zDkEe-8^uTqP4jm{BJ*(7Yr}Hc3u8FOJ}j59bB6+x!V42+4rF7sBur4}BsBx6i?Hbf z4%SWgTJbnwCAs3Vl*D<|H4y}95rn(yBotoo)eb46#w%73DmZlmOSGadk<|I7leon3 zJs&C6ZnB&F2c=YBZ`yw_5P#37IQ6A}RKW)r>p(0>NQF+6$G#YI!PXMnvM;33wC}#N zlN44JX;bq+5_A6jyK^SroN`${IfE2=WTNT!{ye5B&1CF>j z*5AlmScsiQ13xUGks3WrinKBf-JX%O)k9yuus*>Rbyfbm4`O7^HuNM?6|D$in2HXk&%eSs z6h6E+l|FwXALX}4p7Z{E;t6ovp;>{F52xk?eAQT@+{8C2^eF@9Yn) zl2K3FFc8Pz^C|8DX@Ig;Xm1-ZSR15Dh)pefLqd*oX{olUa4MHX5`N?!>Nop4Yn=dH?Hj|FtfSA4@0IBKm#7Ahj~I7y7C(eV(^ z6Fq-SsBXxh@%+m;()f_A`QMjdNo2m(nmPxbprFv!EFI*?kQkA8x;pT)9R5NX2vQzq zh2U1IX*hi^jSY~MFw1RRnWptyJFi6RE6(^=OUFs6j9@3Va1I9kNv{;AU?gr)Jm1A& z@;d=OalCNCvm;patu@gr;Ng0Dc5?uCX>WgNr}*WBcEld=HaN#A%6N*yc(gSGc?1kX zqoMyeekCJ#m}mDt=XZ~j@6+sYI$K0cU5Q*zp6bnJJXyZVptrXQHd9)kPq% zt$`QVeZj`6bznIf$`-L|&J`EnZHs>kPL&h6X1yJ;l(z^JZyA{nevmxSX>(p)-f4d$ z!`6mf3|)qII6nCdIgyU3z4PG=b{_>(KVH5MIS9Q?*2btc89hDtB=CRnt zoWm#JRbV3`LE5td@xASo!?*1@gm@SE7Wpap1C>)RZTxun@OGj zpqHAP0~>$4kPBoK+j1;@-IvGN{Oj}Fwel=&#w?V~K*EjHd{tOXpyW2AFEoKsg^rPc z63_TH2qfE}p&katN#WV<{hPAF zX5`6FMapSN5I!r)8NzS!a+A9Y5N*j>;`{IJZp8)8} zHQzFe&_S0zY{g!=osmT}n2#4L+67t>8M`Hb=l2hp}SD~1)W+77=xs3j68P5*0W%m=nn=>^nFS909*q_HFbA&+~)Nr9*uf8Cw_Z> zz%^R0Vi*k?gj;+x+Cs~t?q{2tebW;O2xY5y((3>Jv>ih2T*%4(gOBF{>LibGY`o8M z;FA9K#dk~vdZZ_y$*O%uAoLD$B~d#btW#qPLCWYM zlsO8H9TXlz-QDJP_2Yi!TLqMq34(v4aIjO3tlCzDJ2)!J_=Pucrm_-w&@LbzCy5pX zI$q+u(Zj7NN~2K||I^Oo_^>+gZIUFF`zVVe1>>D>a4kCLa7tt9oMD(B`f1I?Zr!nFc%$`D!{ zHS%s;6qsl^cS*x06fang}m*aK<;=k|ONlG(VArFZ^&iy>+ z=Hjv{D#j+K3{K&`kPb4b5a?TR>%nB;3xsu3W=1!3CLVc?V*&?!B2rlKjYJJUj7Kdb zTDZvK$e;`cNSeX|dxZZ-20=1*SIy1K9UK)J{l|oKuPZD?0 z?)Llj&E5JYxQbc&f_vC;2V3d9m7Ch*7IxAXbVC(5Q(J))Xd5%0Fs6Blj*8e<^l)v; z%4pP{R@xbb;iRODW{lPD81Cj-U={LwxHY*H`|a#McDF`6#@B~{6&K#vf95D|O$dBg zDO$(nC%|hgc~#J=Ga%9Peq4Z@Kgkvfvwq_hHBWFrbH`!}5vScp0GKu(I-rdxVjSjp~8%OF0Cn z1K#I0?#_p{S*=ANB9@c{e_`kxMuB>mgC^;n!NwQ`qfG#W%Q<9RIZUVVB06hx43Eqp z`63i|?iW6j&RjBVF8>UHQN%ZWFPtw^w<_jC7914Xm^Er&dESxWb<>yoU+UkLZe~2rKeA`eqG>$Ym z$725580pq^RT)cTnY`)G$OTZKgyIh^lfw{zM9neV*C9yWPwk)sWRkS??#C=?ou%pd zLQtt5!(Gzq<#O5^=jiX~gvyu=m2u$we8I)>cJ`8ZMlY&X9#pJm@*(!e=u8wPrE#oVn?$02ixEo z8C&}x9>EP;a}@AF8Wb@{1ySlGm%757#WJ7O_BT>FcWIer5X)kx_-1Q>i3BnpqtFys zq*CR~a4AA4GGrus;P~ipw~P1l<)^uI<+3zeX5f)&NVqnNuSWs^2TMDRa`j0dkEg7u;6o4WNZEs8Txh8!)TlH9=OTv54x{2}68x4Zo$n)b+GI zDl)dyu9F!lEV&pFfjuyuv2|uUt}r<;`9v zmWJ({y~Z<*W=Sjzd|Lv4bg138IB@v!ELO-2cI2a@u!@IP@7u%bww%YJSh5CD6#4Vj zjqlx2f2|`sdb4*m=**7FyJ+HsjVISO?V8s3o_gfFg3=;^7H&uUzU#yDzRD6}CJ3%& z!v@#oUfUVy0%M-?7}{xlIS3fk=6EFO$ms%gmJ201W0Keu zn|`QL2vnn2-M(p`2Xmp&luE!a>HR;l zI2=oS!k9h?L4O6p3AgVd40aZrR6IEt;jP>1Z~=loLc?X>q}s6@&k|>}#-Mf?HV38B ze_ZVsS}+RXpI#gMiY`7}%<429W>pV$tsRAZ5cT!m&_??ejPwVXcCv<`=93h3Ogi9y z>Ab@({?Y4Jq4)!Jv$Gu!x;urzr|dX8Y`q7DLBC$D#j&izzG^yMeYjh!mRGkS_;%gx z{|eZrVTD@P-71D4XrRKbVmkeDb^CdKf4^KU=hkt%ZtO63x8{oh>hAs~#>e^JpBEqJ z*YyGFKot%G^F&0WMH9kzZT~ybzQ~gi`SVFL>|xcgXYW6~9NTi!NcKHn(NF=~j7jEY zUJL;;A?&1zA=xCu)Krpn$x=J+LYBO0Il(*d?|aVai@IAEE5NRcB97FTbHDZJf4qFX zTC8?<_Mh#rXY6tzB%6zrGx)iRijw7XRxUWZ*evIHwt;8yr|6dN!C)Lej7RKUG!r~y zXL-r9Snz_qoYRvxQq9?m^W`f&{#{KSvy(+jE&&OP(e+WjT;&m@}WOq?2lEdP5y@V0=MgJAv=eHv6J?}T3u6Ut;T<~(+fB2JZwJz2F z2F3?WdCTV_6Mf)vCiSMGGv~Ay@~7((XQ&^}HlQga%Du5J>`bI$-lCmEnR5kV1Gh7}QpiaUqDMO|QjmmKXdZ>J1@vToidBTlR2} zucYyJUfcrh9z5euFhigQZF`|n3LeQ#man8}B-&bn*=>BYsMND2e=h|u*G1M#WEco4 z4Y*$b53<}2qL*k)dFhMQdIqQ)nVPS&n0Ro@QIm~$4M#LqNiu$Rm53j(YZy3BQh}h*XMkma$5PU$N|rCGgM2A*}xIw!AN6|AC0xy>fiv@d;UuO_F4lx znYdcOCWN~J;A@?Zf8YwErAJ0m2O_2-o^q3#pfA8rN(o~XMVCCvBoifDu4Tz)97zd& z4n}8lal0-Il~}c5xhV2`$$Wdw{zTR|`&i!a<*M8?amTV{I)&W;fpuIC6&@Oe1A?)} zCiI`rUsbBA`4L#^p-Xl#XG6mG5mKBM|MGrM!) zL(Vovo{%+=?9SQ)#>pV;1q`4-2>vZ2k)<03t^z_9GW1A(vPGH)d!1x&Ha~T(P#Clt zE8rXVa0>SUDmmfE(E0A!sBUii1M9B9Fxh?6&NUl0c;lbHx^-WTT#hmhX0mxbYveQr zt{ilerP|AWe{*bR3nkp`Tm#!IRsZ0nv~mIN9d-@n$yj0wgR&xr)dMgHpcz@rJLSnI zUI4tYdjSqx!FKs>pwO}oDiFwdh>;^|8Yk~rZ?s(T?MAF7mvz*R7CinW(Uk#yg=aF+ zT4vD<+zxrXoGdX7SQiBZfbjNC6nTcxYl!pd9asyIe{e;ZGG{UFL!|nQt8FNg(a@69 zM}2X3k0bQ0#*wmOond$ed_p6WB?eXv3Rtv+>}<_G8S2mSJnc3>@>pTpM%0>Vami>b zstmwtvV1nmw0npC?eCUtjz9AlGPll6Jj1*Mw&ui2p(U`c1wjLgRNO z!szeawPHi|yw0Ae34{fFNJWlP2PC*ajv>h^MJj=X)2lib#;hSU$l{K}gh(n&1$(VQ*Fd(HLItS> zfB*Md6aZwTvv#>vwawDs!ObQT13`ci|1qXOqZG|cZ5U~Fwg45LagNq+jjuD0yfns= zpn6U-a4m|}#?mt=A>Nc%Dl1Oo-1AxH)>fD|kY zSeDGe$C8~;$yd!5AC=9g_GB^>Sze|d;Of4hQKQ2tP^p06{HopmEYycQjVI1@K8~E|5HF5abC>Nm-R!=R`oe=`WAm3?|_xI7Tf5h4j z651tI@X+#t@zrlPeyJIZ)niy&rB{7Mn2rq4l1>B1Nwy}GATx;j109F4%AGywAcjwwUOT` zD5EUpa1f_r3VJZrGp8j^9n{JS7X3Gk6NXLuH?3jT8N7{(dyx&O&UE(M+4S_HZ8#A| zq5u5VeIZJoLfrBa1q8(56&Om2G#@tt_Lu@!2x>E|{E3ufQ4%8%6Q{}be`=K%rE)I6 zNAc;!-phTn_MoQBlgY>9^IuOdPA>nN!Z-R4emx$&XoS5nId?z(soAnY?WzAn0np5P z*cW%`;J7=Y2T;{!J*lRujE1*hkUsKamP=7?>V>T>VsL^9GbjVv4hu6oJ3e}^qX|ss zRPq^Rx7?27=uB{|%k~hjez^e};n*d-_z>N=cIR zP^^p8ht{~FN6V(sW5-MCLThsoRWDM-i-Codn-wRoHQB zMji<#?B}+G_QI6^!r+@Uu+Yw^s|0v5SFfvd7yMB&#*+?{gF8FuNZyIOn*#G%c&m7Paf{oEm0lVsbOuU~wV~-F$c}+PC09qGp_tR4HsPfs z)_V2YIj^$Wg)!;XyB;+~)BB=1cX)O}d4gP!Q^654s{d3@sYP(HK+ASjB7uj&f0~kX zuCpLrghogYf15F>QWcnVRKuov-zjq)xl9P7I&W$c$4X%8Cq`esFv`zb-q#M)!QTzH z53{G}u>7M6#!*c?mDF^d4^||D9g{@0fyf3JNEh5(j~AP1~28Qw~WW^3N zSPF2zGiOM7A#Oz$*#^I00~Ig}lX2$g-|vOAe-&z2TczrhBBJ4^b33Q{X?e&tCPw3 z@jw4KIX`}j_B(iWdUkno`r+_>u%qq^Q$Mb5bc2}bpK}}TR6aSJw=YdF(FtE$Pgq+z zf1-{WJlu?s(1dSxJC0}fTF1t8E}|%_x^l+MybrrF#}z$#Hk^48#nASi*(VwV+J5Y9 zSnV}x>I&@g5=O+7FK-br&2AMc)Flm6uP7l2B*vRx;>H~_;6J45Q#Ik5=36aj+d_AO$rYUzUYi1}*Yz3> z(!I30DgWEJ=p7pLVdos8D=d`j;KBqJ)Q&2>vu$t&l8RXoe-#@fys5l@PeOI(90FPH&~`2CaZimXHCLA(9>fAw zUG|$?kdtkpnbUZ_J@jg5y7$Aa>LN#Lr@N{M>H8R_WaU((1o?Fo!49}(Ze3dF1OjTv8S{mg8~!u0Uq6Ff0|^ShzP0i z*wW3b0pFt2u7fe%>RTFkd)6K7y2A!%*6Oxgcjr#{4u$y!6g9+`-Lto+>lF>UndKq6 zg=2J=;776w`@=1daP^KJchlbf9qf1r{0<+Qrfp*YVYa>Ly${sdii7uR0t6HMG>T30 z*b{>mTFxiT>H4#8@IvcUf4zn{v*fss&G5l1rl##O*}y1)Wt7%L+@Vr8nA_-eW@a}M z&fLeTc?EhYpf15Nu-W#yNUa;y- zU8jJtQw`YAqr=z-*gdjWtYfbyUa`b6M6Kl#Yhlb)%xy~QCU;ji)fG;!;@!N~509@g z@5QYi5MLiE(1rqgQ|M4t0~-oHwjoB?DrYf-ebo1sa=0IotC5}MYkT?CZ1EiiwlDki zx{6i(dDea*N7Hl5e`Oql-*!Z7Cul!GRB;{UvhJxV23Bf0dUFTr)6{J`BBb;Vlzv z9T}u41=0lo^tt+L4*e3PUR9hwa7!B@5dclcFF#W|DhylYKn5D-k*>}Jg$vB-Cb-(M z%YLZK-dD&$HToOPN0eeDLdAHdFOYYq`JNHkCj3OlZT3NJ+j*`NnR}D=?%{0H$>k*p zhKVA%zS7d-e`kX0PSpo^oaOHQOBuE(ZFN=pa-RWT72Ewqwp`=vEC@9n0#-LyAASZH zWe6V-u@L;uf=!2k=IUHY*H{P>hcp_cJ@!^4RGY&CK~4vP*jo=z3ag&_N}C%d=E`vE z`*GeI|2q3xnvgrV&uqHGUemc`Owoa?mUJLBEu!91f6kRz(`JTRskFFTvLx9Q@PZC zSHjAw7yN7!*GFKtZ>LMViZC4P|Lf{s*OQx{ei~j+^taKo-TjL6ts>lpLj6FSP%-D( z8lM*Cf2#k#?)(>>RoiacI1qi;SIk2K%Yj_)vm?6+8V742u)A$qV6iO%TB0oON~Azi zNsJ=@zB8nxNUqbg)q^d~g>yS|7{9IZDhQ@$0i3~YE(~O%;DG-X(-u?)Hs|nhUuH_~ zQI`D2cKi(*lYN+s;hJp)m+)R$E)&5u#F>*^e;DucCQ;?0vA*jH!>2tgy}hhZx=%5Tnn43=YOS;h$4%VMviqWEvM}7P5qIH;IyD-9uf5`#kb+JO{~2iMk%;{P zTEbCN?j50d6b-er+2;N2YO}t)iC}b_^L8507&l2oFURq42}gbp(M966Mt$9EfA;zE z=F{@-!}70Bs}IYoCX#Z{0q+N)eY6ogmgxGgp=Cx0ljGZ2xb9)PIq=xr2%%vd$D`%udK6F#Vxq6bX}bZ`^V4|hgk5Io zksyP`nGu})NyyF6okpzbW`2rne`#!UZV>#fYDky_R+z38-C_y}3O{r+76aQo)JDji zGl}VJM9pF{@%nh$N`QSHt!KkFTn58e++-*30_p; zkk8>n(02p}1PmvBqK7$(3_{urn9t`236Fbb$IJ189k-WNg-vo~7LF$iq@gtQiFoyK z${CN(y8ur;?#tZ;hyiGm5AVgW=hRqE7O6AZ^028gI!HExAtAP;1oH*-@;sodgS96f zxwCkMyyQka)ARZI9ijJ|e@9L4={2{tmheXlji=y$typbu8#faEu3y0q1uPYo^3wKj z5YWTfvJwYp*g4ymT+tL+YL}7-?~+@RD@8$m{LKuxT<%&q1#?@$)=gP5#Vf(2vQF?K)t}w-RVnV=p%nAE6>ed) zMRkiUH{(ghD&e-e07&r)n?qO`5>t%8Br66c!B=ql@)KGDAIK4ExT(;$kGA2NPP5D_xZfJR z$8bgktxRvl2wRKX$(<+R&nzH#(>c*2ESke(ZceQTPrN%Ao@>m zDlfCn{4}pnvg8N!u0y}DZRDl$FbK|{&%ujM8G89If5K#lhdo7bA|(DlbO!ro#~nm= zUf+CN++5wz_>a{vK5%M-$K@SaaeyU3(gv+A+-QquyX;C zUh(_^e@_FvgSwq8AOlz)79hJ+j%y_8o)C2By`VYG#+~h}mDit3A`6vXkZYyN~bAZco_H|6nIOUN++7H#8N^d4kmO z9-tPZC5={?Ll`xQA-4lmx99WL0yKa#3t5jIf7VZ&L13dpq@%m0(!f(#NU+=?Ik$Xl z(_E-{;mND7Kl8cEC~1=bzBjzC(f*sp)s1_lO~su{%E5fTrf+Aez`f{(abyrdH8>l{ zW|QQAoY#=D;-httAm*bLHOIJ?2cRm-H1b7A_In64`l3sD4DgF1$nRvqZ!JdPd+RQ_ zf9`&@Oli!K2Hgn%Q-yp1NP)8y$NGVL_>RjGJ#p-iN*9iSPMDRp(j5}H0PZUdshRXyf2S;a z1)Z5Thu#Js_P2Mp(-$v@i?D^`66kQS4N(-?t>m8%(-KyC{ETdC#T4iPy+lZFvx3^1 z3adNv(K?WFf>j4m$dfYsUFdACK@dZ5(fvuKnTVHkX@ho0(|osM#71Irqg4(UYYE_Y zlA0^u9CfjeR+eEn<;sQW*2gqS93tuCYz`l3+}afI0y17#RTMkJzuc%+vVB6eq$MBAtl*O>{^rtuc?h_e}^0Ij>nh-M(B->BOalZ|M>^Iskzy+- zT407@W$=U@^{Qo57wO8YOeehFk_J zQkeM@`(`CxlZ8hn*1IrVe+_w(+Xo_#*pQ@HXi3zj?U!b~!bfot9H$S|42aX~E{`B2 zSW)1sBt<>lk&1oM*rZ=V;lSg_grtBozY7ZyEk$;kMD0)Qh#RhS{(#H(hD(R{KUS|{ z7E6xukL z2p`0O4*lB^e{mMtx1cy(xe%*n6TR1N07XANHUAO=NM7nqYv;I~afcTOt>k2&f&6~i zZt0TpzU`Qjz3tF(e`I?yk90Q*Jb0y{iR)c-U|YJh=aljQm3CSoXHiu{2e)bSgba_V z9lJz-Z+c2Xx?Z%E0{nWc8;I%v7da-ZZ%Dw+ZAa28!&(8mNX)nn%LU9yx$9a6Rssc4 zbDnTK_49?Wxsf&W3f4o&_lb$k-4NZ*7-;yhnUPvmD@r`Ne@zp7tk`15N?&_O=>#d% zECiKiSiWjXXn%kiIrFn|ulq>bT_RWNaeI#uNBpS}*rog|*z)G;kwiNoZ2aR_$q$k9 z1~Wu&$Je3L4Z879l4M1LwlYki_(li0AdVX$v6ygr!VBP| zra`JWX^s7f-6(>a#*@i$eY|^tAWJMe=!RYjP-oA0fArC@LKVo!k5pZ;>%xSP!T0#C z?M8I48n8>k-#@zdXV+flitHZU`~(=B?D6AG`1Sf?w1VsG{yK9*THtRx!2**;d~Fx(#*-cto_d601V*v5q} zE@%ea)3i06hRxHsIb#-Dc1x)mnP@j-7rG z2mlyRa6-bp!awx14?C05{{XdCZExE)5dN-Te{m?hTFxB5rAUkVrNO#pE!J+s5?~)} zFQ6sLA|{anMI|%Z{P!Ly%BF28^-xS7ESdM*bI0e%BPVaNIP<*znFnWZ8?ziDmQcWV zMx+7}fr=^IY|=>Z4UPr>kTvZgSmXVm1J`85D2G3UqC8+!!Xz>yS9$5v3q(4z_-i2z ze_d202?QeBNVbj@5FSFp0?Km?%p)OFqL|=a$P!9$?4HpFheI>4|1yBS9JdN>o`Woc$cZ@r=_cRe?D_z zJD;(EJ$^@8Yd5XK*pjM3@}m@*qW)>%WnB}>*SPd>%Mj4Zk*~W@%I3hh!X4@I>L?|1-2`)m+s2h&Np$t!lpfG3--i>%eEf(c zxFn}j)EQTp2sM1Fvks|V7kAa5f8VO+rOVa@B@5c=IAo533md))JKln~F_Y%w0ve_=Yq!kN*-MWR=oDFw`?6=ptI z9>OZ9&+xEPdtv4_#*e6Le+QmFhmvjrO(0EwM6RDNU$*&9VG)Re??>vuISh|H>r$=K z9l1yGCY?Kf_Mn-sy9~L|x4~EypJNIfh+(ztC_2b+Qbf8qo10p#RenUzsAI*H%} zzGl)wDsu$-FS&7`Q*ar=^}0y4T9ZuN^Ci9|Wv|af0$2P_qJl5lp%M}eOwu4Zx3$e% zp^I6gf2B>>F0Jw$gf7=cE;9#QEg+Wyl_ke2)u!N1YBhv1M^3T_iK}4u@x#UC=j%(q zRY2)7?qJ0&e=MYRM&4Bp7qF5pqc0SJ)s+!Qjurv&D2fy>&{7axMDq(>lv<&3v{F{* zIR6v#63tl@RrY&oR{^F&Gyl7CW#zi}vlk3&_2%z`B8!v&y=3)Ih1Mr!evxTPRr`9p znO3Q668po(#~NI_wg0WZhnF)?tx)@xLO~3FRC3`fe^ZpX3Owh~dH$EUlCXSXZQnUknA|*iJcNpo3u8d4xe5V-ohOUHfO?2pvpe zhezWve_Fvy{Awslsh01l_bi2&v2Lf+*%DprfF;S=i@wA*&PrPB|>mPRUL#%ZC z3bAapGrW1zua~r+$fvZJ6Z2SdAVv|)?OvJdZ7u6j;s7=9vCL^WvUnJ8LOc``&1B@B zBAqb}-N8MsVLF4s1JCz~v+M50tKWK{4dxq~*ad5hZ})LN?ZbGHWJgr;nJ#0pXmbJm ze`F-DUE)_N;{TZmYtgZ;Ol>M|6C(e5`3d1;I`&mWZY%SVA_eN>`Xf89MNLzZjpevbRsjb}5gaP?6t+-;@qdvM5V zzadqh&|13bvc23Ibd^yDGe|dPD#v)-i?)ld38~HIQ}iF5lg&=UFbv13Z{nP*+$M1oWN$Q;5qZZ$b!*$NPyS==+pI@a?nUbw$SnCKY z7dg0P$GC#EV=E^zLG)cPD2-N`f4ESJbc0cb7$#a=`lj`S#9~qOH7;(jZZRAuO)_-< zeM^j?Oqo(RvADsZWf+@-A~aoOaE*XBQu9NnsqWay?0?m&P@mOz+N)OuvNBs*W0)iN zL_GsU6h&k7#_8{J^yiapUXk~A!L%|DYyDj2`edfn9A2_Hj%aWqCh-(bjI@{$GA$BK)__XdK` zOwc)21ij)$*umStDg2usV=eVI}lEc6HPfPYNFQ;2MZ(odD< zDEX<6Ccgo{DUBj3i4WLGiz5~SFMcqcOtvF4N$7-8&+RCjuNqOCJ)H`1b-bP&$y!B?`Qh73mgoWT+NhUKtQJ{W#p7dbzwHW_CZebRK?y> zx+JG;)S$J~>Y&zesK0;cuf5itQ<8(&xN0;vKfRK0%L#AL5gPhDW~zMDR#b(8KOhF> zwW^4Dt*cln6yiBS;5l886?#*MCZkm$rgmFy2c{m+5s)Mr_kVg5lDhqjj47i=Vg}xU zO)&$9O)T)iNqQK1qYJYpXBBWjrP8U$SWoVTU(}-Jz z&+1^ZtgMZ@v0=VRo%xkfxOv5~yjj@EqW3{iMIz9vRX$T{R^5oa&+el1!X4|{i6(Ro zmgp&{1V|EnX+xJZl_wc-vgiUSZGLmCT=#hfoEGauEolX^2HHk#bvN%EH1|Z5tZ3O% zi>QQq)qh*%GBC>Awb3zhZlIp<fL24C5*E!Xb|Wn0oW+V6CUkkUb?Zq6Ki9Ne*8T zgyn+ANO8pHLCLQF13iuud>Q~v*dYp8x zR|}Osu!5FLr7G-7oHAhgOC8sS{$}_fk1{`s1ApxgO%;%cPN_brn_3jnZv-{lRr!)B zlV!~HhwFT8!-RPTRKFUQ>Xa&ARLZI%evZV-2I<@^n2*+kN5*ile^)ZC0NIjv z(v27JwTvzjWxTt^QMI!=%eC8U&~(k%z2cp+R9ZsM;D`CZuo-}RduUx$^s<=JFE-&( zXD3u&ws^pc6<)r6-&n&fc{=Y^y1Aweg@3eY&5aqP1$mG?j~E|eCTZ*7xtdg{vySrY z{PfHF|6{>oWSNmKRM--bF^(hkVwp@wO=P4cj}AFc6}Q3XEP2h1Ey$emSY~ahzHxQU zcTT%@ATP_n<|FS$^N6ea^R|YM-Lv82{^{V&$1N*codmfy1)m@SE#d~!BIYEo&426q zp{R$(5y#5%Op3SQF$=sY^#wOGwVu4&fYpAt+jUnH``WCzxO&O!GPmTxiYr=qyWc|n zqe7L|#kcTgsIIQ&he|J(2F|@~Zf}-f(v>*0@2o1_SyexU?58MSnpRu_NrY#T1TPkt z{BNb#OKy%^gS~mFf_7Gv$=|xz*KJhE0aGp(mO2~DzcSQb!ej*TJc`ZBHxrK4lJ7Q- z(0o35PE2OS4s2?nX6}?GYNil1TOAigUK3Nw!s*rHdGW56fV^f3b?(OL`I zHwQ9h#ebmO7Oc_ef(X09Q?1x|cL$9{CB2=&ecF3lOlR-QS)@uXxl#;!6<})uli9S4 zTi6?}WFiTIZ%LyFZIk0+mN`{pkPz2I`PA2qcj#DdE_jRiE7}I>G5$$1Ju!}voU(~R zTNMJV)W+hc-v=UeGDgoe;vF2JJ?2%Xc^( z1H*c)#ROBUxvQ16QRUZGFD;!oV|8N6`|))SPk$sL(HRBpmo+Hp&GG#!fU^0Z4 zb&*Q3roH4hTi^{DTl+Zaz!RHs6!23T6bVNKx2fB?*BhUkL>5DD|0I%6a+l1 z{ZGsv|0GyiR+F(D!cw6oD-8@Zx_)HtRD+Q)Lw}&G zo-!k%4oc|GJ*!Mc760E3^`azaTJNOi1$Cfs=_g}@iW#X!i-p1kGZ_7ifF6h0K9q3D zl=ps{`puqOOU0Mu0v7@N0N$qk{i7rl@*pfJkrj2|ZIF=wrW9LmtFoW8nvtqVY$CDs zh4=S_nqgFxn0Vv22dCqlHl*xBI)6l#WDwU@B(w`^9W8@l@a^n)*yqA3?|MkR3VvOf zaQ)5&Z8+x++<~wc;H!_;>DLiHqRsD7{5IyM2xCFbNUe9^wig?{2Mrvmw!KSCllw4_O8$^fY5z>Sb zova86>10K$l+HpWsCpZtrhl3oJP80T$fC8CfnkfT z_ZhX(*q3SZvv8O+d}i9RT3Jj+c6!&A`|Ydm)JOCWtyFDK+b|IRp0{{41jzz_)f;Pb z+s5%bf5q7&hG0y++@{l^L@AanCvNRnwUneC$>o5+k;E7T*aIM$iT&TZdk^65Z~!5> zX;Y2IqJX=7@7_L+$EWM%y4TzPx<|eySIa0P^C+eSey@F&lXOnBrpA0L=$q6<}?X^BFf0|oIm+C6MOc8baf)vzf2hiH!tFt1nGLiqQx>N zeiD*63TTo6;$)t(m7hmxG9v4k`ta;FqIZ1X>sQauf4DqHP@Kwq>F4Cm&qx?$Ig4gR zPD64R1%mV|w#{J&o6t9rb!e z*0${YV?ftP=FRJL5e4O+M_cy2E%J3y{we-?mE@Gofvo#&zN7(S6c0OYy(hve%2rY0 z$46))(nct`VCjO7S2k@18GxW<8~=b-prO7*gjv@p22li6`W7ATb zlvG-v@i5Ej+6}h05F(9(Rs_J6WDA;tS0_2b-m{?#8NZGar)0qSGYDVE!u5Nbhg-_H zNa1D93Y(a`bOcN3^fpS1?2Uj7Zlb>i&hjWwQ~`+WsO5bocXLO>A256f!u|?^V$KCe z-uNG*Rk0!{nv8gV2PB%4BKeS{cgaxh*%ug!8AMbFv+LX0ee+_OS}Qs1aT z1Ckw)d7S!ryT$As3arAp@CWGeBs>5I{3QW}GsGS3hT2B_Q5z@f)9%TF=I4y1OziZA zN9Bgkz4GG@M*H0pd-svOAfq`5@DgR`A)mwA3Z-QLlE9gNqoN<;HCQ|#$IX(du_a&| z&YZvrc;s5uBJM_nPN5)~j||D|oR?TKU4=5(2aoY?y-Q zBxz2vV!ciwIe7NNOt+kT56As}}#8W9^LCHSOav0U*?Efvo@ zdb<#Kqko$?y83pz{!Qfz0y_Dz?!Z8ND7Gj!ytf7xTQq>4r$PJg z2))_I8Xc^ocRkCpG>9OJK_AQM$6VC>K9_KR*mi)THu#1pQ$;Fv3^2*zp<30ePy*r- zMiT%6D`t>?q)EI{aLOH!O~D2znnUa8wmT?6k>%-1sWyfJMZxlB8*<0|^;(5+Za18x z{&0(l$%3Zh3*v>Zq@y|^#-Y(3DmWniS(07f>8>v@wHCB^7HuOF2NcHg#lWr|R0b@6 zi!{wmSE{b;lMX=3O1c@G>VR~k zk*-a6vPw0%mNj`-h*|-^oy-eS*&}RTeYQfEZGdgC&wTcFKF1i;MlqHZ%&P6nVa*3Y(}T&NQl8!@Y&#fDG~1+fu0icADywJNNnUkCO+qvIsI%S7%!Sr}D(%dS z)nDzzOdU}-W^`QJm=Rf!XXUtV9^~sogbc$Ql6tC)w4*r6M;i zJ1tQn+KSuG`FCZE40(iJHkVOS#vcyAmH62tG?{GpIx(=n(CAFSfTx~OY*N6(wCmm!>`aC1!U0`y5dP=+~n+A9W z;|8w;iv`LJf380plY^n&5C$iuey}9f8py%P&Ih_7lM}LY>&Hc{)xC*m99nCv_NXM( z4{x!F-roAgsxMo%^e~az%rt^>Cih!vp2L9UG4*dL0YxtTWTD!(O)-Y6##U&H8Xaw1 zV~IY8(q33|q&gF@NNqZVX#)-Yd090zg5t@ zS(?V$G_QdReKt`o?wYq$f^yEks?_kSucSOrw5Z=;PQuoAsxpj!(?Tf7f}s0F|@z0Bhohp1!J|1?OP1D zwd7HAT_X<{$M29>lvPW{W*C5g!H1EzeB!r?0+#Y1g7e=Y*;PBOfqDsGf1kX-yo=F= z&%&7d>zt(A!g&{eK5McIUS^0Y&uI%Da3v_3QU4DYvM6hGm=lAEWMmewk1s4Wmu7}G2m)psc^0i zp9iJ!!jUnrJs1)9oVo0b*cL1zT|m;`w(f5p(=xD z?#*`%V0JgjvKh@2go{rM5kSOzWXEX7q#7*<13;J-m~R~(9P}ldU2V7dIIA>P7qGa8 zkja)VB(Ok3DQBUqb~%?;*(hl1lEirY)A_rzx0kQ3{xSXAkFUq~L0Qe8>v6G3j|nRf(!3W)-fdWiLb}gY=AMs!$%bU*aeaa@8LxqBz70J>^DM zJ+y*-S-r^N#f7dbJ(*Cu`S=a~6&aluF^U8yZ+GAhn5T#=Axp6*t{E840PqT;UmqG2 zNurqnc@AY*rFI0FEz`R?t^UG~l6K<>AdO}ne6-PjbN)XqVKA^7lXhd;B&EF*1HmI_ z8&m_{d_*lwlN2M*t1m-L7lmx1z8 z@y>I9(YCG146VUdvm2I8MB{Fta4faCyJPO8ELz|#v=WXs5Od*e^nSCjbrNZBu|YT8 z>@%(+yMS;`F#2MDOH5m=T&EIEnX;?vc>I8qgNGqjnr?e}qAsS^5Syo^2&00UVSR_w zoYfD6k8_5X(o3V_V4Q0;!P%sq)ay8d;8m%AYqWnx*AxQV;vY)74!S;~~7%qSQj9%^bVj6Cye`;^NG|8&4vEy`Pt9R#zE?}+jnc4QLmt&nHEDw~$5A$40e8-#JUc@$kj6*U?b@Jn0Qv9$8{;Kheu0R8HDhGUP+j+S z#nT(-5%9xGltMAq3i6aw<0~`-n1|i1=A?3l=aB8Z_s?C7h zhkYso`mWVQ_&Lg#AR>A7o2PJ^m;$J3z7Uf0EM!o zo2pFutJ_J9wqFrsG`LF?ZK;}nv6;a^8hTqahM8xbIJ~3hkhu;-#(Vc>MaHY zr+u`-;qC9qfJ&l%F9uW*^Z*0WH-DJ{xkUb@hEh_u#ZXpsm9otjN4z&2j3=N?ft6{& zZ(H(2cMA!!{q_JF@YGoQq300mNY_DmEpbE!WH2I^SMR15&t6PlpTE3++9n@JbM8-= zL!<3z;sO05DTLR^6NwBZOgM()D)?LA zf$aW!(wFRy|B&_jgOLk@%s4GL3IgmgHJt+n8`tZH;EZgC?`zP90iA4=RGW!a43@95W;#(MhwVUo0)-7mTHo8!@ zgiW>cz~0!aiBb}+c06sTF$0T8^0_zY5B9V@BeB4ijBBngR%#WmW(U0EHNmdm0;?F* z=2Y2+Ck$&;S&P+~8=98}7I+m#c9Wq#TjWcA*+opzi<#)I@h@+zpn#9~p8}9cPxe}D zo`_&QUHNNIGg1J5h3?RBfq83R{Bsp?^*RNnVdbX-YsjGWtXIoc~TI!yE>2+U_w7U~;f-ee#1JY+xETe84AQ!0^MsumQtZ`!{I*!u}FR@JfWPTcM=yB$w#C*r{v&fJj$~hcs96*&*(A~ z#`4`kk35Zk`w7j+>%5}bAfW}>9I+=~m%PsMARljw@=x=EksD3ZlnnC8O_7|PS0v7c zBuxf1E1}_Rlo#W;O7bisla$8r>@uNOtlslyyH8#oJV8>7%j!I?$W>gDVNzB_(w|mz zNUoCV9Ns_=%6wW3C^R%=9Iq@aWbv4m&ir1632Xugp^M@^~@*k~1&_bpruZ#RL8PbxRv!N(SmE#Cc z()fmd#H2#5r3QW-Ppfm#siMxBqeb-?#sD`#-n; zcKe?{{1w@pjweY`Ufg_rHjb0DQGcgDq-hFzIwCtsMf&-47!S#2yc{PLzwuOj5nq#U zK=1P+i8Hb}j<4g3_$v8TT=;72#W3?;z?&3*%8<<=+>XWF!v}q{(#pahjmwf8qL3DT zy+Gia6v<^=;XKI7iX1$7y|ce__-g<3@YQRwMOHUv6*_(V>hSQ@3n;r5F8kuy9u&GC zE~JP(aFu)fYJcy^{^_fq9UeT}d*WkHlzR436av1CQuoejJfy{8Ql-?ae{Yn7ipV#A z>=jcwyguhrBfN6CES|2oNSDy+(TR^jkze_$<110uBn$fRt30dX6yA>Fv~;kyo2S!p z1_o|eotI<~56-El6*?N>guJA@$}e~gH_I=l<33Cnu=E2~*rF_peSH}hV4W*>gBc_8 zYQ)gVQ z;FQwLhK%uWyayZ695Pv^tib9FL|02&^9!1RdV(7?wP-T!gNFsjn=w00PEXlPDyD;~ zYmJH=fgY>KO$c81(5EhK^Or#094NfN7IyEHG##z43+{SaeY}j9K!e{WSyFL-*>`&z zs{GppyJ?UOt7(yWrylN^ZbkIfRn|#=zB&g3PBOrwKGfGOVJ>FXsN3Nha`&_HF2d<7uek8( zaJdr+sf6{HAss$$jX?r*9*?y#dZSAlfV`;3MwkGIh;^+^VCu)2GQjr8v+3p<^u`qF zItN!ySJu{+ye%kzze}pu(`<*{bWo9T9Wa;{VCSl!fLdvBLw&n;Uv$2IM3-8OneY++ zM~7~=_I6!RRq1t}f#=uyED7swpi99E z(jli`PUs*RB`hL?EnLBpmGohTV&nmyg6`yG3@9#{z;sN(F_sa3(o=Jej6_gkNVtUr z=@k^9E(Iul32yYm2U!B`uxhU}eBeSb1}0{+RRvPIJ!Pvwwll*mwi47pss!jaUt(zBED1k!R@*DW{W3Ua-j6InBtlkrFN!9b$MC*JteW9UnwzQAi`tMv>1iQcg4dY zqs6HNo0UZa&DKVewTvbb{_vPZPLCCx(+Ijb|g*2Olw)8y^S-j&^nZqy-@vI?gZzj>Xtb*_!!LP zes+dKT#O=vVE)lhFgO;mO@M+f@%Tkqzi}?v>oEjZlGVf5(o*Zg>Iz`{g>FacYirDF zlJY#Crb8irci9YjS7vXS1s(uUK^rWst&0O?U{6n9JURUK)!yl;$AU6dmB^dNemuG< zE%P9yaUtsfGlOXwR}^Hpn?vuqVN30veg*^GRyyG}PhDa8BU0OofR&Pt!ZG9K_Yf>7 z+k^@eaU+t(Yi z!?$U)N1ukDhYug#Ut9X}CrfLqOJBkLUUCVb8O+C+4sSGm_F{l(WG79|&J$WB7C%Vm zD_i6eQf!-U4t}6w!RJ%+*~X`P0^s6{;+GIyoPc& zOsln@Bd;3L7!VHNATI8~m9ljpTLbb}Hep47{ODeCq9H}A9amc+5M^|3E`Xz7xZX>$ zDQ)tC*IRFkJTQyxVy_z5#@Tm;rtrqoAfahVWtVs@5VYO3U0lNgOxFvsbqcHn%SoKU zifwy~+z)ZJvO-?w`6NR9E?AZXETov#y&K@HbvLtVnzogx`J}#cHYwGV!?!Ul&Zwn- znGtB1m>DOL?qb91Hi;fyn)`ohVX$CxAS(8!NjhYs(pX2h$P2O}64IcZl-z>@{X2~* zyP=nRniM7CjG7Zy!FCH0rf|xdY;AcboX(%vlyel(SVM1XEgtZ4PrJ8Grskg527Ut` z41@UIeBAK~#7Cgn6D7GfZ*&>Ch>G%mp(5d~@=YLD>O;>xDa}FijBL;Z%*9OPz@6$D z3uiNHrh!==fH4q#Eo}c?E6?X*pJ|?hCA7ToTC(FQ!5R1P>=mPr2c?kL<+-K->=*rim>Y*L zIuM)%+eGGqh1(42u~=+%Gofl9*ho5xh_PZ4j?{X}B`4mw;ytU}h7WKNT)PJ=vBkZA z>~@iTz``PIXOHM(_6h-ZX+zFCvK~Sh3@WPo`{KT#r$t_3P#4K{Jv-cP4hN#9lSiFw zgGV@5_wI<`Al%KE6+aH^^U!Hg(=;OG! zm`+f?W!nbKBQoH`QVr!65ZM%VV1q0!if4_LpP;1f-8=6`B024+q1=Oo_++(;=;3E}YVAkPl(vN_vs-*euNG z92PZ?c@J^ErSX8)1T0BKI_HteXIo^c+62a>U}bZwMgzTNtNCSrM-^R^i$RV8D{eX0 zu8O3hX}$m8ffyR(7W2iMNFw3iB`vB1R^BR!$p(Kx+$Qp20?^G&@y4JsgK2h{u048E zb!0MMTamccv@Hr6kM~KYMg4EhBYz>bww?obE4(NPIo>9Q7 z4&zAbb=1}E)S3IR`wpO6tPK)hlvWC1*_HxOkqc6}v1QY5ZI0$`XW(t35gYWjiHwFOl2pLNjyZq(#}+Wq0saRp(O#iW{1~QvF5jk z9^IDUj-fT}0Z6CQ(e#+7>TI=xiq_r)Yt|d&#gnZ%D%;>d9%yLdN&f%hN zA}j^v0pcEibFU$R)(xGsaJ?WTgdCt-+ObbEeixGVQzNY*$k zHezRblhT>3V;f%Yeo-hXt%e3itIpKgnVU3o?}xP7ppc9mofvb(wG|fJM6*JSIQQf0 z8q=76i5s>=t&KEYj_X7{w?qm<%TKD!O!Oq$dS47Gua81O z_h6#!3CmxdCx{_Bu{|S$_r$vmCqPq86L&%I&z)?DYN?!5m_Ar1DYlurTv8%;po45> z&Re*9oZa>2BKT7snzZlHau840K1%|NynINzNIR0-?$D_tYoe(DmA6hrL z)nhgM$=%J-*_JrKxzSgDZXaixE8BJdLU}H{DV$aK7qc1L{O@4Ci=18#9Ng%Mo*u*{ zg-@Ge;x~2_*RLaz8L^@i{I|%25w^sC$auusp_G^qRoxnE)CEJW+nF&foOoJ*86{t4 zqLoJjV}_rPP&Qj<6nxq-Op!}ih_HpImVPI~cB@IN1pa?Uq>)MA6G#v=TIs*?OnO11X z+_xHtn8uxO$m32@o`QEu<3g@~=I~(`4^-s+U&2aSdpxE9Zic7yIw`AC0)fscXzT%7 zy?1)fi9FBo?;ReNQpYfAW+Oa}&lqKAGBU#1W1xW|HH-k%yhP-)lAI-%G{e&Zc;X7f z(_J?XaAfkdj1%p1-Ezl?_-yY#7e3xq%Lu)yIuaEeu_}%PPPW_K9*=#0dYEB#RW3hR zyA1HkcaP*=lng@G+#^yF#T-6_wV=%i-Pbxm2j2>BfzRB1nP$veNlH$X+;{|5Z2)t( zLcOi7@bgQcmnGBHR5A}wNSixVfq-+8q1z|jXfOaqo zp|l;Xt(*A}E@2DhkBARH+DL*HYcbf148uSpqlP+_%%2c`B#yGXA)vQk!dVorA!AHz=1BzAu!2A*9b`NrVRiaiaT- z`2!>|$;+e$C)UNSLOH=t19}7!DQ?(~yl^tJ(_KS*Y;_0;zfdSMO0AU$pBZay%~0D2 zkkl`Ex|sW@8H+<>sirmR*f;Wv#Qmf>1Pw6=!NWUS?xD3GqZLHI*!5C;^8-i41j5=< zen!aITGBOEF!YLlr*C_4Yn!nXWOyVP3plcpKE`&P!QA`rv&m^Ud*(7dB-|0k>f2|* zX{*b^AlrNe!HX$O9tv4(mZNZS$U&7QQ4 z@sWfU>l8~*tW-`e*F0L6pQiK(ZXmye7!V$2$Ts)VC|~TglcJU*V+hcx?X?KG?O2U` zdr+otn>`bp+ioAr;(D_0xCWHeHnX%Ue|Q}8dWrn>W) z&3UHGjFDG=o2jK5ck^44v-VDn!*DFthM`d3mo@wu&d!k!Wjv=WSuuRvHMAG26l3oF zSiC|zF#!}NH8yDly!<*FL}3-nCy^Wdav!Z=n~LwBJK$`_n-8t=5TL=Mq&1ywvKs0c zYgXhH)ceyI^gvKp8LdWu*^<SRmTP#biT=+(+Q7{1h~a z_jTu|apdw*?j$XjlNTn`Vyk_Qb1+jF^LA(Kdl>Tfqy~D>iLA!IS*>2!$KK_(coUU~ zz1zZnyKpnw_{eEW#;LGcdFtSo|8ssk@)dY*LM5XYJkdoyh>W%!=}#?F86M%c0cRD9 zG)`E&R^0_0cM8xW9^nQLPa(xXeU%e&^pbx#n+)SBp5@EsSxsAw0`u5%yWZrX`Xd6C zmfN4~)xV|d0gOE39ZHnO=Q8v!Qd;ERS?TF2vwh!8lOYZFwl3GY!%Lrd#EdQ* z$Fu$2?dR8cEXnSugQ%xdzyIzxt-JO6?|$oK*ElE(rG5uXarpTY{`0T==TG_1Kk=V` zzu-Ur&VRn+KY#7-FPVd!yG++_h-DyJRN_>yYr5B_1&NIpMT&#f5U(N zng9GH|M^?~^LPB`U--{Ix}_mp!I8m^`XD^QLR&(SS+urQJW5jETLpzdkcmF*#wsHI z?;=Yaah&0F;>GLf)oA@%HhbNCwKQZeXVXw=bgyDBh!tw z82hNbJ5!t0Z~}+_r=MPbyYRoag@^==0e_8F+iu%95PjEI%oYwLC8}K%`xM7%utkGi zpy(Dz-(n-6rIAHcCIym8Vzl}99a7XK@?|5ykVMU#nR8}1^wp=TsDfa29>6*LD7c24 zmk4yPm@*)9Fa^ThZktQ7qqX!W+u)Rpt$mcnaLd*l1$>tVMaogZRqj@9bmKEk<$w0t z+uus%;PSdGA(hom@l9cXi401fqRiu|`})u4FW>IISSXjJ zDVTvLrXl0nD88-@X7I#KL0^c0mbFTe0%b1aSr7=eMNK3+M$6A~TSu zR;cDdQ0r4>w=PYCYWZ(%s@in#bAPL*mlL5|hO}gwR8{hkXQ-iYVKf*C4P&6xG>NNQ zb#GX03R3K?3eSQjL>IDQ0{BdhnTF;y_!R(ME=7BtdwUJ6&A>^>1ubYyZ6&7OwDq`A zXlf&70memXXJpc+aE-o%m$>1#Naz^M3_|wnxI) zVK-##)uvRDvB{(G>P%nXpXt@rj2_@jhlxi>2C=#oA1t0byqDnrHDdNS1T_Ej5Yq6*Yo)kB>`(2+q*tcqKd&>j8LH55abkwCWQa6FMlqF0` zrZ!gUoRu2KO7k3|KbBlSIDbk#RvZtE?A4Q9z+{dU=UDWfexF%D)bNzar1Jqr51eAOvbBpxY(==qcRmpAo4o zdyXb{BE7#RwP~%73K!4=|4E1+-ouDw5C4kIu#XxNr{f-^cTk=~96PAD&?K8d z#oY`!({6%<`@_PSx66kU@_UwVtC9|(=-pDh8~7icHa`??T4r!KZ)ir?(XioG(bfB zbr*~PuE%ceb{SXB6K=mBtbq;S<`^s%lo_3&GP9&;U#=fAG;|g`w2M)%gP{K?iPh<7 zR9&wrzk$n#q$M6tJ=0TNLE%q8Bz>wQwEcehb;Cu0bb@3ueL6W=_YInF^dBfXa(af{ zkrKACUV{GswO37V+c*%t`&Y~c31p>ejJ-Con{L-Z7bwyoPEWB>P|`>umr!g36@PH} zX5Q0~zItC|MW@p{@4z`cWL!hSa|HS=m@*&}Fd4#VK24;U(_Hi~OYwr7t$#Q2;f94A z1>8x4BI2mvDseN{x>|D)$?0I}eKj5Mx-Tn?PZfQ3X^fgf%k( z_`{$QEQdnLRIw=}N=|_hlIfI^t;_eJ#WSMiA(HQ%k`Zbh*m$2F9_~Qle}5%v695&F zi8*CRn_;e3Y+SR_WMq6PBfUM@B+Q;zG2LSe#x5JvC*>#gUza8)Vob81!k zcCbwGkwQ(Xl1de$@}NI}H*c0sRkCL=c7yI}*7D#_mIbg+od=akn17^ua;C4sv~MZ6 zOwzuq_W;f`T=fPdjLI?~r`}*JPJ$X!ismneqD!d!pw1*%<>*&rEE<*n5R+=0n#mE2 zBo1D+`gQ150>Uy$Pz4Z5nZqe6MV~_-5=LK18!2DDK6vYS=YF>`4)5=qj4iXbc5kET zJb`Yt-rw-9EnI6{QGd3{_M=B_#hduMi?+79=)(z7bJ_4H#WP{Imn<5%{x|@Pl6e8J zT4i3PGHL-$k$L+?wNY`uncsd~RDPpK&^!5Uy>7uY>YKuXIu&+LoXl6B$5l}92r^Y*KV4cf*wAxs*b74$X+_=e%5-14M#0!m|{F9$KjXHS zy;C{7Yw5CUh`V}ho_q%hwTGWGZJmDWY>qw)clh2oD;khmyNv}zhSz|z0`c4#5gh2U ze)Cq*D&G1+wtrIF8sS=U{<}?`KJ5lx^$uH|Gd-{cS$B%+n)BESb$MBuO!nSLp02sb zP;nE>XmRi}A>g<4523p&@+C;mT_(RJ^;OxccU*M-2gMs}bK5rZyMG1jQA(=O!%pt5 zJ--sicCMZ_kF(u&ZX}O}A|Z=oic|?ovReDU-!2{`K!1XII5%^gNi33BV0W=^ERWw! z$J3pi?)N+7dvZGt85xBUCGdCZr5Q;^BpXw5vz&~QcnQz^2k)MCU@(q%{U-V74MQ4} zuSrH@Kcp!+9`PsdnSkl|$>day|CpqFy3s6(h@VWCX?Q=*h!+PW3Vj+gSU4Uf>BP&z zByN#uM1MVaHV^57!~Jq~e);+45~t!=W@9fS3y+Z?WLX*xXBiF1BFx6{1}I?3EcGcY z6mX2YJ3FyAp$v$~De9jmlW7vuID=m?OCs9;iAGbJ9_{SR*s5Wdk3O9un*HlpoP`sb zKR8+g`H>Tt(X{_%mQ80_e*a>?n`{};bPlrPA{B5#Rzw#O=;s zJAVYOX&TPGjFLu(QXqul$auptP+Xrh7~mV#yvnjAP>!!S^>}?x&e#JZ9{EFJfplt= z@iA)X`;=z0G$xbq5tRK_jshFP7JzAKY&K4l1tVn*C0E?6rQFWN2?@N+!!?1T02s{I z=0pP8NTr;wD=3-`!B~L}i@8V=k3G1iUVlgqwMa<muZ@$0@7_BtB7!e-A)ezB1^`YTqv1a}Imw~Rv*IN;SPeNc20T|MZOpwWge?TIFMs3m zn|f2lUt6i~dr>q%F&f~my0vq(3cO2L5gIYdk;!FP-!;Rc*f44Mdk0jeohxvXI@T;eAFCHH`BpDsgUGVGGfj+UEJ@)is4Ofq$hrp=S_U zO{N)hb?jQCcGl;LTl?#M7=xP$vmo)GS2_`3?PrKh-Le~ym^o@Gr*5gQDV;-7 zpkv&Qp0;CKRJ!7PZ3v!Gx^7^6Wqq(Eqr*e)wQ*lOuyS=6a37AIa~m%{Op@q{yYeTD z;N$xzbP*f7@tF9SAn=?5Y=8I=(i3#)0p(uH!*l?X3w)nK;GbZI;d^nMWMoLmI1B0LcZcNW_TuVuAru7zfum8zw1OfPao-S)od3MLKoCs1rp&nb>~Ba(z&c|Kbs2S$E26ECgGBYB3%a z@z%$eP})?MjVVx)^#}FAOKrkpxxYA2p$jhYe*uD9|eNwoh~NUFJwfvFoL&w;W7pdQaV6)oRor(lSQgwUm;GvZ0BB zN}e=Taj?MXG@Ipos+I+kyEU?C(B!H~Y6C(Q_J~-gceieTR}p1C)y;vJ9T?-?*X=YW zn!P(c>X>+szki28Hij4QQ*DknbsZ4{3Uz}FPP}=bOXjZ6T1`e58J+^<86I7V9M6kp z)l$Z!y>(DzPqXKZ>)<-LyAJN|Ho)NSI_ThXaCdjt!C`QB7~I|6-Rx_zP^iF?7>jD23>@#%T#l`jN=ZFUSAM_ z#9O1o)IljEq6d}h?ofhfn-#0!o|)9UY5cN)>G53u65uNzVPab6A9c9@{Cz&{}3r zJ`gKRHwQ?_W+mLMzl#}=pk&z(J226mf-@}7A%*)UqGh!(U>VsrIV8+t^V->>`alxW=Anu@O8STqHK9BF)=>-|~y!4Rt8}0KPZ0 zSL0zn8*|HHE2R%UnwE=;Tc-swVHAY zdNih=P`|T(YyWAnx22sMiMqx_&&MJSYWD)Z6M4Rn`^=fNTq+s?&?3gavWCIkx2)1M zCX`c>3qx20r1x`T>Jog7`dFQ}3PI}_&7pKW-rgE*J)p5X=1;9Kpe;k|v6*)6f(Ax? zG>jH$QdW2~y=vbg51}vtxgzakl4z4YwQs_4v7Ecb`nN=3&`53YY91V4-e_DK=tCSs}P`dI& z_`BA`YD4WVFJA4tRIm_H@b#lvHJ2`1Fu zHv}GmN7dU0Z*=QlQt{=6k~NmvU66n6_Z+$TIeg4X(D-k-u#(4+YOlEJ)3oPm!9Q(% zobgbd2K)KxfJ5x;T&1>jD1At|-+YGDL7(&h+-5bC{5Q1O>IUpUylSRHl2-gclpw8o z5WEu0XDwRLFlG9hEbbLe#r0W6C-j1TCZa*%F<7npF(ufY)cw!)UxJl7{t@JCIkrE(Q5v zA^6dioj`9#YMb@T^yuyVGaV!my{BE9x=RZ*dB-Kuvpf0=X*ip&*UxN0X)2Puk?oj! zR=V=_-|YQ+$f_Kz*Vu9yI|D0LBT7#o%0s|ts>0GV=LoK@)9TBM7%tft;p;O#(-N?< z{K{C70Jz{={)j^Ow0Tz`cd)3-Hh2Lct-WPeD5NtH!J=Q9;Sm9P;$xlPP}{PE%hbzO56 zGllp(6=c0|L@u!nttAbC_8uid0~vxjtdM251Jt~6+~%3X{&HLzSD2*Fbsc9Zg1a3S@TR*6a>iEwJu0}|y}|(_BNh@h%t8l+Bv_H{#P32p z6sS`QDqrJrnkNb@sLTn0C2%H`6?AKI-3su59H&Bnv)xyHBauFg_&k3(p=c@^Wr} zc(pSfz+soIJ0YQ6M~A*zWHhgDqFE_tVPz;VF*tg%Cy_&dzDIFl z+sY;>N7snOZRZTsfQM~f8d~$rttb9!1|{Bs7^`v4ThFXX(4xheFp!X1p#;)S@w)R# zQC35=yhrD4&1E)oc_biB81!jX=IW1yn>F2Cj9Gb3JWpi(LNdp5Uy z-z&qL6Vn;Tr6CsFIDe&FCk1@1EryV&(7nFk;eiWG?BEW$n=m0$8a9)V36Yd>Pf{H3g`lrgkL0<^mz^;Z+FhvVy4L0a)?N)XNpI1_Nx=%JC$EncTW% zXx7wWb)25)1ErM@I_zyXCEpgXL4_|x=8`xU29TzkRCkpaf;Nj=Vk{u6{B@4d=(a2v zP=AjRO3af{KO>g~&OoChY!;n>9YHGNe~Yn{ctD%mtq3tedsT||Y&O^qA0#HbT@%>a z0DlG73qtdt*=Dvbc?YC&+Hmw4YW&QclvdHao|cGh<)t`sZWwCKCeRDomggOjQLL*T zm0#VEfyvhOs}@|`1$;5CCYawyyp76uPiGdjlOS8t+__&5VjlH~&-Fuw!UkciYx5f8l}<4YO&K8({j zFkCd8k!Q)Fl}x?gO^vVshQu`nhG}%+)G7=;GN_agqCMh&N-of;417s81aS+C=%DAS zq&wf~U#S}@t4sb92to7RjkZqvv*GJ{Koa$O+aRk1+jX0;0LDF{Q;Dlh!Eu`|j6Y4$ zo5X|!Fsbxs1_1FkJeD9+`+)8k@VL?Iy3ly`TwU@CadS)Nz%m?GB4}4kW(b0yqcbpP zrT&s6Yp)SATQU2K{s5L1rf?JdoBglKl*c!j>2o#ScrbYp>M!tPy9~)eK@cKfwx!7< zK@d#zJaMhP)-)f~-!Zv{jK*9HNMG(Ze>%R6Tllb&WFYzs=7jSmhq(_-Le5{=CM8n^ zLy&&^CCLzocnX z%bq@Th6e4Vz4#|T>o3}dTPZ_!mq^`Cs;=6z$KJK&NdT>rY+;qP%`N+XxwX&kht$m2 zr@8-l*zg#AJ`$1sr8P{T!M0x^3)cSovAZ&Bfv)?%R zi$thjj;uGBQlVDRQOenSR$eE`TT8f8{(kcf^h{IB3ReRC^9)1EG=xm4@kkWf$`yH( zZB4jiHzsft84dJieCF4=*(#olq zsw#mnX+Xsq-_2O_sHdaze)(#HyK3P##|pp7T-9jK5|LjKo1KM==&AUk9@zMZFZeUq zJ$!fSN81+2rq?R?h+Q-gbf>*wTSxI@oi4}+Wvu=M+ z{{xL~b(kTz>*l2ds_o84uOgPGtFy+wOVK^c`JpRf4RRU@N7@o zWOEk?{VAYW(?83*%p#ATY3_1*o`Zzi?Qdcc;8iE{BNsow|HTU4CBzrsrd1@E`xWAX z2(mt*fk4zi=j$ZFYEq==r2g&9;aqx^c-7`$I##|~{zATh#7D$C!5h!B(d|O|#pK@{ zTa*!B(dOmsZ7#0Uhe!I5iA1w)|AW_Y&u>@bq@uEtS<@ z48}TJI0afcKUzi~7UHgLkuGsJLNxxkG}#N_**J#OK}$brXS55ttU~HExxIh89gHTg zfApGu$Hu)(o(xGgx3I9VX|Ok{0hm{;>FnwnhhTTrV3b(O5q9`}PobI)qY$-`hS5Wx z0=nrzH1oNj?c^51W7d44iOp;>)6C<)gTbaF4T{srY&L|re@V4LJvXgm7Jzo;NaE!b zhj?Lfej|GY8ED_>_2P|0d~7s19;7=9@1|$Rl^JUeJh_Qn8jw@t8L9=H2J`{z2!0db zTtxhs|CA<1)<2Hjcp75x&r3tW3Xpya^7)2e^rI$1;(6ouUBH)N9JwipJZHubPKG*# zT%Vy?t-5gK&M=7%GqJtg+7h$dpNB@4#+1Ivb-t`LLi#A7Pn1qin0zFQ4)04R&^*ni zvucc+9$sb9$SCh2VVUUx6rGNxE{x;4W~+oRJPeyp6BkSGKf#ksUKDuu)0q|yev*Ga zH5-rW*>lS(z7D+Ykk`jq3ChDNJjv_qLJRvz+k0F7rnp;J>`Gr=JZ$#NqQdPlJPJ91 z`A+9@ciRZ*@Y?bwdZfkOk=PMoN{?`~(L5~Qz`Rx2S-9tDFRdF4n8GeKg0lE-rC=YoO8&X^=al>8s?!`jl5O)rVdHBS<}&Z+Wcc!iUF@Po#Y_*w?Ff9 z^{}w7PEpyOfuf7m{Geqj=JZm%51SU)3BgoM$Xu`$sAVMt`o=s)&gu*`=xGa``o_xl zhpv<;*lIV8YUidSV7zk8>ws)M(!tetgSRbZ!zM`tp5!>UpS0zBkK^{CzUDv;CVWj+ z4LUuxMV9oIq@zldpnPbGQ-A;=Rf~VgR~k`n-YeQeMow{LaiiK+Q)icR+4vJ#&LHFg ztJ>Bl?UPksj5B5yqjmJC+8*sxT71*LSsSDrUCgmo>sGFVzyfI-X~gs67>p|CJBc|g zWI*g@(WU)eEn%2XY~L*UT!5ELYcpeTytgx~w_K24nURdpF81t&v1%GBKZjK-js1khlr(=cot;{lwQ z82$_f!wh;gDHQ%)eCO&UZjAh3ao9W85pJ9dJ^BZFo}Tv})hU`n9{Uze*4N1rEQGcaX@L@S*Q zN&D$j?2r=IaH?hS7i|ZQ@r0*C_(CSAH*$hf0uKGYJq~8D{?o zkqML-2kw;&!f+TdDpL5kg!0RqrZ&v71-sY-q)ROydyKH`)yjKlrj0Xv5~^hwuu*!i z{gLPR2A>SsQ1e9K^%~a06LVCE5#Wxel)~GhLatJZc~$hvqX?c%tX@`lD%}5s(6_C+ zPA4T}9;U9u#?QwJ)UTB$>Pf^YsUFwIhl+=- z@my^yNwuPhm5Mo2^3WK#Xu_6ftWD5CXI;NAy6uFING$0 z8{}aY3%yrN+q7E5n#7cNR`grj_zt6g17htgCaW`O+VxebmI8Tqz8oa^Rb{NdjD&Xw zZ}~JhP@QFHs566?GO3138MwjG8XPqFQ8N9Wgq08}74e)kmu%RCLPAksZTTLqEyY0Z zEtUU`-+izy<77uXpXsHq5-uIf{!k)$+JUeCESj+RRkFgW0@Y^J{E~c&%dIHG4H%h( zx5#+U@^&RuZW3wZ3XlRUCBK<6-D=W{{Y4mED+etT#6o?<5~a})2P^248xC+(UE~sf zptk1BhFcwh97wMaAvXHPwiz5*h0rw!T6{phiat%`bneUj1*~wD3pJJA$6{=L!w=S+ zB7C-@*D5rFB}s}5vbG()t8Q~$9w?Os3+N#F-SXkCN;lbPIwIXu8zJ}YT@JNBoi#&$ zyvwS|+XcZM`?WdEaX5LEJkVLnY}PMX%lkkvinl9C66_nSbkF7I9$i%<1VJYh2ggd~ z}W*xEV?Ju6>K<&6av70TY1G(g)bU<%qn zl;gQ@JI+B$5?=0CkLXu}1vTL)^WrnisU4!~cOs>%>8;IX3l~IvMQnI9-C^`m98KO3%ERX^S-NIkYbOKVcN4pp z^W!nsRr=`pljhqCFkh8;0arslO-_H5XY13X-X9Zk8W6bhw|1O|m%yJ)vwXC-+Zi)X z9>;>#gJ9ECNUwtkkWnp8@5u|5Z19OMl;IDjyc99GGeWI4$Ypqqdjpw2%UXBbsFUf? zj!uy4U8SshaLEjH;8g?)k9WaW%jWo4)WnkJx7*Wb`H=IKgpb@}_YjRr%<{+0&o$cS8%U1S4bwd&zJ{0`-2F@z;T^+Z z;De5)`)A)cGi_35R>|lNdIig>PfvASIoh$}^7p(ZWzc)tat$v*#-(GwIIE@YVSVE@+F$!d?x z(~q7GjUGTrH>1PSBsxWu4!h*;zjb5zqDT(k4Ms;d|9uGJ#Vc*S5%tJ>wJyfeZL{kK z&ANNpN?VQV^-dV ztYyUBTmC4TLW~WSx8f+x7yT<6c9dYmS424NQMF_PIfSwBFOQ7{x~=&9oeL zvY0j?$K`i1tx;XGi6MnGv6FfHqUvns_fClm_U;mtueL?xb)GvTIOpH4t|ED_^XV}I z)i;;bZ+HQb-Nu=a>7+7NmNu+not7p%;MBJop+HMX#0SR#U~I|&Dq}_ zWLaN3-EK@z;~8~k$cL{veT|wd0s^HaA)cK_IVS;(Ca5j<1y#+np#ehmNO(BJtFPJJ z2K$XcQyA?I0%V~aU?gywk z9+G{l<%3%taNMY3#}cSy1p8rpgtMChczJb>&$kM44EgN>dI@?hgGF$^!JJ7N) z+8Sgjz$l#%7gn~Z%}Mo#Q3ICJx;x;6z+_uyvvFGTkXIdw)*qroo&$EpW>LnzXt4mD)vh|*YR?d>u zN>@^GOe|m`J;TLhw0JJ}+^PZLo;Hmi*x<>Fs}Olh`QZTDCiD)%2h-;)r>jKILnEd# zHI;J8Z(aNT0P4by8$SWX?q5H_{cKvN7SZE?PzoMqditG`Mdp}B&EyC{Zfh2SicJ&v zzU+IaQ+(9Yw>7VH{4>UE=<)0It^e2zWGLCP{4}Sjg?u{i5GE~&Qd#JXV=d!ic#)R| zeHzZgahk$3(syuKyzc6#Ei7(Z7>ep$UtktsZW=794>g#4aII!QiU^olV5VEKy#u*! z*$FoH5|f~LZpaz*Ur#q6Lz>FtZyTW~6>mI3LA3u1W7t4>cJ>SH{5@{pF8|$szlvaM z!#oPhE$=Dg6|}Lk3*r|TvXjD?s5_f)q4T_}w@gRzpbWB@AM$ET7Ctgk0dl*ANjKqolac zP9D-&*zxs>yMiLNt%hBp*#I4vFq&;MnMloqZQxfa5i%_wgRsBRWr@2Q!Cg&=c=3vD z?!^6Gg%y_nZ$tnq?&ugd(&j{IeII)MIi@YL5)QNVGL5rx&Q-!cNbsi7n@CSPRcOHv zRHq+>6=r>;yJm#|-GMSowe`&ErN&m}6!(nJ%63IEZsU!XTi2F~Jc)cse!za4Gm6e6 z;0C_Ifdza;;ybDdbCD#y6!|>`l=Fqpix4!OoeSsYKP}KsPW4)Td&kJtrsv_AnN@Ru znbO_m>*}cJ%;^~Gp2-i+6c#?mlV1ni4#-Q2M_Hjg^3?ll`>@U5rp)Wty!iKozvk9ryYU!txoG0P zGudMIF`f>2%(o!WxdQM|>_j+9VJ9*&S!^{T`Xu{@+kGy!ph+I~ixSA|b28{qh4&B; zo9Yaymjv6gJ~^RhVhOxNi5Z?it#pR(g%_Du&M%-zdi{aBo*t~NE5SELSxxp&@XBK= z6w_EYCsDIPWXAFo-KDT$tequNMl1`Fe+`DZKa4RC+$*eoUQF8qo^klKcu~iW7_4^A z03r!mQZFIN(ifX>HkqzIpViT5)lGG;1w*R2hqOT1#y)+iFZH+Xo7+7yToPGj*w+;ZH!Nuubs zG<-5HMLn6Ck=<>Cpv)md!!i~@abR=DNH>7OvM+EJ_L8WaGTc z4yT6qk9hooeFDt|=Wnt1`QVZY;B&MY;x98Z+fLum&LmGs&x_m>l!cZv z*9I54!ybtlzeZ~OkOOJN+DR}qKEu|B|wdN!Vh z^|XzJG0wF9&^Ce9df6+6YCI#fi;0+S7iA-skbKLK=6FZzxqeRrZm>GyY@|AMg>HUF zHumo|;m<1PpE?ssYQx`LJ?}Gtpm8*T>i9=^;SkyzDfy`4`?=Bju8R#>aGo#rdnM^v zqpL#(@996an2D-4CfQl6lzL0BRWEf~)daZsPv*1+2R|l%#^+*aBw&ZY4JDpD7)W4D z8Gyx#bNccX)MSQsH`!sbCWv?;?BEk+L48@`NF@?qW=TEFHe>L$U9Id_FZ`qcb7hjB^0(qy4Fd!pE`wA;p8}!RjT-~-@gB5BDPiPga z(x(mn)avoZ@|glBLg1+zsLufFKmo;)8xluE`1~IyDGJtb>jrxSA_5vO;Az!xKfY{w z@Ti}Cs^4Ma9PPfpwH_T)yj5+n>G`K5fruJ61|t^|dh^ZzY)yl9U|pkZg-tb7Xoe;K zS&3_*zOC$QK_k<|<*5d`dSxyFb&5HB<_b#A+|JaA6Vdl*YE9H_U?1XrLNBJ}SNpVuPWDj@Lx3;T>B(=cmg0xkB9}Ye=AlCoxVPzH(!DH9mYrd2$oH?zSaXps6{~FRB)zqi9Vc855Ek#Yd z0uPXXFRq@~1{!P%`rVT$gPR$D58Nnj{hczZ%BWOkx^sV6o4T^V9p!Ayi<2!BOEH{9 zt)896yMzE53}+|0QP?f9I5NlgX1INf*v-=_{M+kTW*`D~%;R?NuYO#j7;hD3l$GOQ zWu1`Wv`T|SEOGPmE}fXTV4p1yrHcjeGN2T?l4okN{7~wkJwe@J=?GgVtc)9^#dHaK zY-jW$l-vlOcF}s~pXQv!5F{ATBHqmDqW%FF)sqW=7$4Mb>-FNn$exN?qx(G#J5&j| z5g~se&M*0XSq8h{vt@*_O^Mt2v>?Xg^Y?qIM={(r3JkIV+}->W!oCr)Yaz2@2Nh;! z?E0|7=CkjNGfP-Ky?<&MTywnUFYnaCxWrhov$*xDs_P13ETqJ_fmKDul?zc4q8}EJ z!pw|7z$$T_vPkraYs`s8jIn zmC-d!Zz8g1uGm5X`xNrP1>kci{6|OD8fG;ZDDndDc95LHDf;?k_M@BFeE7GOuDkSe zSxOcNfqO876hW3C>s3h^W9?VLKhB__V!wC_wa(LoD!YF1CE}^9Kwg*KokbVuN6N$w zSVYI^{S_oK^7~p68nSaYB)vSJ`lL4Wb4O^;6q^yYbU`Y)lzu-Tq3W;xpQ6_8l1ge) zQQ+4mhPVobce^a?$R>|v2}*tL`m?c$8bqe^w$AjT>uD`%mAno3M2h0_f>L{~&`_UW zIR;7ebHrKM^5X%*N-o#6L$1QB+}CCq#YCNNd2xXpIl8vH&pAd|w;(dpAKXjj!q4s0 zp@`8eG_;7L7HtrXQo4%Bw4K2ki#$nn~$f_pYcv|O%A z+Zs)vrgv_*nA(SWT4ZL@0}hvbVPd?Mo*6$a>L3uYN7Kvoq`&3(TO_?QRR0usM|Ahn@ zL~vVbGCc6I$yI^Z&s73d%Kc?s!d&eUG)Y6rWi~NTO~z_4C06iIw%nKa<*gx9AY+xl z8Lil1#Ac^@CrnNoL#u@2>W^eo5MT<~lSZh7m#&THwGn){{9@{Us}*r=6|UIl_BdMK zE<)QDg#>zO-clp$tZSqMD{#L@`19V#|NXF~_GBIQYr727&{7B9Z>u?T8pO z)qLY5h*a;0zRWVEFbufmoN2I6jpp8+)0BB#Vt_5)1kF?IcYSS5-}rb$y^A;Mn}pYl zWSgosZDXB{0rlE-Wl1lehz4AKq35oKKNKl-Bl_YaNmZloW?>G$(3;g}z7p1CHq3_c9iQl9|!jo+`KF^d0@o423 zSqt8iy)iJtI0aD}DX!s8+Wa1UY6VLiHOXxk;IhcJ45WaMnlmaDO#-lR@yqUF!IZ?c z|1^s=ryL|xVPEEmZvK^2?XS;?GmzUDz`9bf-`dt^M$p4WBsfHHXRG=Tc)b(%U$F)v9u_~fWhnDPR6W{n<4__HBl^r{}1k# zEj)6RD2LR3MR;*om={3lDBfgtT3t?X%fz@SEYle05kkHMvGa?2zheHt#3Un#pl`rI zJx<^+Dc1mBgb=M>6z}ux#QC8#glWzI2$we3n#dV3Q5rk?t3NO(hYPGwfq7kXh2Kg` zw-;yaKC9og*&iF$dq@}oBl*SJ%pQfeXWzf-vNpPH@Pf&xO|=2TV(bnvBG>(_IJKbx zLS7Cr9kSz9>m-e(d9LNcBSX>^P>6K8u%JIOWdR2w5OU_80-FrBy6|rk4VZ4a5?t1M){ZLm6-JBGgK*#kyWyk;mEzBr8CLCn>7%c(Jlq zHA$vo6*iO?6F_r+?_++Jt|4>uW${HoRARz9A&*cYCG`O;?cIxmGt>7 zBIqt3FRKfH>CKezfH^F&x#+kAXqA6B&Z}{dN3;` zJ@V>~?H9`#Uh9Vrfpv~CHly@Elrx8zvTIHh@}liBrQv2?6+*wQo%uH&W`aAR1DmqN zCmq?xck}UemB>wvT}ni;m%7xTSfImrZ!s(mZA5T)ogywvf1S|KWtSD*|4@Pv?x?{i z&JT?Na3I4-0d&e48Ur#gMaYLe$*?00TO04j=K3qo8y>!&e-TU|vsu@rWW}q#{>~>~ zBGF)j_gj&}^k<_}B_b5)Q&8qe`k30F@ZbWCSQkx)F} zC)Vu63M~76+}U)jPKA^c{bgD88%#(jF6@ue+_AQ}9!ToMv z!KBuJ}hk6(Y8VSgfV!N*TO>y2MmNITe7c>X5IkI)L8u#gF8ToS3!#t&*r zXk0PQpLyDd~Pl|KxS3*cMxWDqvUSP-Xu&nsw6ni!$@X!|AJu&@kz7pAnKi zuEEP+_TXk1LhYhS{7oBtTF>UX1wAHCAl&FDBLD?_?j<#8W*p!nUyc@S>iY(z0CmP%U&2&hoq5 zNJE@_;)_%cU)=By3{bIE0@9qNVZ%J}!GE< z3(MOV;@S$^*2-}a`cv>BsRlo=#=DW>(~+YV4{y?bWLuV6P{ zarE+e<%C58IgX#evyK01D~2_O0;;N)*r3@3)!GX~p`jgitPg%y7tnueby5+nw6w$eP4O&Lce&Pdk$qq{usNO-|A12?g^Va*g9gE!bnnrW> z=c)FU&Rt&_8s}v_>&MbZS^lApZf5%OXndaN8M+g1#u)$Is;@l|FvM+DSiTq!iu^hjte)oepa8W)tDmz~0p-Sc00`~amY zobkVJ5)FE%RpjYoeP}IKKUNc{UlM@Bm^aJvXRN65H@BZnt6|4is9)&!eG5)STMUTO zVS1Q%%nRW}$McFGe30%$5K`-|@<9K77x05!ZQXt4tn^%V-8uSR9-xszZgrzJJ_mJ; zCxDI#aD#08)p!dux|u^2Km$7IQgthbZsHGbwC)R1D(^x?e|aYyo#nUtLeU0~7E@Kz zO5BRXkNwgPU?Hl=z=-UzC^&y5N+N^Q+tPa&eFXINJ9Z>^96U%e#BR7{J@oe11Ls(s zFBKQw*TV-Juj>z=H7|-c9$#;4Ump~_u8)ed-=@v7-(ML$pO-lJUw~9Xh0eD0cTsM;FdBRcA%E=S6xOazJOgw-Lu%ug&w=+HJ+!tyb$1q05ZzMG>$p*IAd| z(Vp(@!tr)v^W466%h-DK;4F?$oZ!0#>J8QR3HqY^Ew->EP z3NAAb&NJC(MHipT2yDoG)TF-~a=abbJddp1>a`wKInMwWMV;$%A9d;8cIF)Kn}|0C z`>mrADHqIyCLI%=5l^6w!B50D_WKf}lqrNP*~Z>Io?%baHx~P5qh=}DEZHXB-JVfT zwdMtXzQK^i~NGXggl%qQP#5WlGUi)REwkcHrbEip1H?LvGXM@s*6qbFh zQLY<;n-ng?ET)Il@HO84i(4iZ{$h#LD~>a!9V>UguL3j5qmL&E+@MU5$3(H4E9583Oc9lf$y#SbaN7q_4+Zkhas z6xlPBqr3LNb42Q^oE}qr;}NatHCrTL*er|op7JRBkQzF2OMk<&pODHa>u7qbKskEM zzc{v+yQZyla1Fz9M<30syl~CQa!04|Ex%RNCG;G1jl4zXSMnjlluq7%76AWtjs_ul zhm2?PBg2)>c59ytS6&D7=p*Bm-gajn5c+}o!Q#otb@A0HTk+vPL{HaX;N!~&%ly?f z4vU-mw$%W4R;CFBlH=>BdZUcz_|PC~Hp~3k={J@Wr(q{nQbw8Au_0gtRiN%jqz&vk$0&^QZXiuTQD5*^Imw z3$I)YQ`TMC*`^c;+*Cc>>8Vva`_z&RMsz$=}{D6GX@8;K>{D6GZvjgZBIpFWR{oei%A;Di) zSATe!URVFi{I>#pdd{Q&S@NG(1Is3a_6A`HfW+$YgEtTd#SHv_B?OQt~hi*Q9?y z^XWw`Hx7F3*3KZ zA$U~{eFVMa=Y8Nl>rDkCyj2~31ih=>8i{<+K6mDRV0bM}euTZ-9s*(j`)%ic3oAx= zX>%VQ<*zzi2=das>TBQPUw(W$dKtKo+2HUNc<#7*nS6)@va>sEU)yfIb`J6{a0QUO zHtYy(hE{@J>_j@)PyG?xmhA*=h9-h2yFPcns*%`tje5~GgLthMp>baqZaW8D<0Wlpgs`ZabGzeZU1Kg{BPvH3a&P$H>8U0Wu$2&l}SpN$-uj75zZ?2j&O;yVh&tqwN*2vEBKQl+kl=54eVxC4ZM?gQOQyHY(9D8v^!C24+ry%w7htk^7O>@I_W25wC*R8_^pR`k`4;#U(96$ z8g?B=Zl;so{uDB5UAOGHS&VcnPiNCVtzEbMF#&!a%_Q;Ky6G<0PBh$F$#gXGGX8Ya zU7c>Ecl+r2oOaNUbZaZ~E>I18dc1R@wVp41z1sHNfGhB~)#+%Y(*wq6ZfGk;TUnAd(*RXHE+vDDpNE}aGZ(M5}X`Dw~e%wo(Q5z;4ZMM!?(k zUdY7F-q3ASl;r5~VM?EIRFur<)?q>4Y^1!*=;C2{pJ?Q`%;>~nUf-Vx2AR=;!>~TG zh)Stj{ubh?>k`VTBXfnkZbiMkswww zTU=XGUz{&l>=*KvIF7i+IG4CsvP9!J?Qco4WPt&1FD91WN;mOo*|V<&`;=?~rB700 z3jYNJ{Fi6`+li*$-)`blvqxWz_bFKfQlExL75+W?{QmuKVIQqX^=6h6vstBl${t1c zvS+EwEdLd7U^y|DRmP|0QF*U@*1YUk|9=NSvlXe!&)v$%)%w_0c83M=^W`BO+)v0M z(EKz!reNdka1)=Nz52SlPx=3VjM}5Uz7S@|rIgf2VZUJW^OG_g8Pzf0GXtKU@`lF) zMJA_4kB@$zTPt_`_cbn_%7%FZ6b7e87mrDO5s_m9pLGQ7$(WstGNZf#@B|W5l4_C$ z`GuphKR;^f7e<7{gN)=9me!~P(PUNRrq<;%_HPLXgMvHrUt@X7e{aA~R9}Ai z_wu5$Sk>c=abH%g7x+fQ`_vQ9c&cUqbi(PNw@`grop5L9%ham_fdZv$ zxmCh?fgNyO82<<0$H=3;*xiGO>0DjyAAjj`x=Hqm|B3$kPg10NATOi8%bUlK@xlD8 zZHA`U>axZ=ycH~l=H{C`@|CB&etH(8O?vDpSxNj953%h}kIFxu zg@1XH|A8W(kYOU4u=O+c{vW&^_la96uUcJ5{|WW_M;gfo$z8}ggpYys#EgX1_>8#K z$*`y4{hiI2-MHQAU7&V1q=1%-rkSKh?n*^U!a>eK+d;=c z*g?cW$w7JhTZBj4Oq^C6OB~;@h7=hW<&n&4>ebI-$WX0coAM!RdEhR>rWVD{ zwIj7rz}|SRS0Tf=xpmFzX~w?=xm${&yUQ4hqH{_a6QkdX8$Vz)iW<*?XLC0Gj**e` zWveHfs)(azCLCAp$N|`#Am`v<0m7eUWp#}4F=~_N+k40z)i+Y$4v!rGc}VmQ#X@0)9=evN>$2KN>_sH zr0it8z~4H*H2FTr4s;@QB6A{r0wR(kk|B~N0%c2O%VbMugY=~=PBi$Buj;0z9Q_xv3Vcru?uOrfWx4AhAgQLr+^TZYSm{;^1j zc96W;g#LWx2*38-pW_*v`nKO*ug?8%@fx*V9+VTDLL^~O=$m|_wy0rg;O`54gEg;V z_)i4zw>s1ut-m`F`wvM%ob>KwzsVaqQ+OnJ7U|lW!148e?UX>d3;pD`eV@lP0C06s zaeruL;->W^;imMY-j^bhjsX#YessQwIVoSLI>}tfI%!|%I!RoJIH_MKJIPZQOCAOr){VAW*svH91i_0j z&s<&We+=u!Sk395g?eObhy&q`GvC`K;jf24k9_20sAag)b-ZBQ+b~ss@)!4ag*b$D84W#h?Gy zbpq|iQ~l_l1%D)LXb$Q9e!jVj2-;1cy5E1|f>^I*cemB$RngELl9ynJ3rMW4}C*lJ>}1jdL(Pe1i_0xKh!k}eM4J) z>EDiW^g70ba%5~6*u@B)0_DbCZ3O-dH;}F9^BG;0FgG04*8c5?M_z_syX>G+VBFZM z>8te(Jq;Tn@L?Np=E7U(0Un?Kq9^t_&M|s{8SEl@z)*j zKCQ=>CW~ISm`;!Xs2xv@-F^$L9*}MGAO`U<4crF1fH*I?R{?c$6kN@ zg+T=`6M+N!#e>wP1N)@|jm3l0#RH9{gAChiYuoEv+v`KyYgF57eB0}ahKG@chyI2K zuqbYLIBs~@ZFtCPct~w{SZR2eYj|jHcyQBs_S1RR(Rmiu@hz@+sjhfwuXrh`5U?*3 zv@3hHC=;|SJ8hWBX_&cPJQ!O%5L`MKTRP|j77v&f4?33)n3fJ6ZLc+KuLW(d=WMS7 zQ*E0U?GK4ptqzHa@;l^wzdWG0hCVP}qg?YJkWJrybN@!HNL=VAYc(64cTcV&S zSR^3*9Q1&Bt#U9mJytTNC|E22dJcFXaFzAVZc*^{=gI4k;?M06<1grt9eH>;L%5~` z4$7wOOR7|gr@g0fT~m3AJB0c3XV<>)rB+M@{x~G z+Ol^Fz%xixnZ8TQ%wON4R3-z+YdP32xPc)Cr*?wQ30t4e$2}+FV`wR!7qM` zxuW8t@Lv$Xf8ag!1#eBoN8y~m_ZIX25;M2mb2o{&52<@u6US^Vz7maNdpEc(=6l&$ zMP`emjLK|;=6e~JO>8bBu&>6z{P3*Puu->Khw-n!>wy0$^p$co|1)R3*ygZgez>^+ zfG)?k1=l8aFf8dbz>1k7mGv%xLhf1Z6#g^YOB78_+cB}w&&e84RLbo$)QEfMKaEoub=>pOZS^*&HGp`3=x6Pv7Iv^_}vr zUh=*QIs*NOZCfADVver~x2#9p9%9@y6JOlv2h-20G_SA*wI}@OespX))qSv}%Pf~# zjM&wwSt(ciZv0g4v5M8LU9(a-F!5`Ma%m#s*j-#ky{!|AM%$5Fo262He{RmY7qGPG zz0-8!R8;_Wpj5u#F_9+jWPKTQ7_$*JTlygK`oN_+xM?;kP3s3@`?;ep-#3X|t5i5-_RD#$4Z5 zJ?a|VJv>xZ`CPSW2x=2kPAvkRv4eFtyJ@o4J{1dgvv*pxE9K`kX3Q1Ok7*$5kb(5( zIyc`1zgYod6^r8smf+b+oO=Vd+u3d3kvE$C24izAukpY|=kJdl4F>y-*OHzFiM#BO zMz*g`Pt>0634?kUUKG#jVB;sFUsbRs^H2dc`kmX?puf}u@Mk-_sz*b*Gx34V0@jp&`=5R>*;&+414`D-$>f6SA{A0IWaA)@^g32exT!5)9PC8S3D z*$-?66~zC<1)J?};Jt2|{*-C-Zscv3D^36u{X;;+3mrGEstq+o|42ll=%8!m=CGZznOc-E2+KUUS z=>k-=55>lUm3yfXhvMRZ>Xo~=psFqt?S(;&!Q6IxA0XFZHQP$5z<#Kcn3H~8J_s6l zDjAds?N2h*1#zBp}FrrhN!^52Cqf}>{r%5`K~maK1zWFH09grO2N14?aEwO*`qWq{KQosh3MBI;SCRHoktNfjWL#^`wG2YpBE; zHqEiN15>lN{l0cXzBZyA4IKufsXC*PIu{KTuR6cSQozjh$#y>!V7Rmx@^l0dHD2|n z+}G{2HBsc~JeUr(EjsBhC(JQC*P8m-ax>Wto~HOMvW_)m;xul1f&kkz`@e#<7p{Se zR-M7Vx3^boDVG=Czt2;iI*W-LGgH^tavHCGdOtW1dEWD1dVv6+`vlHAwT~%53WQvN ze)l1vcNf42>0nF&*+McwJV7Esa%LPsYGy)aQf7Q+N@ikavTj^vs&0aAl5V_iif-cF z>e|s?-LsYisqak9H2czaAUkPr=S=DZbRrGzoPm1*9dUf|d?|d1e93Kbe5qFyH6|p| zax2Wa6WRL%40t)I{#fA6u0l3k%rSWeh;G0~QYC3h#+ zCQ8ehz!>BYUzG$Xt*&G*gpAQ8%xtbi&_OOdtPEdO6Qt_+SOvf8vL@~Mn&eAl8%kD@ zlfs+X^zd&D)hxWvi2m0mrC*!q(4~B;2Bsg6fS0q6lY)ovuWkAMesI9U3r4Q+`Zi6;*;&rI8VUf;dY2-e84+r=_wvC)i{T&Z;I!EB#Rp0ksAbK-2Y7NV1$pFlLAnw)oxw6b z`6B{oe!qIT99U3vqabm%x*A>A@%iDRe{A{8?@UdiN}|Kt9|Av57{b?B=i3>i!CwsI zpx&UOlLENEZg3%UA#|aAp?D#25lo)Umtd06pP+jo#+tyFd{@(R!X{1X$#_1*+G_FY zkaY9lkc1j0pnGvhk7FSHBrw!Fhu%5vbRNB(K%T6dVgl~s>pH3BcZ250KMlG{lP)9@ zNZm2agn~lJ0Z#HzaE2p>JR#_IHIX2GIq68oPC7=$4iqDOA{7HVk&%}=k(QS^0m(}f zNy&qVWJaYr;xfS}#QY@C<0gFc@c+#K{}AEoc~sL!-$~O+crso$=}3xE`l#scyNQOA zxRa`rnv?9`>Ew4RZkl~?9?A}UMmH4Z;1p6C?k)K)IVZ(v&^*neJ7tgjLF0qO zOR*8210FK8;O~1|+p#jUi-S#!o|rzr6y7X*wB3VAd1Gt*8@=@-i%~d#+Lz)U6j@mX z<4y`QikepR#Q1p-7!n?3iXDdgCIEX}HFW6Fls7{8ojpBNi!#IRn{D#4&iNH$I^nfk zEZ@QtIayM}ojF*7!&TT>oWs`~WMwrkWR0^EaL}g`xjYj!^LNCCz;(DXnR(%@PMbZl z%YhiXpNx?(ij6j3(zzbd6S7U{$-m8dd$5NE`53a+P<8;dX;UD=JS%3{u!S_d8Uqh%U z%>4Ewg9+Cj&+2*@-#=^^_0PP|PM*gR6_h{n;2`vJ-kYZpwMWV7=%Lf0DlgS&7!}$~ zuK2`>-2UA)GhejIhVapPFS%mto4bdeF*psK`yDLjljj3P1zV0h4hT;`N5Arj&D{8| zQM}O~UH1Aj2o>5z0ed-Kx07+5shHxHJdFWDZ_hm}r+$@{ak}l875=Nr`mJwvd%=$V zY|G=QeC}M9zV(t`or}EW3-K=G;4CG2XJWg%s*{M5u9FNHm`gZmJIOn#I|)1KJ4rh! zfiGJv@FlDEovN9!nRH*~!(hjDQ32IC=+?UtoM&|>_d5mrPP4)3P5 zn+OI_zwWGB4$_2ocs(5KmlaoKyLm0{TNW2*{i6s5N(%l~6bzL8Pi0vgnniqn7)2ay z2jT&zl?lN&*LQ>bgO%GIU>5Gb{RQ0aO#nE(0zXJLC=G6U8t@ljIjAy-JIFSu1#Tej zLBv5%Y5Hc8eK0dcAEW@Mw!zF)H@+=NH@PiAH?b{6H?=MPNLpE1;|Jf<`TeDC?dxeL z3N#oi{sdFSa*X-JE;k5oy!rU9Z0H93`OB^tn41q^mf7o1h+0lOAKsPF1<1p2z#XX? z{_K*6y)^hXw$xS|}n8D@2zKs8{@ul#|gOw}u0C$Qjv zu>ORIN3S`j9)<=`;E0lcB07R2dZU9QX2XCZn)`zTdV&Lbznj1B+U#P4nneXOQ)$Cg z2>ib>Qw<1j-1(UN$Tv5A{gS(A&Sz-xYEQqV=67(Yzm+pyq===QRY~pR-r6 zD;IpO&3R%9Rvwc7$&A)^OGlrRp{ll_3?CE(wW$~c#W@+c)e^4OSxrb%dU0Bw#YNiw zF;(+$VPWAs69-P9Jj}!+vf6q_sm#r^&LUPfOg3dyr;@hq$iIXA9YF128E&g`-$hWr z>`|%K{X=u85N0Y_Qk^6Vf-arg;+nJAbsepSQ~HCa}fI0 zmioOdKMgeEuF`M6+_HL;5LG4X<95fT87oaj*rJbW4hXCttZpyjOAF5H87RP?K6qSCtysSYhq$v`5hSCD)-UcJp#_>vHnmXSn z&@tktaStdE7u$xNxqAVIbtVE(la&@(@4CY?R(f>yM#vqr7rN?3=Q8NW_2yR?T6&2q zG?na^IMDoVtJdF;HALpxE*cUhn60RTUyF7@OhNLdAsL?@{2&q!A>PX#@^ni`qm!bi zoP-GLARF(#=H3R7DY*N+<_!-`?9D{J^Asj>(vOcqB)QX5whj9gHt4@x6)6jzE2~Db zB`B5JW~bOjLSO?z&WoHRHwP^SD5Fwc>yBaMJXVST zwm2;GA=&)^yvl8E8fe8#@6Bo_uf`m~(bu*d9cuH!!EdAhopyYZhQy_~EeQpkos(`i zp=#+YQXI7_b|+r+LFvlS952Oe*oO{3EltyAayV7}SP4F|shscHtkz->YiOk9AvN2a4&^%j_^~1se%cyooi!>z{$yPKw)(7aG~D)`KAh3c@Q^z-njgEOfa{$ z-hwfYCmaW4(%eHWlJA)&=hsg;y2|%SY;?+&1uUb5>x)l?!KheE|8o1Jq2c(v!0!1H z!v=lWTCfhiEu=DDf@yXp^Jtg_4;x?sGxV*p%f`((dP-Ftcdyx`RXYB-Pq&Cf&gJmg z=TR&sFZkp#q8xGjW*X0K7GLbjQ5ZxZZ0$5{z>*0F;GooXpA^eD-Gz+dVquB-VnN!y zYoE0p!~40kM2!Q-GtS`qOP_-g*+N=;*8+9pyv!39DtQR+a@EB~Qfb@QQSbw0a!OPB zjUgc%3@Riem8ye__72CU*$2m)Ll3faNN@0uZ}`E=!lHb?=p(<3B)`J~QgwT|X$wyy zm=Xh|DG_ORq{MF)^RKlE>p+x5pYoT9)Rk-{z0!cGa&U@b-uOqd%5&ZRVZ7q;zM&Zx>dd0K4cn->yLR?Eu!f5 zs;&M?rAYj84fIFs{9#RG-Y69)wV$&1*0g~DMV4>3zpin#i|DGZZb$3W&hc34X~+pv z*zBp4UpfYQP-@+1<0y^HKUvu@UMU@%j6~JxD2*m#Lr^@JPS><*UHK zeO1`gJ?BO!@Ki=tJRFDUamFISUxK)AcG}~bSxob-RA$XI{as7YoF*fRDFtc!Ppq$i zZGL)6>+mCPy-zL1v3jT|WA5)TnSk0;^8QuzCa8+)uo4_t;)?FK>Q|Sh~LTKA+w{BU{9hLrI!qto-Sn@9X&*Zr-AQXLH1tkdcw``#!MK zIX#}P(XXAI{BB5i3d%0p^W=4b{F_X7^jhulcej6)KD|maN7ep@jXHdq6!m zj1WYla3hp61dyenqp-z;<~LULMO=?vEBQj-!YFth&N5iN3*2XNEs7Sml5Ch#uDClj zKhl+&tn(fOVR-kgapH{0GBMVYBL>vkzx4?$7JIK5f$8tZR>V+3F%Pxj*r-q2{FVKs zPo0a>h>G|E&Tc^@Hz?;<{x$@=F8%YbWEz(~-3s%UhWj>77ZlB)c`X( znZ%&%<7fFfiPgN<|32V*aDtT6u8xQAj*Rk?vz=%W`w}}QS(TE5`&bu6-+uWjRkogr zz|EKE7Iao&2AlFb$!5*kSqoq6~}r3ZDUXWzAdV709ePD~e-;%3$^1GJ@C)EqiyLJM1*mzwYm` zE8-zsiu`N}m{fY7T#RdyP8G8^U@gv1rSu@TGUR#2i>iw_a+$ObtD9eh7sjBG1lNwT z?+ESRK7HX_|CTAo4vR|09lfIjw z1N`31IO`ibXFdwYkj#YwPJ4Vj{vSo9qaEbKQ}S=mZ1?wJzE0tKK6mei1tNcq5qyaP zjNf|fw@EM+vwhdK9pQ(jj%^@4B4wM}G!YyJub3iP$#~nVC)_bPKbg|@WNU`YUHDTleeQS*uZ-oo_Z*+- zO~*_!i@+t-U^>YY+Wo zk}U;lCcEJZ(%=6&u2LG-*|g!huADUjO!`V&>fKL){7UclMqf(ab!$H-PSc!wg! z+3qI5U5aJ~+olhv*LPraM{?9|)5eb2f2QA8X>EBNr`K@;78KU{W| zq|tjDY#AOd2T}OOyRQ^fbR88!Jt- zl6``Ho@rIMoh1|$m_?1OB9k#LLbniUACIHNVPO+6LohGjx*)Xd;y2%-Jn|vfIL>yT2&KN zu{e>NT25ZDOn-*6Pan?k!Os66SE`{#kZS4XW;wh1t99!&OsgpJ)gN0AI-!e6{=%|N zhvv-a=x0O6H}vDuq1_qJYxo)UHTy+o@GqT#W7)XW;*TQ!m=rnVYIUnt@Ul{_sFckg z)iHR#XI*^V1lD>AQp0Cg4V2I!fOCmoNYyIb2Tc!e>SC*%I2@5OaR2R=c070Kep zk$!KM#x0aFF)_`)Q@L7oVka2kP zy-(UGW@jW4^E;toU(9rfNX611T*h9O0v6Uq?{%)4rpQbESF8CkJwPjk(inzPRh4V;wVzGXX)7in;C>Mp} zCNiH%25o)ZdoevkD5MqNBWEmBat)@+`RW7|cISKOaY5hP$eQOG+fg^N6@hOg(M=98 z#p45I%LjJ9@4iYD;L0onP1)@%U9Z>3)^VGaF8KF45+7~tFw{rCR zzg^HIkQ6GV#s3;-V6$;0`?dD{wr%v~bLKoCtQj61dM07<*+xRE!_~_f$-Q&!7C*QsNKFQ`)fHxHz~&o zzOv3$m5q!?lkY1`P3Ou{k$B)B)53pEOsOqi@p#|0id9(RwT`?Sk!@WgtDP$`&4Yd;R$bDrL6l@ z2-)h=FuAvcXD_*C&n@gt44%@(51Z|pP*k;GBgJl|?3aRl>(G-(IEaJ1CjmvRG4rOt zy(0Z;EF3(o*7Ms6#_>WmzLN3!FI9RBhfYf)9i2n>ZmE}ZTq=mWIECtZ3QNqGzGGEQ zo5B8fXjS+Ce%4KR(0lC#jI(tf&hWXOQ5$o;pu1CEHv#QjQwvqwuRL?R+1@A3^05jB z`SJ-rSAyL3zbnSDsX=G2Y9>0zU%m|xeWGg?&FPh`DMH-R0`;cE z)Hbm?u4F@6mb&{snSUbFolT;UR%uk<38u8^NXZtK(^#CN;(CXWkLz2vzc z9i11y0?oXo^Ei}*s%UDW^m64=tvv74!WlGq+W7OB}?L-rE>gvwPZTNU6f} z7FQ%PoNcol5-~(n>S+Eusil&K&>&BDr_k6Q; zM3x1#l8D#P}ECP6xXY!_hjyxXQTwOh-j z5@{Wst|f6ac?a0LzR`(a4wI#W3gl)B0lLWhWSGhC^w?2u${a58Suxs^XQo?G4%C2Sl98 zIiPyJuX1Jkx#qv2l+ND5+c_&hW^mjleUi`_t@^+IVMMXy(CSY8Q({mk>ncbV`IS_g zN98`nb7dW4ss+AwSnmdoV_W)tJA8CKX};awbjm8{uL3r^;fK-lNU>=ko-5N>zPjdp-Uy3{|b>v(jm z($>fzG2;r;a>>XAn`V|p;l>ZCXciCb*^-_0_CB`}8YmRaaU_dcqMNM;TZRR3$j~DO zzH5U^j0@%&_sru`&Kn>-@y<5EwX(|Jw-6XDREomq&&gjz3v&j>=t_RKtB>{t^~@ft zPhtqi%-^!eWUZi@wt1g2apR{NYukh1rE&(z zDe^;2{>p%F=`jJQ{Hi9AcJS?*-&pd?bBfu`!sFpv!VeG<_(g^}lo{PEhKbHi8L(It(4UCABCk>Xd7JPO$#sXJeVWb8zHh67&#sEaP#KWqR)nC3YtU@ z$+?0g+>3fwjE3;lyT}51 zFeC2dM{U0y5F7`c4OG_+R6Sa-yn*DMRG+YyI+Ynvlg55$0*%_=Kkdi8f%^?s0EYh~ zOk|W#XPu92qDHV3{F2e~h&*4z=j#@u`D1o*`Y@`}#rA@JH@hK>g(t(tL&#_1)$w25 zz7a>Hq@@w(2YGAQT3;EXi{6z1LJg<1$ZiF*H951jBu1YaZBArbvS(hyw=o!If84*R z4?fHlE7PRAOV8yzCH@;jXjCwOet=57GKD?_f|cbIz%%K#pK6G4S7jA-o1(+{zi|{2 z3Bcc3FVe@4XG*{SWcuxe?S>nsAK zrNHo2HLv@H!GEm?)i$Ip5*Cn%kq3PoFB;@Ijn-kp-Xb#19aIirQ)SG{&RKQB_FA*d zxKjDhaZH-N{QF%66>M`$`HqzxfmQ*t?L-$K()_Wg!?O*zZ z$HiT2kBnc`S1(#_9jm@NL|lx}`&};s5)oUN(=L=w`UZL_Wlr_>D}<*7!6Cm3elBc& zC_?$9F*9@*spg8)`K|N=)pI8ovZ*W;Ro(0&uYGrtQkIXbnBH2$-jgZ@@Vxh{>k+M7 z4Hk~YB5;J9I%KMwLPPiFyF)j>H(SNmPo1@IA+mzMi7+=B>%9#K%urQkzrse>1?q$h zwNr-F-tEhyv}YWf0nt-Bpr6d|KW{ufMJS-T2{k<0mN0XmiNRbtF@L|Z#+OZuD`*hE zS(D>M6-KV%EZkqBk_KtGw@e2O7ef`D={g~Du%R>TuN>@s=;l)QCsNEB#mhxJMcP-SG z6y3@a&-cCtrN(gl5A->R`)%3wwfE0z==CHwQ$O{S-k4*)&vOZAJ{7)UnG%T15$@kH ze==Y_KaX?jQQB z_;udTL%8E1UB-MVW8~rLc9Vf&7EDp^AJ_RBNXOF8QCJkue#}U>-wjdY7RyRB!QY|6 z!7};dA&5%8Mi`@W|G`+qv*%nCKeBVO{ZyH{U&)_X1v^a@lMnf3i>R3 zzqG@uOzhSuyT8}*940wo$qJtZE#&l;rpWNjj=F&q$A4ZLHCzrO~N+*#L#ggJiJBBZax9*KEY||AOji9Ik zx4KCJL!m67H}&?hQ1P6f#4BtUu{d@Y>H1U9TNh%GtwVp1Cb*rXks=`R*l*&ph14(I zZIK0`I{oA+;+kaFJyJH{&D=7Z9n;6E!a!6?%$Tbu0F^5>la_z|;d&99N4q8VY(o$T z2(~kSu`WgQ^y5z3^{iTorM%f=a1HgYThR3OS|r8o^L287`KHJisO|7o^mrOKcHyj0 zD`VC&bOF4ad6miJroYkSBJg=3qc1{!*M0tXA@l6>PD{3uPJ|!j* zc$qRTUewngLsu)`E{)g0N@l+D3uKv-I{ zwb#RN60y!xU`@RIw9H$!nTcP%8*i^sl1y}Y@ydg1D7-AMkX0kdcKl@g!hF|KZX;*R z-j(Fb803aR^2|%`Rt#H@xjV#l+kgLh?qiUzY95cE$@?YfNSOBzlOvlE(1^`dU&DRu|Jdqe&-!qE@hl98n}Pn-hwLLyN&=EUn);;f@X z;~=!9SLkqeS2eW0%p)Rc@RKg`+sqlvDGbeQO_|;MzSTP6bD zZ?Z^Ah2vp;o0OR#sHX&qZA^Xl)&`=n916kqZK^R8f=naiBfJ4TkgO&L#&SsQw;FH) zDD^8QD=pWmxuJPo2uPy#hX@0#7}gV^RD*+=A6|Wv=!?}Sb9GP}LqB+gQ4 zXh~Zs(+WU&UCFXT>N?EL{%eGsakVh>2(oSh>w0T2ZR^Q-MZ_cQnr0q{P3o)OkJm9= z70~){YN}T{B%e$GWl_XZm|iZ;t63A|5GJopyo0dG0u{PK&WL$^b#0QKH~aL{L3BND zYFgNk3}z5Tq(KW2j7Hlv0e)ZQY~y=k4dG{5T*buu;>88)S-Xn?NcW-RY3$(mTwUYc zFF%{+a9p@~)GViu;;p^;35eT8qjMwzXoSo1!y;PE;1VDGs<%p#`+9mlLD9 z$x-&jf?mPXoCLo$m7gE)`{vdOvK&xI;*t{V0IotP!Fg4K(n1|{USxZbY(8_D%@hoXFXSeKRt8?i&c zg3)7NjEBkl-f9bCw-;F6nU#MT%v<(&ePvs-K5Cz*}T_O24e10o?0w^ zSvhvzbTMjgFXnfDnF9v)N?ioK-ppEIe?4t?{hvG)D|6p_u?Ag-sIws?*`;HaI9eZc zD{*FdAXO#uiHoVr7kEm4d7#Ec8gmGCxkR+Gu0s9>R5o^`ON9EVZYyT+@8CAIiJ|A3CZHYS(Wl#UVW8$eKU)UNg$B5zAjwsp{iRb$%-crScmlT zEoD6e(6&mv_CJ`>Rxj!745iSpybTod@=*vChtz3Zz97~}9bFxXi7>pjyJe<8ojE0( zdf#6@7YzTRR@RK8Q9>JbQL++!k}ya%NjD|G=_xC|-6_MiU|$ngGKIs|Y8Gd))ZG5GxA?qThAx5>9Yy&x!mM>(a*ZxLKKKR1O0q95gb!BI zWY|R8V_jyG%X~1De3=P3Z(Hz)W)=4Q`-l2@80cHnUYojxp5hZIWKwnP6r!00g2AS_&<${8SMTV z!7C<15B&}DKrx+loRLtACL*f&ZK@$q?3b$^{JM%CkZ_jnMMc+tn>j``wq>QqQq+sB zM?wCh$A)feT>hMnIx>;{7xH4P27OZB&Qhb~angic#Ap(49a*0VO=e&#=R6Z+IxW2n zMIM~CR|4r+@@g6~<)}`f2HK#?MJpQ*v{A*Kf7l*npYbjN?(pxYZxgY7(Z2jZylw6w zC}%r?NhzIzGMJXdAaAU2VtY%^3A<0_jDsYnxA@ruWs9YEd`a7ykLrEBjIf7DCF%ZT zu(cA2w||&S38yD&J&~FVD9#jZ>eHwB(~XO*b;l+}fsWd)XjHWUTd_H5{^u2@K84iX{yUh&s89m)_p^6mHTv4!eLpkbt zc@wNUB)`Rsx$;PNlAkXvZX~!vksKN~&Ky7?9`9%u7W@f+iAH7QYON*_E#b-^M|#^E zJoc(tgPVJ7;&3W^qAanZiuh_@RkbKdIV1LaBH--|JJSo2{zj^;}*ZJB?9*HezyyVynu>-YfjK zZQ~G#NtJK&nv+rFeltnGygLKocUqX*Vz^H0Z8B_1GSG-)bB&f+o}-?QEATsM;!6cx zhbU!HM%m1)t@*v#GN^764yQ!wK6}~EwuDRDfPLcQ&`V9bRnR)A1s2{hT+3NvR6HRk zT9rj>N?GQN?R`_YTdujBp<%?ZLedk@GDP7l+{{aBn9^BtcX+eb!;c!egx`@YSdJwb z|6~4@y{{HoXzG%|ql%mG=LE@wz)!DF0khi}rgHp<;2X=zsmAhpu3n3da9%(Y7Z;8U zUKK}Odk^RX=6RH3w0BJl|3JSW^l&T5T=wJDap$qfE|%a9rc`z@1Ob5HQE08x?0-3^-clp^_yG zp!R4@i7zbXpqDci08i-wp1ZHSX>fD|K9lOyGodxOlASbx!-Cxu4m4w7I^naPx(k!a z{+%%W=^gtobP8(?BHJ(KK_1>%1_;@m*8RzKZ%x2g%6CD&{T&g0;;!_Awj29 zXc2<^p)tYO15k;)rV@(gi;@}4T^?yOFzH9f75ED@Ya2Qe0u5`<=X`GbF+eIhlv|2P zY;uhc2_zz3`TOSg3uY%H4@xI&mHF3n4RH{Cjvs-{(oRot7x|%R%$#o1av5P?ylqAW zy8XsfqRxN@^@L*aaIj<{lCrv}4=L0%n2Nug>D3d61Mq5bnQ^tQ3u45QGi3MB;=foB zJ~JahkMkD~@M980l!=a&TZlouAn8bk4c8P%9r_o+=R zR(b3lLLg4G)l0a1%N~sQ5DQA+pYvS-pKrc7P z=b`wXF2RQ!K*ndLz2uqr$ zDhq1bB+i%o722=L&PD0N4Q`P@SABvSl4*}yPk@`Src%)f!Z<&Ih8U?Q+uY^8N+vAE z%lO7(cWv|QlpJb%w6YxdHwOv4VA*?k;m8|DgZ_{nE}L|rgGwnSDddq9O1*^d(p`Xo zb}52PJdhHp(?8}n#uPi|nU0aK8Ny*sU{qSGtMie?59i1FNAZ_n$`1wAbBw9A1~JVT z+6)FWDbn$6S{3OgSAu)Gt?#vdsG}?727$~Nl91QfLE~|Rr0ZkP7OLX!yG@3WOg3>6 zd7KS;m%|vG;huxIvGwwu%rs$Uaq~FF$I?I(z{yOp*S|mC40Q4mheGf0Wv|L*0|jqFn_Q7Gv7VJtZ|P|J<>*(n7`vtYj`d)N6RUO=E7PZ zUGVK!Z@GI1=h)@%=TLBuug6$gIq!p}gH}zP&ZKh%Ap?T4!gdExq^t9b2xTWF+Q&3F zd!?29+fL2^q4||uBua4VT|hJ`);&xoQ>nMhmsZ zq<`XU_Z?pT*RcAREzaTY@5R;wB_A??cs1DZ8`yd$?Q|Un%uE6jD$EtQ-$!@`MjItgdI^?6FqTDI zZ=OSOzxnyMRNC8XB=K11-7!83Rm=vKF~1d26Iv{!t7+1TIX7&oLcRv3RL+Hf3$=c< zSL94v1$*~xCQepDpPTdYDF!7Z?^;Qf#De3zhKJ^&6UBrjr50_2ZW|8#E5h3;KFa=W z)GSpca8B~i+i6X(1qERoV@YpC%cTnFDQcBL(s%|N>uc!LZ%po``Y+rv1RJRzPT(!KV^qc=3vFI4o7 z{(c@pEAbojKoQ&*YjP4j5|dx~G_H&USZ8BJaLe1u^k};Mxfoq3Mn}0o5zJ7gYnTXJ zED6EInm-~TcriHZEHl<%h~N()SPeVG&y;4gw3YN&bU|_OAxtH|{|5kjK!m?TT}mNS z47o0{DCUmcRV1}BC@sWXi{SlZg*#a@s!@M2DtvEHM{uV-+{N|%dN{w7G%`wPl%9OThcg=7aUa0Myx_y zh()f@#=C71XG9fJe0<#C#C|VLwqgfBJ=0DPr|=MV1w1{2u+#h#8>#P(QW#M*?s#~D zgLcq2&g*TML0cKs#pu=AnJjEpdS9<1E$CAyk%IzJQAhNfT~VXCr18Ps?9qZAsaDe`C3k5efw2LmpdG4QppLgi-gYXGzgEf&lo49zNw zl>C+oi&7X1SMX3dxHZa4DMx49z11c9`-DkD2M~t9DYrFSld;SS?mHWliN7zH#@w!> zD~PE;%`{I}TPLP9TeW|(SS|9oeZ8r(s=V?F*i=|mZB%lcCt-+5>t@BFL>L2n=sf)e|u z_qU(@Eoq;}Ovmf924i@7TKk;B`vucbOZo5w464$r1m;pjP%wW>5)tx5X-I@b12$zA zOsYy5Lxf;B%X5rDn3vS`MWjD(58PX{zC7Ia#H6~+0S8UQ(-38bF@=3$SE@zxJ2X2R6T5kT0)LXc>I(vm=y5`JufqQB{we|E2Kd$sKV>$oWlr&fm~TC=yR@? zIn?Z6LYYxxZG{>HRE)NOdU-pnUfTlIQh4!=yk1xx^4foIK8?22)H<$s?M~>FnxwvO z&!=E~;l*twT&G;)>I}8Z13;RGa0tt7_iZ1CrZ*Dy;-QhqGFUfthr}PjnZ8iFvvgm_ zZo#POyMf1H?omC2x-aRzOnZ>;nz#MnV>{qqj>7#d-Hf>-o4Ij6P=XByZ;t+VI>x8d zv|MvQ^xS`!=$@AIhW+sGIFf(;->3{H_2=Cctvv31hxS*FUzY7qZ{I>JyeoQDDtRI_ zy*KiiX)GlD91BK3KWj$xSMsIOv1uD8&geXv3uraGUkASdwOQR$<2Dd~&tIWqn2B?f zguZnq6s{D)L5G1{_~-*LjIfnN#gSY|CYR~l|K5L<gi9i(Cuz1g^4d)8GYC!FB$1<%O|5QnN@N{PJYsR+sTkZfiB?-`jjzpcN< z{CR?vB7$vX@Rcwk^zvIpc)3~l?~=0%j-xGpyp=7Ht$e5>WwJ;nSm>yYh2Y{0 zvnbYi!s8g6PT3q`iOQ!ckq zSm1onSJ!Gjm_d4V`?b$3jpO>;N(@G$yQ7QS@zZqt?e=^+KB*ITwc=LF@K4Arq(vdc zOP?9jjFB4t-0+oMhf#w?In)|$vI&1X(DE9ra-cdIT}^JzuP%=+T6MSFtoD3n9i7;M z)(7RWLUO^=I6}{v9VBXy+8ypWthQR%8Z$a)T#!Mc^M62eg^>Rxc9&O|<3`)5L@OG{ zD8%h$P)E}0gRCZKwIDXg5*9MXm3E8KHR>Y{9u+GpNw+3&h`I#}E%jLgL-2o<@2GwA z_@mR7i{v{AQ$+%|x}aUEpZmxw2WXd@7rhapOnJ#mXDIlT5eyEg{FYLpf?lseqOXEt zC8#1X3rx}v4(CK2B}q(SQ_z9znKu`l&F_ei=1pcy#UR5k$BEvF&;b$z#|c)8z}jFL z=kWK?US+A(pWzr{cW`jva`k^rFrG$?tPoV#R~*wKzsBD~k`*G8xjLXTp0a3!?z<4Q zx9Fr}``C4it=W2l6$V>N*Bw_r1g`S?6<=lb!dReV${z!b`LqddZBAZL*M}O9qfWu5N+(MJ^wjUS~iMms{1G~8H#ow@k02e zg2veDyxb{ZQDOo%HIaXkcY=)M)61K2R?ItZgjzWtZGem6&^iEa@NyqHSb{eD7&bLW zX6gC&JKi_;Lwpb0aei zm{>y4l9wpNLg4jNL}xP>B2@>t(Qd3@%_M%Vc~lNC4844KF~E{YZJKR z2F3H34bE_<;w60vqEf-oPt6f&5&?|jn6FGZ@I)BVwpZJ6P^_o=tVJ;se$Y@g43QZ| z&xk$?k->e}70`d}qwd@sI8`Rnb@$O}knDj}CaiW)Rb**p4Zw@waDf6JHCTE;s)Zoa zrn<#~G*U!eVUw2eujTe$}yypYMGy_@{71_NuBJjL9&D@ z2W_H%!Uo|1pGV&MmSY{mDF4X;fWVr2OLgr-yWoWjXdX0Rv2j(bpYoF^sj$$eOn3$Y zR#-$^Ad`1Zu34?8Pkm2`17yx^08Fo(Mq5s$?lM`mhS7%M4Xs2_=$C6yTV-M@F-tEouI*YbiNymujXVE)wgqh9L%|j zHU;!%X;tek&hogHC2;k8f)SP1;N79jbXA&dh*iJq9XA~_QyA-;{Jb7Z;j%w zMxZnHLza2|FaFjP^j)$Hz=XRnN|A`&_Xn-T!)gtqz+ylM zZX_|762cF#QKw@cMJzdQHL!oPQttv4l>%20l*a1njY< zJ(~+aZchi$LolD3~9Se@!5EWbn#xuN%FCT{-{)K-|udyil81qO< zqRhvE^bThvhVALAzOh$P=Ol#e`sf2?wN9==`-Gx`ypNV6xZR9#GTC!C!)Ja3Cz59s zL-tp2@;trXk?VaP7cx(}eo1`$)6NEwnEA$Q`Q$0@4mH^w<*W4t%x1Hs=&SZMI)NM} zY+as8rkH+RJJmfZPkeul?aaMoe*ukETTk0C6n@XIIFl+RMTNev117;Xu_1)m#2!Lb z8Rw+&n%bG|6e`4jpPj37=^ziSl5@`I?|kRtPv=>Zc^)TQR2iWN7h;uO;VVn=T2P{eTzFot4my5$rkH6a_`@Y;$Rp&Gp}GJ=4SBOloR zm}6EEQW2q%BxanXKvSX=6hdLm?v~IES>vT)NVO}$83FXQWml#(uoTF(!pPb{;qI3Hbng;oS#GW!FSMhHI6bs;j*>FLL#9F z1U+~rr)TwR)j`ocN@awfIy&}F4jq4hrOn5Y`2_sAZ+-`9H-DL%*y#qsBiNBNM_{V3c1f8!lM19k)`=8P3f^4S@H;`?;MG~p^DHv;fW$y^ zq2UpYlg#Th=jB$DY-gRCwKm$x0}ae>YpJ&Fqve0TKb?)lmqZgYFh!@dw}8{@#f;QR z%)6!WZR;3n79?=n0Zhx;kr}&)V1k2XVXjhTOL7YSFQ*0&IT{3L=g=*A>K#OWEyn6ot-B!(S(=Zgj=dXB&N=c@6+hHdLD`R5_ ziNgfk+N$!Lm&VMAgYAqKwErE)aX!_Su?-~1p=s>*e((1_?U&O$$vrP4DXN@MgbR`8 zLZSSKUkfJjB0+kKa(=})eh`#sAx}N8PzZnTFhl9SW0nyPloO@EN?{FiP3SFI;U`f@ ziY18het2M>qk{wch68w=6G>7?*&3tS0!Gy7UJ^~^m=RIHM338P&{~UoKg8CvJZ+ zAX1V|pZRzTf$+ruxQa#jjBdCQ<4kFI)d!mSq|ky368Vdnk88?{2q&==>BL4nCAq(V z=@hbpbCZl3al?>DP|CqbCrnMwxJ`}C!u#yP>0YAA9xL5ZL8EIKRZ1(=rN*@hn+o<2 z>vNec#y!W!edxy7W;r~4DDm#=xyXOVCDh9CbPx1boY$h5niB+*V1%uu)~!)dL8=Z0T6$5!@1ib zS0$N{DdFt9O;T4C4#7Y2%`Z1*(vHvLay{JdWt*?o+h5d5pGaF7Ix#g-eGZDkIb!xq zG32H;G4SVe-|`zf)%`a2P61abR;FAS!_+M`eX!@;c;v9`n(Ns4JvUDN12?uEga4>2 zyO5vej=5qXp$T*d0#Pm8u=Rgg3;|Qi@r{hoin;wD8Tp_F_t zqh0AbsZ#et?KEjxHe|x3ST#;+J9Mbyf8RM7V3KsIv{}drw%@yVch7l!RxAq7lWd8) zU@5{yzASQ$>INT5uJB@k={>6C9T#|=r_AJPUR2cnVo5Q$wpTopQO#?=f^J!Jkv~l)`b;1JFisc?W(* zj61pkoH3=?8vL1H>Am3EL?^DUDq0=Wjx1Nm(glPrH!!`AwT_(QcC0yyIb)^7W3pKoK{Zbj`tj?RBUC&BXpPfo5c&%a#W zPCtIQ{@TKJ&^1ck-rv>yU@IE!{%*W_u6wTdicGO@`ZIMruz;2Dznbsk7Wtl;bb$)S z5X8fN07DXochiS5Hy9oUiD)zM<6z|Nd3NE5;EyK=UoeG}?an7=C^xA?N1Hf4X_dneGT#NUdx@iyLXZBb2c!Y~ZI=U4bJi4P%qhfSNtv|V=8v0lN;4Wwfe>$Qy2E!RMrV`?BPbRUp&q1{8pEO6%OL_ws z#}NDl-Lzvnh@%$=@dM3R-EZ135P#2K;Yp~4s#V|1=-RPX;$dCYkG%jw#<>)$A<1mR zidz2n*^VKJ^Fcy8ZFwjSxsTu7{qB6^^Ot{U7CBCU=fERO0QJLp6mnp9@M}RC^k+bx zfsJlL7k*MsMaa62v*3VkXVEQY+&t?Rd}rh@r(7^hgw*qBfPF-K%sG1G;NGw1)6nmS zz7Ir7B6txHxEvK|JFgCs*Xhxb{zOOUVu=}=(-&}uWAojq{)`x1VgaZ{V#6Ch9QA+D za4cbHp~cjv1bK^q2pR@xG9h6gT`h=cceF(8aP8#$G7t+EASq0PC)>AW_6bDaLecJ= zAa{mY7j~a&Cvw>6RdSy`aGi7!}__vaWa$tWS$m=W;NulO{jhB`whfp-^m`9$$3~sP$z z(y9}L>Jc1>Yp55DBmfmzxiZEil}%eTT-mhrmInpJEhhx^P;3-Y4WB^h=^1}Bx)*aX z(zTp)QVQyd`*4n<_E3j(j1FU`+S?EBaC~fJJnBp6QcSrxIX6RW+({*6?bHP`P-*bw zBz`}jES@Z!-MO{f;UA>e1VFb)8ir8Vq}6eh1fq<{Xt1C}^<^d!b-lfzorP2I?mv{kSfkQo%F>g}|-rqxac z?EYL;Hga55M;RtFv_U7-h((yo5afThba`xAx| zIhD1B)vP+#_Ac+nXqMBZosf*L?;vKOTN=Af5V`ef+;Z2`G>Ozr5l??KUi~y?Rbk4D z6w5Q7vSx8DNxcn$@=3hSX4Q3Os?ZHwIhCnLfi=PSb#-6hY!}x3I>p{@{yXYy-D=h( za3yoy zB*&e20WVxq8*FDnS?7Q0#onHV*u|0BfMnA2G)(S`nju*DKKj(_rR9v5`sB~6+SJK6 zVWLx=#>=hT=vKM~$#PQIm$j0ZMylKbc0;co(bMlF^dwEj1Zr{pGu=G5UtKIi>Sljt z7t?Q(&z#+wFA0Y2c$jpI+8FgV7Rp`)m`Gy1j}2oxU9!gO#!`PC!`k@+wN~3s+dvR~ z&sPj65C=7-&(H)=pjD-c($eyhplD-{;}y=XySomFQ2xE+wFB{ux~cF(9NTj_Gka$D zd_0SSsMQi|jyhs4!cfj5sZssF-!WG>4A6Z*HNKV}-f_*1RHv<0tPyU4=!PkseLJmq zm)T!TwNcD9c~gyC%!&;wAfKVhEs%D)Ct&dxaA!g7r^y4Zv{PA0Evn|t zq>@o3v~ZH2w2d`gROm|O4HKT(DtHng?N0`zWc($G?$ZP`b)dF$)71D=Rzy?#VM4{G z#@RyE`4oSb%D&Gn$7WidTV371`nGc)(saNH0~0Pv-%jxO*38Y=2AaU(A?#VJ-hk^1 zA;oGgVeOM zT^4^bHBOO~sQW4vQ=jxmug;d;nvr!|oRFqrb9f_4x)|B1(u7GE-zoLA^O-MDfE_DZ4YP_6 z_7C(vIGI=iW+0?LaG<-ML`|j!0+M&YNMe6!&1Z?xejejK^*~0b%<2R>rJV1HW!!_6 zj7c_SS5YGZ&U}sjLmLVxfSfq0Mtn;oEg@`?|vOU{v%NAMt$nYx_;N-`#o7cawAU+WZcEcLu`L!Im+49r^|U~B)z?+3AqMvgi#if(IP{)Y&@g?5ys-NQ543vqg6UqU$dlH{C#oD zVwMU*sDT!FGDCSt#Q4W6)&C#Guq%?pIg9hr6lGH}0ax4u06;`dmmvpp;5&b=32e)R zBw(&bt@3qOb42b0VcFWG{k#5`>JuY1saJ7$7n1AwbUvD+R4}*hVQqCO0ebdF*_f71ZHt+!@S8LDtWrH6YW_dR^AHul? zH)tM?S2#+USVLQUU5jU7@!_wvX&-D78XlC1g|?W@oT3n?D1F@AS7IJh)XcHy zACu__MIp)>d#GMw!bUTc<;7PJdsj{2R^MMb8I{s0N)T-(WS*rXyPbm9(|NJX-@Yvw zy{>=Sm5?~eLoS45E`)#4Xk)7t@=omAQbIq(lH}}qb4sI-usCDQU+%LvuSVAB^9U{a zKAf17X_97*k7=2SO4@!W_J59y*U3ET{S=$8r7R<9IL}LI{L&C+Qe@sNhOfC?jw z<*%E3-?7JsB&E$1Up318qD5@d?j;-+Y?%NCBM3*pzk$}o0TX`+{s6!Ptn8wd@7aPx z2}#i`Tx8|vWTO&#vJOasV|#3#1d;w)QTMu_?uU{%Eo8E7#9eM7lbHZy0l-6^qY% zUH?lx5RAR%2R4DGH+II*>zJblu5yLwXrVWzWut;xtm4TJ`ib&>3n~B zklf@;l9Hulb0c0HV1E1c&Czi3Ta=Q-cpcueJVy=RS9O18GZaRv$noM<{vw6if!O+a zxm=B6xeEJIScJlsybnc3gK;shp)kyhe=S)0D7K}+lhi0}Kw;9A0A^GGX8b-*jC2u8 zxHP{0>wj)e^CpZ!=LWhH={r-qzikZ?ukozX@bbGx2p#ZV2-%U`cqt-zRt|zczcahp6eGBh&n=6gdVYOa z@F;flPfJVekM`K^qKnHGxQ;`WxcNwbyd|3cV4i%eQU@))j^O@?T^ZN|E;snVGt&55}rRaMOO z$raT%#gs^8RT#6em}{lC%8yfMtqs&Px{^q=plrm`WHwUHm>HTk>OQLb^^I6ES%ZIi z_mAJMHv9#`A&ZUINv=+Pn-;z5U;8V#8t|fAv@QOM?T7S`QGRek>c-MZx4Ee60Zkh4 z3N1?YO+zdeU)t++>e17eG!;^zUW+&b%$6HH8Ve-*Y?4~UWu9h$6A z0IV%X>2X!rb>j3iTAu@KyAU(W@*RKXxYVW0q8K{}P;S};5Yuy*bpaafI(JLOR+odp zrs5=Sl%5&y1YYUdC)LbL=*6O|A&{LX=?qDBF9`SKJ~%L@ZZct{tMz^^J(tRfQ`BO}980z%R|E936l4XDDP(W=} zgD+xbMr<8r?+AO{z9)IeCRP;=qvi>@YQiB49*QCG=THB<(xg^bJc(0pa3(H2qWG2GG%vY6K?9>H9pT@cX6dV{ zR-PetmiSz<`&se11?E(n7DPA7$Z)nhblVf?Paqrsx(iqPh2pj%PA`HF17?ciEFTCJsPl$h~O}0j_tN43X zY;v)3^961Y^3O2+aloGq$jJ!Z8Cu{h*(dUJBO0}w7rYcS7yI$W;1w{PDRv(>6M zJj3zF1jk>>8_FRukTgnB;l4If7O6|i0(a$=Glk5>syQy|t`gA}7}K(99za&vJ|x=esw1&+YP>Fs4_KQKH?KA<$e7HWSsOSjI`*8=_B69xKj z5~YRJj%QguBmlWKhmJgt4UlPZVPz68@L*v3z`=p(oDr)x`KlpWoA$vb;n)zZOzP?` zv{o!-eHg7`DLX0Xj)}Y%`y;uYXDCw4{LxbDR)?jID8Yt%YxdY5TW-mtBP{lVbb*6V z_{VBty?y&qt*n2K^gh97ERCl^f*NngbRj09XOuW2N~8&1WVu1oB+Ewg2<0+%&5*Jq%pZSM=u9kw*`n}67~g(ssPixtM1x|P zMv;cR$cP~`9ZIpYZ53_83iNJ(Ke0`LEL*Vh$qLPNUc+)rE+@DJa_ZzcDm6ze_FtZK zr^GlF=rmHM1v`k@uFE~sHEmPq>mFg4Qpa?WM}q+3z_u(b4|L85JB`fMz@yE;U^8+2 zW37Ll+3rP>&MZ&c-diTN(e#F~3cs;RYKlmA=Va-`y&mg@S141=sgH6Vx%ZbuhUetLkp$i#U#gfRp?1Hjz}lQB-N^2BrmxXL*0V z#W40L4H)sf0J;PMV0nyl2btIv1J0-$Z1PpB1=_R^HVG%OM~`D;IvVL4P7RChv0xFj z(;&pt+qcD%diz$asU;u^sjl>ni-W+Eq#6D~e8D^8n}`Wnz5}jtIqXi28dJ8(S3NS7 zd7i|mSL~ieGB)Bs?E4{1^970uld*qrpG(M_CFD+B(-3lEy-@(4+zdu8b4_fSmko@G zr73?l<&lqF*9%-10d&rkSetyUgl1^cKG-B&fSG?ek5Jpn z*V?jcDi*bLOqWN?eJH=F4eS--!C-y#BeWxfLg^AE>;*iU@=PpnI zTgM>BO6I!hwZtYIEo^j}Ytvm)gD;5M*1To%iIOJ91v%b-tFj-gRjo zY!Z$ID$+Yhli4BO!(xtB&$G<#^!d)%ts@IB%5*tO9^w8AaLor?XBL0xC$UdnrZF=< zi-fho(#Du=)w_1qA<_K>uDT1;>{Jtx-zCV8go~lq2OiY<8ZhsK2WL`T4pYEdE22FaG*&Spu;#kPDhzAI> zA$1(WDB}TeE!P4FBMz~90T5iWwY9Ot;%03)D1ODNKtMYZ+7031r$s{X<7bjcy>_x5T}Oh=mAQKk0#1E}?$Q*5W@}yz zY*roQfB%2jk^U#GP<$KSF{My^AF`&bT&i=eOU&2{851b_r=t4+H!6OVm&NmGn5nB0 z%Fp?!fsAs!8blCQ7Ev;?#aw0xQ>Lddlau0-US`~f$f#s$W{Ac_C>iNPn90}}u_1-! zyJnfHa;4&hY=#-7Ox|8MmQU!qkD(4KO&}541`~gCk86HiqO1GN@>KrPRm{2(kNLhN zPZO0bVQvYdEAUKg5*Ts>6_9bMv?KS;ugB`o$S*INWx?^%^Q`DdSV890a7++L|$WAC^jyh&(wg_A-?dSK)z9xN`JSKO+46tiZIvJE3+KfJ-4z;5NksLW?y)H&3$;5` zdQt%(6`Ly$I1D=L^-}yTd32O@Yqd^hb55^flr#3!U$=b9p^>7)rwBhw+46EfE}hEN zFCP_Rev_1YHa5Ol(DV^y)8xJvIhnK$KCpbR%Yt&S7&}y|P_(dfJm0GR3`kx9~WqMR)$jTTUA@}~!=LPQp$lZM6 zuaZSen(bGM*{m@hn4`PK0kdtdvid!14l92Ae`CM0v3SyoOew&*jlPKx}*;_2gg!v z;_xn1SUeIcLsnOdZqXC8FQ(uyZr-NNt9G?%tb&lc_tQ!7TW+J_(fhYu&uRlY1R}f< zpVk;DY5n6MP%HjNh)Ib=?ZSW4lm5xm zgwfR6H!h>4wh7g%{tJEIhQ1e=F2~q&926kL0k(Y0Mbv_>gKf{pXRTP&&+4)iur51; z&C9Wbtj^Vo_p?amS7)8sTT0>EXC#fJa2d&m)kdJ%VW`%_a^==!GnoU5)wW}wyRvYE zj>=pLa+EcOEm<>HY*g{dYni|z7NwRmbP;VS!OeT&3V|G zqP11`e9AJ$((85Su3)FH?9^WO`u%Zlj?>-(l^q`jUk_r%dIYtBQXsqdGyIR4Y^n zR)r#~r=z|30(Qsa-E7mAQL0U5G-#<)@m|S^9V|;&9^^XvWyWbokajhx30F?3C9Tn^ zr6mCeU`9EV*FhW)L(YNe*)Fl5FN-b!SvJWG>~mg)(O|XKlC;?wY+g=rusb}|UYJwZ ze7=IZ()f&xYuNZj7>R#n@^!h@H#2xE#N?_=rjq1j<$0{Up<+bhQ^*6^Y{7Z>zM(?J zUf{Pbdv-&=l@$36qNBzbU7YhrKtP>!V}glgO>FZpoLe_}x(@hq?hLrbm3&zdW2u5!vvnyFj4gB zm97PrZ#zQ8wr${IfE_OW&jgm^GtVcGnB0R7falEN*}>wnc&#oQgU!cNHAF5dsM9<~ ziJ)iX+2;7^ACG@XI?iT;;R|A#H93 zo0emq8Lk~d^_&TQ1W;u?Lsi}Qq@e0B82T|q^EpcmlqP?Rn98G`-^qfl<<>C7A`{az z*fGzVSlJPt>g~D%LU)5AK1CLBnC<%( zLyTK45)#;VWQu=_VBh8EyanIN;4*EfE)#>z#<6gy>+VBK_D`K~m!Gm?Rkn5zkn(;O zb#|HIOp+a>gm8>3Fo7-poj|Kcs%z8%%Q^$v{HM%Qu#4TUzR*>{iVBlcci^kx+~y#Z3P zJS&Q1U9fVFthUS#%P~c!>Jf_*sek?Gt(dtwI@YY%sl zM)ZGc*8%jYE-G(pw{7I=r5?6nzzM|;L$XpdLM}w6M?3_@Z!(tzb{tBfe^L5;8^_D6 z#JXG!Ha*8a?a<6#<-X&q54Q!UMy z;Ek$Ks+h@8Div6aS(L=L((!b#o2gZ}Y(9T^1%12`utva^o+1lOYjJV$5WJ2;|-ZEvW)eoW5!w8^M#4oe1W4dn=(2^`4Hq>hQjc= zx}qerJ+EIt$`hlI=7j-#kD>)D;w6L>Qe6g68QLJb@8(gHIbz09b=h*6XJid06Tk?93Fc{1MQwke6$e@=Yr+5$&NEcJ}F+ZS3B^@xUXl$4#Fy0H_ssm{|b&Cd9z?fX@j6__EyOo188oO_!U& zrsWin_M68T_?)DsZv2Q4=4BKm51Fwn;wi1E5?4^3ry*YCvNUcOlW0MuwH3xwCKFFk z1wpa+1S)Wv7)iWcA9r7XS&EguyG3T8e2(74JSf^|Tf2X}OvmFEoq9KoFd)=3EeDtw z5eoz063i`%xrZRLI1!y~jxHd2Ah{>h}n4Evl;UwK;{yTDlh2dcGwfk zU2wKNcB&L}_bhs>N(Zf<7!Kjj?1i_jE4x;i+|4-lUSYLA}&N zUf@v6!M=YVVD1A12mv+&KJ`3ddvg>(4_(%MnFeN;!M(Z+4K_2!2iJ?bA8S4zS=Egn zk)>55z_Qkj6!UlyM)@d=YhcKVLOI3GWU@F;wOh5UD-9^<70GMYBOy>XI&5iU9hN;v zZL@B_-MJ2<gZF;T)sB5CY_A!40rpcLwZQrpW>M4(MVsS4Yx-3Ye z%fVn%afJy1tIlWoU1TJ zxo$JrGcPmW$sdfyN@u(K@0w)%dZ2?aFHCt;0)h#24uO*jIxf?mD9O;QW#Cz+5Sx@@ z%W{7qgDw&pGIo88Y{)qAS>Od?@-7NgN(NU-7-%vv*lZjbS7f2Ho+@+CwKrSe`3wSQ ztV=y*(L6IA#3nWb&0?zKTP5wwJ!`~^nb^k?1HKIN(KN~AagKz7d72CpD9|FDSD?UE zmW6dA%?f8??h*60UGx4DjEgO*^oprLA?ts*%Y9qQJI@3Zv4Hx_Wz-R}j&bBW2=H@4 zz!qc65^B1{4>k+O68$DP=yq-NTuFyf*?(ei6lH9^ElM7WTMKJ#5y~ZV zYg?k_zDH|Wk0JrX6qP$z{r=0w3$|PeYS0HP7SmBOCx}eh>fld)`Q-lrb8BGn^Jc~x X8qiOaO%fSIq`l+|0ssI2M?y_POWI-E diff --git a/.phive/phars.xml b/.phive/phars.xml index b7a46302..6e05ec30 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,4 +1,4 @@ - + diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cf767fa..7439db6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. - Dropped support for PHP 7.2 ([#496]), by [@localheinz] - Dropped support for PHP 7.3 ([#498]), by [@localheinz] +- Dropped support for PHP 7.4 ([#499]), by [@localheinz] ## [`1.0.0`][1.0.0] @@ -454,6 +455,7 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#395]: https://github.com/ergebnis/phpstan-rules/pull/395 [#496]: https://github.com/ergebnis/phpstan-rules/pull/496 [#498]: https://github.com/ergebnis/phpstan-rules/pull/498 +[#499]: https://github.com/ergebnis/phpstan-rules/pull/498 [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique diff --git a/composer.json b/composer.json index a49a5d3c..0abbfdf2 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "source": "https://github.com/ergebnis/phpstan-rules" }, "require": { - "php": "~7.4.0 || ~8.0.0 || ~8.1.0", + "php": "~8.0.0 || ~8.1.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", "phpstan/phpstan": "^1.0.0" @@ -37,8 +37,7 @@ "phpunit/phpunit": "^8.5.26", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.0.0", - "vimeo/psalm": "^4.22", - "zendframework/zend-servicemanager": "^2.0.0" + "vimeo/psalm": "^4.22" }, "autoload": { "psr-4": { @@ -56,7 +55,7 @@ "infection/extension-installer": true }, "platform": { - "php": "7.4.29" + "php": "8.0.27" }, "preferred-install": "dist", "sort-packages": true diff --git a/composer.lock b/composer.lock index 94182910..e197dede 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": "603d9ead76dd1c4de04a67b5ea3530ef", + "content-hash": "2b63080b45687420eb73a23e3f92d7bb", "packages": [ { "name": "nikic/php-parser", @@ -512,42 +512,6 @@ ], "time": "2021-03-25T17:01:18+00:00" }, - { - "name": "container-interop/container-interop", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/container-interop/container-interop.git", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "shasum": "" - }, - "require": { - "psr/container": "^1.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Interop\\Container\\": "src/Interop/Container/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", - "homepage": "https://github.com/container-interop/container-interop", - "support": { - "issues": "https://github.com/container-interop/container-interop/issues", - "source": "https://github.com/container-interop/container-interop/tree/master" - }, - "abandoned": "psr/container", - "time": "2017-02-14T19:40:03+00:00" - }, { "name": "dnoegel/php-xdg-base-dir", "version": "v0.1.1", @@ -6703,63 +6667,6 @@ }, "abandoned": "symfony/filesystem", "time": "2015-12-17T08:42:14+00:00" - }, - { - "name": "zendframework/zend-servicemanager", - "version": "2.7.11", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-servicemanager.git", - "reference": "99ec9ed5d0f15aed9876433c74c2709eb933d4c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/99ec9ed5d0f15aed9876433c74c2709eb933d4c7", - "reference": "99ec9ed5d0f15aed9876433c74c2709eb933d4c7", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "~1.0", - "php": "^5.5 || ^7.0" - }, - "require-dev": { - "athletic/athletic": "dev-master", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-di": "~2.5", - "zendframework/zend-mvc": "~2.5" - }, - "suggest": { - "ocramius/proxy-manager": "ProxyManager 0.5.* to handle lazy initialization of services", - "zendframework/zend-di": "Zend\\Di component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\ServiceManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "homepage": "https://github.com/zendframework/zend-servicemanager", - "keywords": [ - "servicemanager", - "zf2" - ], - "support": { - "issues": "https://github.com/zendframework/zend-servicemanager/issues", - "source": "https://github.com/zendframework/zend-servicemanager/tree/release-2.7.11" - }, - "abandoned": "laminas/laminas-servicemanager", - "time": "2018-06-22T14:49:54+00:00" } ], "aliases": [], @@ -6768,12 +6675,12 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "~7.4.0 || ~8.0.0 || ~8.1.0", + "php": "~8.0.0 || ~8.1.0", "ext-mbstring": "*" }, "platform-dev": [], "platform-overrides": { - "php": "7.4.29" + "php": "8.0.27" }, "plugin-api-version": "2.3.0" } diff --git a/test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/ClassWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration.php b/test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/ClassWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration.php deleted file mode 100644 index d4c62952..00000000 --- a/test/Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/ClassWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration.php +++ /dev/null @@ -1,14 +0,0 @@ - [ - __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/anonymous-class-with-method-with-parameter-with-service-locator-interface-as-type-declaration.php', - [ - \sprintf( - 'Method __construct() in anonymous class has a parameter $container with a type declaration of %s, but containers should not be injected.', - ServiceManager\ServiceLocatorInterface::class - ), - 11, - ], - ], 'class-implementing-container-interface-with-method-with-parameter-with-self-as-type-declaration' => [ __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/ClassImplementingContainerInterfaceWithMethodWithParameterWithSelfAsTypeDeclaration.php', [ @@ -132,17 +121,6 @@ public function provideCasesWhereAnalysisShouldFail(): iterable 9, ], ], - 'class-with-method-with-parameter-with-service-locator-interface-as-type-declaration' => [ - __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/ClassWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration.php', - [ - \sprintf( - 'Method %s::method() has a parameter $container with a type declaration of %s, but containers should not be injected.', - Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration::class, - ServiceManager\ServiceLocatorInterface::class - ), - 11, - ], - ], 'interface-with-method-with-parameter-with-container-interface-as-type-declaration' => [ __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/InterfaceWithMethodWithParameterWithContainerInterfaceAsTypeDeclaration.php', [ @@ -154,17 +132,6 @@ public function provideCasesWhereAnalysisShouldFail(): iterable 11, ], ], - 'interface-with-method-with-parameter-with-service-locator-interface-as-type-declaration' => [ - __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Failure/InterfaceWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration.php', - [ - \sprintf( - 'Method %s::method() has a parameter $container with a type declaration of %s, but containers should not be injected.', - Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\InterfaceWithMethodWithParameterWithServiceLocatorInterfaceAsTypeDeclaration::class, - ServiceManager\ServiceLocatorInterface::class - ), - 11, - ], - ], ]; foreach ($paths as $description => [$path, $error]) { @@ -181,7 +148,6 @@ protected function getRule(): Rule $this->createReflectionProvider(), [ Container\ContainerInterface::class, - ServiceManager\ServiceLocatorInterface::class, ] ); } From 5d44b3c36fd55a79b8ed3736322a9857638f23a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:26:18 +0200 Subject: [PATCH 245/305] Enhancement: Use Php80 rule set --- .php-cs-fixer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index f6964b5d..7c437519 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -26,7 +26,7 @@ $license->save(); -$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php71($license->header())); +$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php80($license->header())); $config->getFinder() ->exclude([ From 8d346568e7500d2fcbf9cf53710800499bbbb5c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:28:06 +0200 Subject: [PATCH 246/305] Fix: Use Php73 rule set --- .php-cs-fixer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index 7c437519..c6c3bb29 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -26,7 +26,7 @@ $license->save(); -$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php80($license->header())); +$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php73($license->header())); $config->getFinder() ->exclude([ From 754edb3f469ff4c5be18dd396e748b483fb21429 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:28:21 +0200 Subject: [PATCH 247/305] Fix: Run 'make coding-standards' --- .php-cs-fixer.php | 4 ++-- src/Classes/FinalRule.php | 4 ++-- src/Classes/NoExtendsRule.php | 8 ++++---- .../Framework/TestCaseWithSuffixRule.php | 4 ++-- .../NoNullableReturnTypeDeclarationRule.php | 2 +- .../NoParameterWithNullDefaultValueRule.php | 4 ++-- ...arameterWithNullableTypeDeclarationRule.php | 4 ++-- src/Expressions/NoCompactRule.php | 2 +- src/Files/DeclareStrictTypesRule.php | 2 +- .../NoNullableReturnTypeDeclarationRule.php | 4 ++-- .../NoParameterWithNullDefaultValueRule.php | 4 ++-- ...arameterWithNullableTypeDeclarationRule.php | 4 ++-- src/Methods/FinalInAbstractClassRule.php | 4 ++-- ...onstructorParameterWithDefaultValueRule.php | 6 +++--- .../NoNullableReturnTypeDeclarationRule.php | 6 +++--- ...rameterWithContainerTypeDeclarationRule.php | 14 +++++++------- .../NoParameterWithNullDefaultValueRule.php | 6 +++--- ...arameterWithNullableTypeDeclarationRule.php | 6 +++--- src/Methods/PrivateInFinalClassRule.php | 4 ++-- test/Integration/AbstractTestCase.php | 4 ++-- test/Integration/Classes/FinalRuleTest.php | 14 +++++++------- ...FinalRuleWithAbstractClassesAllowedTest.php | 4 ++-- .../Classes/FinalRuleWithAttributesTest.php | 10 +++++----- .../FinalRuleWithExcludedClassNamesTest.php | 6 +++--- test/Integration/Classes/NoExtendsRuleTest.php | 4 ++-- ...sRuleWithClassesAllowedToBeExtendedTest.php | 4 ++-- .../Framework/TestCaseWithSuffixRuleTest.php | 4 ++-- .../Methods/FinalInAbstractClassRuleTest.php | 4 ++-- ...ructorParameterWithDefaultValueRuleTest.php | 4 ++-- ...NoNullableReturnTypeDeclarationRuleTest.php | 4 ++-- ...terWithContainerTypeDeclarationRuleTest.php | 18 +++++++++--------- ...NoParameterWithNullDefaultValueRuleTest.php | 12 ++++++------ ...eterWithNullableTypeDeclarationRuleTest.php | 4 ++-- .../Methods/PrivateInFinalClassRuleTest.php | 2 +- 34 files changed, 95 insertions(+), 95 deletions(-) diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index c6c3bb29..d2f49f95 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -18,10 +18,10 @@ __DIR__ . '/LICENSE.md', License\Range::since( License\Year::fromString('2018'), - new \DateTimeZone('UTC') + new \DateTimeZone('UTC'), ), License\Holder::fromString('Andreas Möller'), - License\Url::fromString('https://github.com/ergebnis/phpstan-rules') + License\Url::fromString('https://github.com/ergebnis/phpstan-rules'), ); $license->save(); diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index 20c84724..a0662dee 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -82,7 +82,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Class_::class, - \get_class($node) + \get_class($node), )); } @@ -109,7 +109,7 @@ public function processNode( return [ \sprintf( $this->errorMessageTemplate, - $node->namespacedName->toString() + $node->namespacedName->toString(), ), ]; } diff --git a/src/Classes/NoExtendsRule.php b/src/Classes/NoExtendsRule.php index efa3325d..c8e02b2e 100644 --- a/src/Classes/NoExtendsRule.php +++ b/src/Classes/NoExtendsRule.php @@ -42,7 +42,7 @@ public function __construct(array $classesAllowedToBeExtended) \array_map(static function (string $classAllowedToBeExtended): string { /** @var class-string $classAllowedToBeExtended */ return $classAllowedToBeExtended; - }, $classesAllowedToBeExtended) + }, $classesAllowedToBeExtended), )); } @@ -59,7 +59,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Class_::class, - \get_class($node) + \get_class($node), )); } @@ -77,7 +77,7 @@ public function processNode( return [ \sprintf( 'Anonymous class is not allowed to extend "%s".', - $extendedClassName + $extendedClassName, ), ]; } @@ -86,7 +86,7 @@ public function processNode( \sprintf( 'Class "%s" is not allowed to extend "%s".', $node->namespacedName->toString(), - $extendedClassName + $extendedClassName, ), ]; } diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index b7e0e601..ebe200a6 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -51,7 +51,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Class_::class, - \get_class($node) + \get_class($node), )); } @@ -94,7 +94,7 @@ public function processNode( \sprintf( 'Class %s extends %s, is concrete, but does not have a Test suffix.', $fullyQualifiedClassName, - $extendedPhpunitTestCaseClassName + $extendedPhpunitTestCaseClassName, ), ]; } diff --git a/src/Closures/NoNullableReturnTypeDeclarationRule.php b/src/Closures/NoNullableReturnTypeDeclarationRule.php index 56e8e976..27ff6fee 100644 --- a/src/Closures/NoNullableReturnTypeDeclarationRule.php +++ b/src/Closures/NoNullableReturnTypeDeclarationRule.php @@ -33,7 +33,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Expr\Closure::class, - \get_class($node) + \get_class($node), )); } diff --git a/src/Closures/NoParameterWithNullDefaultValueRule.php b/src/Closures/NoParameterWithNullDefaultValueRule.php index 1f613b90..af211283 100644 --- a/src/Closures/NoParameterWithNullDefaultValueRule.php +++ b/src/Closures/NoParameterWithNullDefaultValueRule.php @@ -33,7 +33,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Expr\Closure::class, - \get_class($node) + \get_class($node), )); } @@ -62,7 +62,7 @@ public function processNode( return \sprintf( 'Closure has parameter $%s with null as default value.', - $parameterName + $parameterName, ); }, $params); } diff --git a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php index 876ff4a9..071faf19 100644 --- a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php @@ -33,7 +33,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Expr\Closure::class, - \get_class($node) + \get_class($node), )); } @@ -58,7 +58,7 @@ public function processNode( return \sprintf( 'Closure has parameter $%s with a nullable type declaration.', - $parameterName + $parameterName, ); }, $params); } diff --git a/src/Expressions/NoCompactRule.php b/src/Expressions/NoCompactRule.php index 954581b6..5ebd1bf5 100644 --- a/src/Expressions/NoCompactRule.php +++ b/src/Expressions/NoCompactRule.php @@ -33,7 +33,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Expr\FuncCall::class, - \get_class($node) + \get_class($node), )); } diff --git a/src/Files/DeclareStrictTypesRule.php b/src/Files/DeclareStrictTypesRule.php index fef1681f..55ed7fc6 100644 --- a/src/Files/DeclareStrictTypesRule.php +++ b/src/Files/DeclareStrictTypesRule.php @@ -34,7 +34,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', FileNode::class, - \get_class($node) + \get_class($node), )); } diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index 65fb5107..0ed17de0 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -33,7 +33,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Function_::class, - \get_class($node) + \get_class($node), )); } @@ -48,7 +48,7 @@ public function processNode( return [ \sprintf( 'Function %s() has a nullable return type declaration.', - $node->namespacedName->toString() + $node->namespacedName->toString(), ), ]; } diff --git a/src/Functions/NoParameterWithNullDefaultValueRule.php b/src/Functions/NoParameterWithNullDefaultValueRule.php index 89d10efc..1114c2fd 100644 --- a/src/Functions/NoParameterWithNullDefaultValueRule.php +++ b/src/Functions/NoParameterWithNullDefaultValueRule.php @@ -33,7 +33,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Function_::class, - \get_class($node) + \get_class($node), )); } @@ -65,7 +65,7 @@ public function processNode( return \sprintf( 'Function %s() has parameter $%s with null as default value.', $functionName, - $parameterName + $parameterName, ); }, $params); } diff --git a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php index fa91a7cb..54cd959a 100644 --- a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php @@ -33,7 +33,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Function_::class, - \get_class($node) + \get_class($node), )); } @@ -61,7 +61,7 @@ public function processNode( return \sprintf( 'Function %s() has parameter $%s with a nullable type declaration.', $functionName, - $parameterName + $parameterName, ); }, $params); } diff --git a/src/Methods/FinalInAbstractClassRule.php b/src/Methods/FinalInAbstractClassRule.php index c002b5af..f9c61618 100644 --- a/src/Methods/FinalInAbstractClassRule.php +++ b/src/Methods/FinalInAbstractClassRule.php @@ -34,7 +34,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node) + \get_class($node), )); } @@ -69,7 +69,7 @@ public function processNode( \sprintf( 'Method %s::%s() is not final, but since the containing class is abstract, it should be.', $containingClass->getName(), - $node->name->toString() + $node->name->toString(), ), ]; } diff --git a/src/Methods/NoConstructorParameterWithDefaultValueRule.php b/src/Methods/NoConstructorParameterWithDefaultValueRule.php index afcddf51..c9b8bde5 100644 --- a/src/Methods/NoConstructorParameterWithDefaultValueRule.php +++ b/src/Methods/NoConstructorParameterWithDefaultValueRule.php @@ -34,7 +34,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node) + \get_class($node), )); } @@ -67,7 +67,7 @@ public function processNode( return \sprintf( 'Constructor in anonymous class has parameter $%s with default value.', - $parameterName + $parameterName, ); }, $params); } @@ -84,7 +84,7 @@ public function processNode( return \sprintf( 'Constructor in %s has parameter $%s with default value.', $className, - $parameterName + $parameterName, ); }, $params); } diff --git a/src/Methods/NoNullableReturnTypeDeclarationRule.php b/src/Methods/NoNullableReturnTypeDeclarationRule.php index a668c7af..65bd1dc7 100644 --- a/src/Methods/NoNullableReturnTypeDeclarationRule.php +++ b/src/Methods/NoNullableReturnTypeDeclarationRule.php @@ -34,7 +34,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node) + \get_class($node), )); } @@ -51,7 +51,7 @@ public function processNode( return [ \sprintf( 'Method %s() in anonymous class has a nullable return type declaration.', - $node->name->name + $node->name->name, ), ]; } @@ -60,7 +60,7 @@ public function processNode( \sprintf( 'Method %s::%s() has a nullable return type declaration.', $classReflection->getName(), - $node->name->name + $node->name->name, ), ]; } diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index 10ffd0b1..0fe35a4c 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -45,7 +45,7 @@ public function __construct( }, $interfacesImplementedByContainers), static function (string $interfaceImplementedByContainer): bool { return \interface_exists($interfaceImplementedByContainer); - } + }, ); } @@ -62,7 +62,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node) + \get_class($node), )); } @@ -103,7 +103,7 @@ function (array $errors, Node\Param $node) use ($scope, $containingClass, $metho $containingClass, $methodName, $parameterName, - $classUsedInTypeDeclaration + $classUsedInTypeDeclaration, ); return $errors; @@ -117,7 +117,7 @@ function (array $errors, Node\Param $node) use ($scope, $containingClass, $metho $containingClass, $methodName, $parameterName, - $classUsedInTypeDeclaration + $classUsedInTypeDeclaration, ); return $errors; @@ -126,7 +126,7 @@ function (array $errors, Node\Param $node) use ($scope, $containingClass, $metho return $errors; }, - [] + [], ); } @@ -141,7 +141,7 @@ private static function createError( 'Method %s() in anonymous class has a parameter $%s with a type declaration of %s, but containers should not be injected.', $methodName, $parameterName, - $classUsedInTypeDeclaration->getName() + $classUsedInTypeDeclaration->getName(), ); } @@ -150,7 +150,7 @@ private static function createError( $classReflection->getName(), $methodName, $parameterName, - $classUsedInTypeDeclaration->getName() + $classUsedInTypeDeclaration->getName(), ); } } diff --git a/src/Methods/NoParameterWithNullDefaultValueRule.php b/src/Methods/NoParameterWithNullDefaultValueRule.php index 993b74ae..2a30e48d 100644 --- a/src/Methods/NoParameterWithNullDefaultValueRule.php +++ b/src/Methods/NoParameterWithNullDefaultValueRule.php @@ -34,7 +34,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node) + \get_class($node), )); } @@ -70,7 +70,7 @@ public function processNode( return \sprintf( 'Method %s() in anonymous class has parameter $%s with null as default value.', $methodName, - $parameterName + $parameterName, ); }, $params); } @@ -88,7 +88,7 @@ public function processNode( 'Method %s::%s() has parameter $%s with null as default value.', $className, $methodName, - $parameterName + $parameterName, ); }, $params); } diff --git a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php index 6d8ed3dd..25dd138c 100644 --- a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php @@ -34,7 +34,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node) + \get_class($node), )); } @@ -66,7 +66,7 @@ public function processNode( return \sprintf( 'Method %s() in anonymous class has parameter $%s with a nullable type declaration.', $methodName, - $parameterName + $parameterName, ); }, $params); } @@ -84,7 +84,7 @@ public function processNode( 'Method %s::%s() has parameter $%s with a nullable type declaration.', $className, $methodName, - $parameterName + $parameterName, ); }, $params); } diff --git a/src/Methods/PrivateInFinalClassRule.php b/src/Methods/PrivateInFinalClassRule.php index 502f76bb..848c6be4 100644 --- a/src/Methods/PrivateInFinalClassRule.php +++ b/src/Methods/PrivateInFinalClassRule.php @@ -34,7 +34,7 @@ public function processNode( throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node) + \get_class($node), )); } @@ -69,7 +69,7 @@ public function processNode( \sprintf( 'Method %s::%s() is protected, but since the containing class is final, it can be private.', $containingClass->getName(), - $methodName + $methodName, ), ]; } diff --git a/test/Integration/AbstractTestCase.php b/test/Integration/AbstractTestCase.php index 900f09a8..5a67c225 100644 --- a/test/Integration/AbstractTestCase.php +++ b/test/Integration/AbstractTestCase.php @@ -29,7 +29,7 @@ final public function testAnalysisSucceeds(string $path): void [ $path, ], - [] + [], ); } @@ -44,7 +44,7 @@ final public function testAnalysisFails(string $path, array $error): void ], [ $error, - ] + ], ); } diff --git a/test/Integration/Classes/FinalRuleTest.php b/test/Integration/Classes/FinalRuleTest.php index 1c87b419..9fcf8221 100644 --- a/test/Integration/Classes/FinalRuleTest.php +++ b/test/Integration/Classes/FinalRuleTest.php @@ -57,7 +57,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRule\Failure\AbstractClass::class + Fixture\Classes\FinalRule\Failure\AbstractClass::class, ), 7, ], @@ -67,7 +67,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRule\Failure\NeitherAbstractNorFinalClass::class + Fixture\Classes\FinalRule\Failure\NeitherAbstractNorFinalClass::class, ), 7, ], @@ -77,7 +77,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutEntityAnnotationInInlineDocBlock::class + Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutEntityAnnotationInInlineDocBlock::class, ), 8, ], @@ -87,7 +87,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutEntityAnnotationInMultilineDocBlock::class + Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutEntityAnnotationInMultilineDocBlock::class, ), 11, ], @@ -97,7 +97,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutOrmEntityAnnotationInInlineDocBlock::class + Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutOrmEntityAnnotationInInlineDocBlock::class, ), 8, ], @@ -107,7 +107,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutOrmEntityAnnotationInMultilineDocBlock::class + Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutOrmEntityAnnotationInMultilineDocBlock::class, ), 11, ], @@ -126,7 +126,7 @@ protected function getRule(): Rule { return new FinalRule( false, - [] + [], ); } } diff --git a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php index 14f28ad9..9485b0f9 100644 --- a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php +++ b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php @@ -52,7 +52,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is neither abstract nor final.', - Fixture\Classes\FinalRuleWithAbstractClassesAllowed\Failure\NeitherAbstractNorFinalClass::class + Fixture\Classes\FinalRuleWithAbstractClassesAllowed\Failure\NeitherAbstractNorFinalClass::class, ), 7, ], @@ -71,7 +71,7 @@ protected function getRule(): Rule { return new FinalRule( true, - [] + [], ); } } diff --git a/test/Integration/Classes/FinalRuleWithAttributesTest.php b/test/Integration/Classes/FinalRuleWithAttributesTest.php index 19ca0ea6..2ff3ac6a 100644 --- a/test/Integration/Classes/FinalRuleWithAttributesTest.php +++ b/test/Integration/Classes/FinalRuleWithAttributesTest.php @@ -52,7 +52,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedDoctrineOrmMappingEntityAttribute::class + Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedDoctrineOrmMappingEntityAttribute::class, ), 7, ], @@ -62,7 +62,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedEntityAttribute::class + Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedEntityAttribute::class, ), 7, ], @@ -72,7 +72,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedOrmEntityAttribute::class + Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedOrmEntityAttribute::class, ), 7, ], @@ -82,7 +82,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedOrmMappingEntityAttribute::class + Fixture\Classes\FinalRuleWithAttributes\Failure\NonFinalClassWithUnqualifiedOrmMappingEntityAttribute::class, ), 7, ], @@ -101,7 +101,7 @@ protected function getRule(): Rule { return new FinalRule( false, - [] + [], ); } } diff --git a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php index 479adc50..4d34ce7a 100644 --- a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php +++ b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php @@ -52,7 +52,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRuleWithExcludedClassNames\Failure\AbstractClass::class + Fixture\Classes\FinalRuleWithExcludedClassNames\Failure\AbstractClass::class, ), 7, ], @@ -62,7 +62,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Class %s is not final.', - Fixture\Classes\FinalRuleWithExcludedClassNames\Failure\NeitherAbstractNorFinalClass::class + Fixture\Classes\FinalRuleWithExcludedClassNames\Failure\NeitherAbstractNorFinalClass::class, ), 7, ], @@ -83,7 +83,7 @@ protected function getRule(): Rule false, [ Fixture\Classes\FinalRuleWithExcludedClassNames\Success\NeitherAbstractNorFinalClassButWhitelisted::class, - ] + ], ); } } diff --git a/test/Integration/Classes/NoExtendsRuleTest.php b/test/Integration/Classes/NoExtendsRuleTest.php index b12b6c59..9028b920 100644 --- a/test/Integration/Classes/NoExtendsRuleTest.php +++ b/test/Integration/Classes/NoExtendsRuleTest.php @@ -51,7 +51,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Class "%s" is not allowed to extend "%s".', Fixture\Classes\NoExtendsRule\Failure\ClassExtendingOtherClass::class, - Fixture\Classes\NoExtendsRule\Failure\OtherClass::class + Fixture\Classes\NoExtendsRule\Failure\OtherClass::class, ), 7, ], @@ -61,7 +61,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Anonymous class is not allowed to extend "%s".', - Fixture\Classes\NoExtendsRule\Failure\OtherClass::class + Fixture\Classes\NoExtendsRule\Failure\OtherClass::class, ), 7, ], diff --git a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php index b51ed104..6362285e 100644 --- a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php +++ b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php @@ -53,7 +53,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Class "%s" is not allowed to extend "%s".', Fixture\Classes\NoExtendsRuleWithClassesAllowedToBeExtended\Failure\ClassExtendingOtherClass::class, - Fixture\Classes\NoExtendsRuleWithClassesAllowedToBeExtended\Failure\OtherClass::class + Fixture\Classes\NoExtendsRuleWithClassesAllowedToBeExtended\Failure\OtherClass::class, ), 7, ], @@ -63,7 +63,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Anonymous class is not allowed to extend "%s".', - Fixture\Classes\NoExtendsRuleWithClassesAllowedToBeExtended\Failure\OtherClass::class + Fixture\Classes\NoExtendsRuleWithClassesAllowedToBeExtended\Failure\OtherClass::class, ), 7, ], diff --git a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php index ce3093d8..4f128833 100644 --- a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php +++ b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php @@ -50,7 +50,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Class %s extends %s, is concrete, but does not have a Test suffix.', Fixture\Classes\PHPUnit\Framework\TestCaseWithSuffixRule\Failure\ConcreteTestCaseExtendingAbstractTestCaseWithoutTestSuffix::class, - Framework\TestCase::class + Framework\TestCase::class, ), 12, ], @@ -61,7 +61,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Class %s extends %s, is concrete, but does not have a Test suffix.', Fixture\Classes\PHPUnit\Framework\TestCaseWithSuffixRule\Failure\ConcreteTestCaseWithoutTestSuffix::class, - Framework\TestCase::class + Framework\TestCase::class, ), 14, ], diff --git a/test/Integration/Methods/FinalInAbstractClassRuleTest.php b/test/Integration/Methods/FinalInAbstractClassRuleTest.php index 302891c4..a02da6e6 100644 --- a/test/Integration/Methods/FinalInAbstractClassRuleTest.php +++ b/test/Integration/Methods/FinalInAbstractClassRuleTest.php @@ -51,7 +51,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::method() is not final, but since the containing class is abstract, it should be.', - Fixture\Methods\FinalInAbstractClassRule\Failure\AbstractClassWithProtectedMethod::class + Fixture\Methods\FinalInAbstractClassRule\Failure\AbstractClassWithProtectedMethod::class, ), 9, ], @@ -61,7 +61,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::method() is not final, but since the containing class is abstract, it should be.', - Fixture\Methods\FinalInAbstractClassRule\Failure\AbstractClassWithPublicMethod::class + Fixture\Methods\FinalInAbstractClassRule\Failure\AbstractClassWithPublicMethod::class, ), 9, ], diff --git a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php index d63631e5..e5a9e90a 100644 --- a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php @@ -71,7 +71,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Constructor in %s has parameter $bar with default value.', - Fixture\Methods\NoConstructorParameterWithDefaultValueRule\Failure\ConstructorInClassWithParameterWithDefaultValue::class + Fixture\Methods\NoConstructorParameterWithDefaultValueRule\Failure\ConstructorInClassWithParameterWithDefaultValue::class, ), 9, ], @@ -81,7 +81,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Constructor in %s has parameter $bar with default value.', - Fixture\Methods\NoConstructorParameterWithDefaultValueRule\Failure\ConstructorWithWrongCapitalizationInClassWithParameterWithDefaultValue::class + Fixture\Methods\NoConstructorParameterWithDefaultValueRule\Failure\ConstructorWithWrongCapitalizationInClassWithParameterWithDefaultValue::class, ), 9, ], diff --git a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php index bad6e360..dc08716a 100644 --- a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php @@ -62,7 +62,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::toString() has a nullable return type declaration.', - Fixture\Methods\NoNullableReturnTypeDeclarationRule\Failure\MethodInClassWithNullableReturnTypeDeclaration::class + Fixture\Methods\NoNullableReturnTypeDeclarationRule\Failure\MethodInClassWithNullableReturnTypeDeclaration::class, ), 9, ], @@ -72,7 +72,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::toString() has a nullable return type declaration.', - Fixture\Methods\NoNullableReturnTypeDeclarationRule\Failure\MethodInInterfaceWithNullableReturnTypeDeclaration::class + Fixture\Methods\NoNullableReturnTypeDeclarationRule\Failure\MethodInInterfaceWithNullableReturnTypeDeclaration::class, ), 9, ], diff --git a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php index b7f946dc..4cd57a50 100644 --- a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php @@ -52,7 +52,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method __construct() in anonymous class has a parameter $container with a type declaration of %s, but containers should not be injected.', - Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassImplementingContainerInterface::class + Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassImplementingContainerInterface::class, ), 9, ], @@ -62,7 +62,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method __construct() in anonymous class has a parameter $container with a type declaration of %s, but containers should not be injected.', - Container\ContainerInterface::class + Container\ContainerInterface::class, ), 11, ], @@ -72,7 +72,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method __construct() in anonymous class has a parameter $container with a type declaration of %s, but containers should not be injected.', - Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\InterfaceExtendingContainerInterface::class + Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\InterfaceExtendingContainerInterface::class, ), 9, ], @@ -83,7 +83,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Method %s::method() has a parameter $container with a type declaration of %s, but containers should not be injected.', Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassImplementingContainerInterfaceWithMethodWithParameterWithSelfAsTypeDeclaration::class, - Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassImplementingContainerInterfaceWithMethodWithParameterWithSelfAsTypeDeclaration::class + Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassImplementingContainerInterfaceWithMethodWithParameterWithSelfAsTypeDeclaration::class, ), 11, ], @@ -94,7 +94,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Method %s::method() has a parameter $container with a type declaration of %s, but containers should not be injected.', Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassWithMethodWithParameterWithClassImplementingContainerInterfaceAsTypeDeclaration::class, - Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassImplementingContainerInterface::class + Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassImplementingContainerInterface::class, ), 9, ], @@ -105,7 +105,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Method %s::method() has a parameter $container with a type declaration of %s, but containers should not be injected.', Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassWithMethodWithParameterWithContainerInterfaceAsTypeDeclaration::class, - Container\ContainerInterface::class + Container\ContainerInterface::class, ), 11, ], @@ -116,7 +116,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Method %s::method() has a parameter $container with a type declaration of %s, but containers should not be injected.', Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\ClassWithMethodWithParameterWithInterfaceExtendingContainerInterfaceAsTypeDeclaration::class, - Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\InterfaceExtendingContainerInterface::class + Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\InterfaceExtendingContainerInterface::class, ), 9, ], @@ -127,7 +127,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable \sprintf( 'Method %s::method() has a parameter $container with a type declaration of %s, but containers should not be injected.', Fixture\Methods\NoParameterWithContainerTypeDeclarationRule\Failure\InterfaceWithMethodWithParameterWithContainerInterfaceAsTypeDeclaration::class, - Container\ContainerInterface::class + Container\ContainerInterface::class, ), 11, ], @@ -148,7 +148,7 @@ protected function getRule(): Rule $this->createReflectionProvider(), [ Container\ContainerInterface::class, - ] + ], ); } } diff --git a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php index 0d7687de..6ad9020b 100644 --- a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php @@ -82,7 +82,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::foo() has parameter $bar with null as default value.', - Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInClassWithParameterWithNullDefaultValue::class + Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInClassWithParameterWithNullDefaultValue::class, ), 9, ], @@ -92,7 +92,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::foo() has parameter $bar with null as default value.', - Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInClassWithParameterWithRootNamespaceReferencedNullDefaultValue::class + Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInClassWithParameterWithRootNamespaceReferencedNullDefaultValue::class, ), 9, ], @@ -102,7 +102,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::foo() has parameter $bar with null as default value.', - Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInClassWithParameterWithWronglyCapitalizedNullDefaultValue::class + Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInClassWithParameterWithWronglyCapitalizedNullDefaultValue::class, ), 9, ], @@ -112,7 +112,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::foo() has parameter $bar with null as default value.', - Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInInterfaceWithParameterWithNullDefaultValue::class + Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInInterfaceWithParameterWithNullDefaultValue::class, ), 9, ], @@ -122,7 +122,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::foo() has parameter $bar with null as default value.', - Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInInterfaceWithParameterWithRootNamespaceReferencedNullDefaultValue::class + Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInInterfaceWithParameterWithRootNamespaceReferencedNullDefaultValue::class, ), 9, ], @@ -132,7 +132,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::foo() has parameter $bar with null as default value.', - Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInInterfaceWithParameterWithWronlgyCapitalizedNullDefaultValue::class + Fixture\Methods\NoParameterWithNullDefaultValueRule\Failure\MethodInInterfaceWithParameterWithWronlgyCapitalizedNullDefaultValue::class, ), 9, ], diff --git a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php index fadb6a61..e0857ba0 100644 --- a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -65,7 +65,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::foo() has parameter $bar with a nullable type declaration.', - Fixture\Methods\NoParameterWithNullableTypeDeclarationRule\Failure\MethodInClassWithParameterWithNullableTypeDeclaration::class + Fixture\Methods\NoParameterWithNullableTypeDeclarationRule\Failure\MethodInClassWithParameterWithNullableTypeDeclaration::class, ), 9, ], @@ -75,7 +75,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::foo() has parameter $bar with a nullable type declaration.', - Fixture\Methods\NoParameterWithNullableTypeDeclarationRule\Failure\MethodInInterfaceWithParameterWithNullableTypeDeclaration::class + Fixture\Methods\NoParameterWithNullableTypeDeclarationRule\Failure\MethodInInterfaceWithParameterWithNullableTypeDeclaration::class, ), 9, ], diff --git a/test/Integration/Methods/PrivateInFinalClassRuleTest.php b/test/Integration/Methods/PrivateInFinalClassRuleTest.php index b01dd641..40258107 100644 --- a/test/Integration/Methods/PrivateInFinalClassRuleTest.php +++ b/test/Integration/Methods/PrivateInFinalClassRuleTest.php @@ -51,7 +51,7 @@ public function provideCasesWhereAnalysisShouldFail(): iterable [ \sprintf( 'Method %s::method() is protected, but since the containing class is final, it can be private.', - Fixture\Methods\PrivateInFinalClassRule\Failure\FinalClassWithProtectedMethod::class + Fixture\Methods\PrivateInFinalClassRule\Failure\FinalClassWithProtectedMethod::class, ), 9, ], From 7ca3176990e65414ad7eb7da0b41347f89e873b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:29:49 +0200 Subject: [PATCH 248/305] Fix: Remove ergebnis/test-util --- composer.json | 1 - composer.lock | 221 +------------------------------------------------- 2 files changed, 1 insertion(+), 221 deletions(-) diff --git a/composer.json b/composer.json index 0abbfdf2..18dce33c 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,6 @@ "ergebnis/composer-normalize": "^2.19.0", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^2.14.0", - "ergebnis/test-util": "^1.5.0", "nette/di": "^3.0.13", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", diff --git a/composer.lock b/composer.lock index e197dede..4cd20b2c 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": "2b63080b45687420eb73a23e3f92d7bb", + "content-hash": "6e6d9214a438aaf4e6a539e5185e39a0", "packages": [ { "name": "nikic/php-parser", @@ -1562,83 +1562,6 @@ ], "time": "2022-04-15T10:39:55+00:00" }, - { - "name": "ergebnis/classy", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/classy.git", - "reference": "72840bda3ce8b7bdc9362e8646141eb3c5ca9947" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/classy/zipball/72840bda3ce8b7bdc9362e8646141eb3c5ca9947", - "reference": "72840bda3ce8b7bdc9362e8646141eb3c5ca9947", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.13.2", - "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.13.0", - "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.0.0", - "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.70", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.14", - "psalm/plugin-phpunit": "~0.15.0", - "vimeo/psalm": "^4.4.1", - "zendframework/zend-file": "^2.8.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Ergebnis\\Classy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides a finder for classy constructs (classes, interfaces, and traits).", - "homepage": "https://github.com/ergebnis/classy", - "keywords": [ - "classes", - "classy", - "constructs", - "finder", - "interfaces", - "traits" - ], - "support": { - "issues": "https://github.com/ergebnis/classy/issues", - "source": "https://github.com/ergebnis/classy" - }, - "funding": [ - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], - "time": "2021-02-01T08:25:30+00:00" - }, { "name": "ergebnis/composer-normalize", "version": "2.19.0", @@ -1992,148 +1915,6 @@ ], "time": "2021-05-04T14:04:50+00:00" }, - { - "name": "ergebnis/test-util", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/test-util.git", - "reference": "7c85925bca8b2d2985eb7a208f53114dc64c780b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/test-util/zipball/7c85925bca8b2d2985eb7a208f53114dc64c780b", - "reference": "7c85925bca8b2d2985eb7a208f53114dc64c780b", - "shasum": "" - }, - "require": { - "ergebnis/classy": "^1.1.1", - "fakerphp/faker": "^1.14.1", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.13.3", - "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.13.0", - "ergebnis/phpstan-rules": "~0.15.3", - "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.65", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.18", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.15", - "psalm/plugin-phpunit": "~0.15.1", - "vimeo/psalm": "^4.7.0" - }, - "type": "library", - "extra": { - "composer-normalize": { - "indent-size": 2, - "indent-style": "space" - } - }, - "autoload": { - "psr-4": { - "Ergebnis\\Test\\Util\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides a helper trait and generic data providers for tests.", - "homepage": "https://github.com/ergebnis/test-util", - "keywords": [ - "assertion", - "faker", - "phpunit", - "test" - ], - "support": { - "issues": "https://github.com/ergebnis/test-util/issues", - "source": "https://github.com/ergebnis/test-util" - }, - "funding": [ - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], - "abandoned": "ergebnis/data-provider", - "time": "2021-03-30T15:07:05+00:00" - }, - { - "name": "fakerphp/faker", - "version": "v1.14.1", - "source": { - "type": "git", - "url": "https://github.com/FakerPHP/Faker.git", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "psr/container": "^1.0", - "symfony/deprecation-contracts": "^2.2" - }, - "conflict": { - "fzaninotto/faker": "*" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" - }, - "suggest": { - "ext-curl": "Required by Faker\\Provider\\Image to download images.", - "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", - "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", - "ext-mbstring": "Required for multibyte Unicode string functionality." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.15-dev" - } - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "support": { - "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1" - }, - "time": "2021-03-30T06:27:33+00:00" - }, { "name": "felixfbecker/advanced-json-rpc", "version": "v3.2.1", From 59c8bb6dfe05e70f39e559ffa78fe217d7ea44f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:32:13 +0200 Subject: [PATCH 249/305] Enhancement: Update ergebnis/php-cs-fixer-config --- composer.json | 2 +- composer.lock | 786 +++++++++++++++++++++++++------------------------- 2 files changed, 402 insertions(+), 386 deletions(-) diff --git a/composer.json b/composer.json index 18dce33c..daa75e1c 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,7 @@ "doctrine/orm": "^2.12.1", "ergebnis/composer-normalize": "^2.19.0", "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.14.0", + "ergebnis/php-cs-fixer-config": "^4.6.0", "nette/di": "^3.0.13", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", diff --git a/composer.lock b/composer.lock index 4cd20b2c..a2439485 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": "6e6d9214a438aaf4e6a539e5185e39a0", + "content-hash": "bdb0e2660d0fdaf2e2c512236c155836", "packages": [ { "name": "nikic/php-parser", @@ -367,18 +367,89 @@ ], "time": "2022-01-17T14:14:24+00:00" }, + { + "name": "composer/pcre", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-11-17T09:50:14+00:00" + }, { "name": "composer/semver", - "version": "3.2.9", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/a951f614bd64dcd26137bc9b7b2637ddcfc57649", - "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { @@ -430,7 +501,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.2" }, "funding": [ { @@ -446,29 +517,31 @@ "type": "tidelift" } ], - "time": "2022-02-04T13:58:43+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.4.6", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c" + "reference": "ced299686f41dce890debac69273b47ffe98a40c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0" + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" }, "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^6.0" }, "type": "library", "autoload": { @@ -494,7 +567,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" }, "funding": [ { @@ -510,7 +583,7 @@ "type": "tidelift" } ], - "time": "2021-03-25T17:01:18+00:00" + "time": "2022-02-25T21:32:43+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -551,30 +624,34 @@ }, { "name": "doctrine/annotations", - "version": "1.13.2", + "version": "1.14.3", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "5b668aef16090008790395c02c893b1ba13f7e08" + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", - "reference": "5b668aef16090008790395c02c893b1ba13f7e08", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", + "doctrine/lexer": "^1 || ^2", "ext-tokenizer": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2" + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "vimeo/psalm": "^4.10" + }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" }, "type": "library", "autoload": { @@ -617,9 +694,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.2" + "source": "https://github.com/doctrine/annotations/tree/1.14.3" }, - "time": "2021-08-05T19:00:23+00:00" + "time": "2023-02-01T09:20:38+00:00" }, { "name": "doctrine/cache", @@ -1846,38 +1923,31 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "2.14.0", + "version": "4.6.0", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "5750f9c35b447619401838e9fb9b25f64b90eb93" + "reference": "9bbf949893038baba287e208d5438afba0db7e7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/5750f9c35b447619401838e9fb9b25f64b90eb93", - "reference": "5750f9c35b447619401838e9fb9b25f64b90eb93", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/9bbf949893038baba287e208d5438afba0db7e7e", + "reference": "9bbf949893038baba287e208d5438afba0db7e7e", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.19.0", - "php": "^7.2 || ^8.0" + "friendsofphp/php-cs-fixer": "~3.9.5", + "php": "^7.4 || ^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.13.3", - "ergebnis/license": "^1.1.0", - "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.5.0", - "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.85", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.18", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.15", - "psalm/plugin-phpunit": "~0.15.1", - "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^4.7.2" + "ergebnis/composer-normalize": "^2.28.3", + "ergebnis/license": "^1.2.0", + "fakerphp/faker": "^1.20.0", + "phpunit/phpunit": "^9.5.21", + "psalm/plugin-phpunit": "~0.17.0", + "symfony/filesystem": "^4.4.0 || ^5.0.0", + "vimeo/psalm": "^4.24" }, "type": "library", "extra": { @@ -1907,13 +1977,7 @@ "issues": "https://github.com/ergebnis/php-cs-fixer-config/issues", "source": "https://github.com/ergebnis/php-cs-fixer-config" }, - "funding": [ - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], - "time": "2021-05-04T14:04:50+00:00" + "time": "2022-07-22T10:49:30+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -2018,85 +2082,65 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.19.0", + "version": "v3.9.5", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b" + "reference": "4465d70ba776806857a1ac2a6f877e582445ff36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/d5b8a9d852b292c2f8a035200fa6844b1f82300b", - "reference": "d5b8a9d852b292c2f8a035200fa6844b1f82300b", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/4465d70ba776806857a1ac2a6f877e582445ff36", + "reference": "4465d70ba776806857a1ac2a6f877e582445ff36", "shasum": "" }, "require": { - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.2 || ^2.0", - "doctrine/annotations": "^1.2", + "composer/semver": "^3.2", + "composer/xdebug-handler": "^3.0.3", + "doctrine/annotations": "^1.13", "ext-json": "*", "ext-tokenizer": "*", - "php": "^5.6 || ^7.0 || ^8.0", - "php-cs-fixer/diff": "^1.3", - "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", - "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", - "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", - "symfony/finder": "^3.0 || ^4.0 || ^5.0", - "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0", - "symfony/polyfill-php70": "^1.0", - "symfony/polyfill-php72": "^1.4", - "symfony/process": "^3.0 || ^4.0 || ^5.0", - "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" + "php": "^7.4 || ^8.0", + "php-cs-fixer/diff": "^2.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/event-dispatcher": "^5.4 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/options-resolver": "^5.4 || ^6.0", + "symfony/polyfill-mbstring": "^1.23", + "symfony/polyfill-php80": "^1.25", + "symfony/polyfill-php81": "^1.25", + "symfony/process": "^5.4 || ^6.0", + "symfony/stopwatch": "^5.4 || ^6.0" }, "require-dev": { - "justinrainbow/json-schema": "^5.0", - "keradus/cli-executor": "^1.4", - "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4.2", - "php-cs-fixer/accessible-object": "^1.0", + "justinrainbow/json-schema": "^5.2", + "keradus/cli-executor": "^1.5", + "mikey179/vfsstream": "^1.6.10", + "php-coveralls/php-coveralls": "^2.5.2", + "php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy-phpunit": "^1.1 || ^2.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5", + "phpspec/prophecy": "^1.15", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", "phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/traits": "^1.9.1", - "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", - "symfony/phpunit-bridge": "^5.2.1", - "symfony/yaml": "^3.0 || ^4.0 || ^5.0" + "symfony/phpunit-bridge": "^6.0", + "symfony/yaml": "^5.4 || ^6.0" }, "suggest": { "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters.", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", - "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." + "ext-mbstring": "For handling non-UTF8 characters." }, "bin": [ "php-cs-fixer" ], "type": "application", - "extra": { - "branch-alias": { - "dev-master": "2.19-dev" - } - }, "autoload": { "psr-4": { "PhpCsFixer\\": "src/" - }, - "classmap": [ - "tests/Test/AbstractFixerTestCase.php", - "tests/Test/AbstractIntegrationCaseFactory.php", - "tests/Test/AbstractIntegrationTestCase.php", - "tests/Test/Assert/AssertTokensTrait.php", - "tests/Test/IntegrationCase.php", - "tests/Test/IntegrationCaseFactory.php", - "tests/Test/IntegrationCaseFactoryInterface.php", - "tests/Test/InternalIntegrationCaseFactory.php", - "tests/Test/IsIdenticalConstraint.php", - "tests/Test/TokensWithObservedTransformers.php", - "tests/TestCase.php" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2115,7 +2159,7 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.19.0" + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.9.5" }, "funding": [ { @@ -2123,7 +2167,7 @@ "type": "github" } ], - "time": "2021-05-03T21:43:24+00:00" + "time": "2022-07-22T08:43:51+00:00" }, { "name": "justinrainbow/json-schema", @@ -3023,16 +3067,16 @@ }, { "name": "php-cs-fixer/diff", - "version": "v1.3.1", + "version": "v2.0.2", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759" + "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/dbd31aeb251639ac0b9e7e29405c1441907f5759", - "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3", + "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3", "shasum": "" }, "require": { @@ -3060,22 +3104,19 @@ { "name": "Kore Nordmann", "email": "mail@kore-nordmann.de" - }, - { - "name": "SpacePossum" } ], - "description": "sebastian/diff v2 backport support for PHP5.6", + "description": "sebastian/diff v3 backport support for PHP 5.6+", "homepage": "https://github.com/PHP-CS-Fixer", "keywords": [ "diff" ], "support": { "issues": "https://github.com/PHP-CS-Fixer/diff/issues", - "source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1" + "source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2" }, "abandoned": true, - "time": "2020-10-14T08:39:05+00:00" + "time": "2020-10-14T08:32:19+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -3861,20 +3902,20 @@ }, { "name": "psr/cache", - "version": "1.0.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { @@ -3894,7 +3935,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for caching libraries", @@ -3904,9 +3945,9 @@ "psr-6" ], "support": { - "source": "https://github.com/php-fig/cache/tree/master" + "source": "https://github.com/php-fig/cache/tree/3.0.0" }, - "time": "2016-08-06T20:24:11+00:00" + "time": "2021-02-03T23:26:27+00:00" }, { "name": "psr/container", @@ -3956,32 +3997,82 @@ }, "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": "" + }, + "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/log", - "version": "1.1.4", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4002,9 +4093,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "time": "2021-05-03T11:20:27+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -4737,46 +4828,42 @@ }, { "name": "symfony/console", - "version": "v5.4.7", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6" + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/900275254f0a1a2afff1ab0e11abd5587a10e1d6", - "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6", + "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "symfony/string": "^5.4|^6.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "^1|^2", - "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" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -4816,7 +4903,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.7" + "source": "https://github.com/symfony/console/tree/v6.0.19" }, "funding": [ { @@ -4832,29 +4919,29 @@ "type": "tidelift" } ], - "time": "2022-03-31T17:09:19+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.1", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.0.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -4883,7 +4970,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" }, "funding": [ { @@ -4899,42 +4986,42 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.20", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" + "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", + "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" + "php": ">=8.0.2", + "symfony/event-dispatcher-contracts": "^2|^3" }, "conflict": { - "symfony/dependency-injection": "<3.4" + "symfony/dependency-injection": "<5.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { - "psr/log": "~1.0", - "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/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^5.4|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -4966,7 +5053,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.20" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19" }, "funding": [ { @@ -4982,33 +5069,33 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.12", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", - "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=8.0.2", + "psr/event-dispatcher": "^1" }, "suggest": { - "psr/event-dispatcher": "", "symfony/event-dispatcher-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -5045,7 +5132,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.12" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2" }, "funding": [ { @@ -5061,25 +5148,26 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:41:36+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/filesystem", - "version": "v5.2.7", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0" + "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0", - "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214", + "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8" + "php": ">=8.0.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" }, "type": "library", "autoload": { @@ -5107,7 +5195,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.2.7" + "source": "https://github.com/symfony/filesystem/tree/v6.0.19" }, "funding": [ { @@ -5123,24 +5211,24 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:42:13+00:00" + "time": "2023-01-20T17:44:14+00:00" }, { "name": "symfony/finder", - "version": "v4.4.20", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6" + "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2543795ab1570df588b9bbd31e1a2bd7037b94f6", - "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6", + "url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11", + "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -5168,7 +5256,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v4.4.20" + "source": "https://github.com/symfony/finder/tree/v6.0.19" }, "funding": [ { @@ -5184,27 +5272,25 @@ "type": "tidelift" } ], - "time": "2021-02-12T10:48:09+00:00" + "time": "2023-01-20T17:44:14+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.2.4", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" + "reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", - "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/6a180d1c45e0d9797470ca9eb46215692de00fa3", + "reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php73": "~1.0", - "symfony/polyfill-php80": "^1.15" + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.1|^3" }, "type": "library", "autoload": { @@ -5237,7 +5323,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.2.4" + "source": "https://github.com/symfony/options-resolver/tree/v6.0.19" }, "funding": [ { @@ -5253,20 +5339,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T12:56:27+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.25.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "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/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "" }, "require": { @@ -5281,7 +5367,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5319,7 +5405,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -5335,20 +5421,20 @@ "type": "tidelift" } ], - "time": "2021-10-20T20:35:02+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.25.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" }, "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/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", "shasum": "" }, "require": { @@ -5360,7 +5446,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5400,7 +5486,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.27.0" }, "funding": [ { @@ -5416,20 +5502,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T21:10:46+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.25.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" }, "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/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", "shasum": "" }, "require": { @@ -5441,7 +5527,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5484,7 +5570,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.27.0" }, "funding": [ { @@ -5500,20 +5586,20 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.25.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "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/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "" }, "require": { @@ -5528,7 +5614,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5567,75 +5653,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.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-11-30T18:21:41+00:00" - }, - { - "name": "symfony/polyfill-php70", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "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 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -5651,20 +5669,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.25.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", "shasum": "" }, "require": { @@ -5673,7 +5691,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5711,7 +5729,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" }, "funding": [ { @@ -5727,20 +5745,20 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:17:38+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.25.0", + "name": "symfony/polyfill-php80", + "version": "v1.27.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", "shasum": "" }, "require": { @@ -5749,7 +5767,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5761,7 +5779,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, "classmap": [ "Resources/stubs" @@ -5772,6 +5790,10 @@ "MIT" ], "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -5781,7 +5803,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -5790,7 +5812,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" }, "funding": [ { @@ -5806,20 +5828,20 @@ "type": "tidelift" } ], - "time": "2021-06-05T21:20:04+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.25.0", + "name": "symfony/polyfill-php81", + "version": "v1.27.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", "shasum": "" }, "require": { @@ -5828,7 +5850,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5840,7 +5862,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Polyfill\\Php81\\": "" }, "classmap": [ "Resources/stubs" @@ -5851,10 +5873,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -5864,7 +5882,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -5873,7 +5891,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" }, "funding": [ { @@ -5889,25 +5907,24 @@ "type": "tidelift" } ], - "time": "2022-03-04T08:16:47+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/process", - "version": "v5.2.7", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e" + "reference": "2114fd60f26a296cc403a7939ab91478475a33d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", - "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", + "url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4", + "reference": "2114fd60f26a296cc403a7939ab91478475a33d4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -5935,7 +5952,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/process/tree/v6.0.19" }, "funding": [ { @@ -5951,20 +5968,20 @@ "type": "tidelift" } ], - "time": "2021-04-08T10:27:02+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.1", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c" + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/24d9dc654b83e91aa59f9d167b131bc3b5bea24c", - "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "shasum": "" }, "require": { @@ -6018,7 +6035,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.1" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" }, "funding": [ { @@ -6034,25 +6051,25 @@ "type": "tidelift" } ], - "time": "2022-03-13T20:07:29+00:00" + "time": "2022-05-30T19:17:29+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.7", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "d99310c33e833def36419c284f60e8027d359678" + "reference": "011e781839dd1d2eb8119f65ac516a530f60226d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d99310c33e833def36419c284f60e8027d359678", - "reference": "d99310c33e833def36419c284f60e8027d359678", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/011e781839dd1d2eb8119f65ac516a530f60226d", + "reference": "011e781839dd1d2eb8119f65ac516a530f60226d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/service-contracts": "^1.0|^2" + "php": ">=8.0.2", + "symfony/service-contracts": "^1|^2|^3" }, "type": "library", "autoload": { @@ -6080,7 +6097,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/stopwatch/tree/v6.0.19" }, "funding": [ { @@ -6096,38 +6113,37 @@ "type": "tidelift" } ], - "time": "2021-03-29T15:28:41+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/string", - "version": "v5.4.3", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", + "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "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" + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": ">=3.0" + "symfony/translation-contracts": "<2.0" }, "require-dev": { - "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|^6.0" + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -6166,7 +6182,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.3" + "source": "https://github.com/symfony/string/tree/v6.0.19" }, "funding": [ { @@ -6182,7 +6198,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "theseer/tokenizer", From 007790619bb5c20114c92a4ad4e2bc8dadb1039c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:33:15 +0200 Subject: [PATCH 250/305] Fix: Do not use removed --diff-format option --- .github/workflows/integrate.yaml | 4 ++-- Makefile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 371476ea..01b0989f 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -77,10 +77,10 @@ jobs: restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --dry-run --verbose" + run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --dry-run --verbose" - name: "Run friendsofphp/php-cs-fixer on fixtures" - run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --diff-format=udiff --dry-run --verbose" + run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --dry-run --verbose" dependency-analysis: name: "Dependency Analysis" diff --git a/Makefile b/Makefile index 5a279c27..5b26bbd8 100644 --- a/Makefile +++ b/Makefile @@ -14,8 +14,8 @@ coding-standards: vendor ## Normalizes composer.json with ergebnis/composer-norm composer normalize yamllint -c .yamllint.yaml --strict . mkdir -p .build/php-cs-fixer - vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose - vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --diff-format=udiff --verbose + vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --verbose + vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --verbose .PHONY: dependency-analysis dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer-require-checker From 6392fa983a647788a2b3d60845e537c57353b3c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:33:40 +0200 Subject: [PATCH 251/305] Fix: Use Php80 rule set --- .php-cs-fixer.fixture.php | 2 +- .php-cs-fixer.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.php-cs-fixer.fixture.php b/.php-cs-fixer.fixture.php index 8d5d0c4f..d215535b 100644 --- a/.php-cs-fixer.fixture.php +++ b/.php-cs-fixer.fixture.php @@ -13,7 +13,7 @@ use Ergebnis\PhpCsFixer; -$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php71(''), [ +$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php80(''), [ 'constant_case' => false, 'declare_strict_types' => false, 'error_suppression' => false, diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index d2f49f95..59585e1d 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -26,7 +26,7 @@ $license->save(); -$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php73($license->header())); +$config = PhpCsFixer\Config\Factory::fromRuleSet(new PhpCsFixer\Config\RuleSet\Php80($license->header())); $config->getFinder() ->exclude([ From 73d7ef8f636ba46fa76822e67fc85aafa42fa7ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 15:34:00 +0200 Subject: [PATCH 252/305] Fix: Run 'make coding-standards' --- .php-cs-fixer.fixture.php | 2 +- src/Classes/FinalRule.php | 22 +++++++------------ src/Classes/NoExtendsRule.php | 8 +++---- .../Framework/TestCaseWithSuffixRule.php | 11 ++++------ .../NoNullableReturnTypeDeclarationRule.php | 4 ++-- .../NoParameterWithNullDefaultValueRule.php | 4 ++-- ...rameterWithNullableTypeDeclarationRule.php | 4 ++-- src/Expressions/NoCompactRule.php | 4 ++-- src/Expressions/NoEmptyRule.php | 2 +- src/Expressions/NoErrorSuppressionRule.php | 2 +- src/Expressions/NoEvalRule.php | 2 +- src/Expressions/NoIssetRule.php | 2 +- src/Files/DeclareStrictTypesRule.php | 4 ++-- .../NoNullableReturnTypeDeclarationRule.php | 4 ++-- .../NoParameterWithNullDefaultValueRule.php | 4 ++-- ...rameterWithNullableTypeDeclarationRule.php | 4 ++-- src/Methods/FinalInAbstractClassRule.php | 4 ++-- ...nstructorParameterWithDefaultValueRule.php | 4 ++-- .../NoNullableReturnTypeDeclarationRule.php | 4 ++-- ...ameterWithContainerTypeDeclarationRule.php | 15 +++++-------- .../NoParameterWithNullDefaultValueRule.php | 4 ++-- ...rameterWithNullableTypeDeclarationRule.php | 4 ++-- src/Methods/PrivateInFinalClassRule.php | 4 ++-- src/Statements/NoSwitchRule.php | 2 +- .../Failure/compact-used-with-alias.php | 2 +- .../compact-used-with-correct-case.php | 2 +- .../compact-used-with-incorrect-case.php | 2 +- .../Success/compact-not-used.php | 2 +- .../Failure/switch-used-with-correct-case.php | 1 + .../switch-used-with-incorrect-case.php | 1 + 30 files changed, 62 insertions(+), 72 deletions(-) diff --git a/.php-cs-fixer.fixture.php b/.php-cs-fixer.fixture.php index d215535b..90182ec1 100644 --- a/.php-cs-fixer.fixture.php +++ b/.php-cs-fixer.fixture.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * Copyright (c) 2018-2020 Andreas Möller + * Copyright (c) 2018-2023 Andreas Möller * * For the full copyright and license information, please view * the LICENSE.md file that was distributed with this source code. diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index a0662dee..cfaba3b8 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -24,7 +24,7 @@ final class FinalRule implements Rule /** * @var array */ - private static $whitelistedAnnotations = [ + private static array $whitelistedAnnotations = [ 'Entity', 'ORM\Entity', 'ORM\Mapping\Entity', @@ -33,31 +33,25 @@ final class FinalRule implements Rule /** * @var array */ - private static $whitelistedAttributes = [ + private static array $whitelistedAttributes = [ 'Doctrine\ORM\Mapping\Entity', ]; - /** - * @var bool - */ - private $allowAbstractClasses; + private bool $allowAbstractClasses; /** * @var array */ - private $classesNotRequiredToBeAbstractOrFinal; + private array $classesNotRequiredToBeAbstractOrFinal; - /** - * @var string - */ - private $errorMessageTemplate = 'Class %s is not final.'; + private string $errorMessageTemplate = 'Class %s is not final.'; /** * @param array $classesNotRequiredToBeAbstractOrFinal */ public function __construct( bool $allowAbstractClasses, - array $classesNotRequiredToBeAbstractOrFinal + array $classesNotRequiredToBeAbstractOrFinal, ) { $this->allowAbstractClasses = $allowAbstractClasses; $this->classesNotRequiredToBeAbstractOrFinal = \array_map(static function (string $classNotRequiredToBeAbstractOrFinal): string { @@ -76,13 +70,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\Class_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Class_::class, - \get_class($node), + $node::class, )); } diff --git a/src/Classes/NoExtendsRule.php b/src/Classes/NoExtendsRule.php index c8e02b2e..6698d46f 100644 --- a/src/Classes/NoExtendsRule.php +++ b/src/Classes/NoExtendsRule.php @@ -23,14 +23,14 @@ final class NoExtendsRule implements Rule /** * @var array */ - private static $defaultClassesAllowedToBeExtended = [ + private static array $defaultClassesAllowedToBeExtended = [ 'PHPUnit\\Framework\\TestCase', ]; /** * @var array */ - private $classesAllowedToBeExtended; + private array $classesAllowedToBeExtended; /** * @param array $classesAllowedToBeExtended @@ -53,13 +53,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\Class_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Class_::class, - \get_class($node), + $node::class, )); } diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index ebe200a6..db1c2c65 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -24,14 +24,11 @@ final class TestCaseWithSuffixRule implements Rules\Rule /** * @var array */ - private static $phpunitTestCaseClassNames = [ + private static array $phpunitTestCaseClassNames = [ 'PHPUnit\Framework\TestCase', ]; - /** - * @var Reflection\ReflectionProvider - */ - private $reflectionProvider; + private Reflection\ReflectionProvider $reflectionProvider; public function __construct(Reflection\ReflectionProvider $reflectionProvider) { @@ -45,13 +42,13 @@ public function getNodeType(): string public function processNode( Node $node, - Analyser\Scope $scope + Analyser\Scope $scope, ): array { if (!$node instanceof Node\Stmt\Class_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Class_::class, - \get_class($node), + $node::class, )); } diff --git a/src/Closures/NoNullableReturnTypeDeclarationRule.php b/src/Closures/NoNullableReturnTypeDeclarationRule.php index 27ff6fee..6cfef38e 100644 --- a/src/Closures/NoNullableReturnTypeDeclarationRule.php +++ b/src/Closures/NoNullableReturnTypeDeclarationRule.php @@ -27,13 +27,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Expr\Closure) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Expr\Closure::class, - \get_class($node), + $node::class, )); } diff --git a/src/Closures/NoParameterWithNullDefaultValueRule.php b/src/Closures/NoParameterWithNullDefaultValueRule.php index af211283..8aa94991 100644 --- a/src/Closures/NoParameterWithNullDefaultValueRule.php +++ b/src/Closures/NoParameterWithNullDefaultValueRule.php @@ -27,13 +27,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Expr\Closure) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Expr\Closure::class, - \get_class($node), + $node::class, )); } diff --git a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php index 071faf19..2c2137fe 100644 --- a/src/Closures/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Closures/NoParameterWithNullableTypeDeclarationRule.php @@ -27,13 +27,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Expr\Closure) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Expr\Closure::class, - \get_class($node), + $node::class, )); } diff --git a/src/Expressions/NoCompactRule.php b/src/Expressions/NoCompactRule.php index 5ebd1bf5..bb02175c 100644 --- a/src/Expressions/NoCompactRule.php +++ b/src/Expressions/NoCompactRule.php @@ -27,13 +27,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Expr\FuncCall) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Expr\FuncCall::class, - \get_class($node), + $node::class, )); } diff --git a/src/Expressions/NoEmptyRule.php b/src/Expressions/NoEmptyRule.php index 8bb71ee8..f40c03b3 100644 --- a/src/Expressions/NoEmptyRule.php +++ b/src/Expressions/NoEmptyRule.php @@ -26,7 +26,7 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { return [ 'Language construct empty() should not be used.', diff --git a/src/Expressions/NoErrorSuppressionRule.php b/src/Expressions/NoErrorSuppressionRule.php index b8af2fba..0b661d8b 100644 --- a/src/Expressions/NoErrorSuppressionRule.php +++ b/src/Expressions/NoErrorSuppressionRule.php @@ -26,7 +26,7 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { return [ 'Error suppression via "@" should not be used.', diff --git a/src/Expressions/NoEvalRule.php b/src/Expressions/NoEvalRule.php index 0615a466..da157504 100644 --- a/src/Expressions/NoEvalRule.php +++ b/src/Expressions/NoEvalRule.php @@ -26,7 +26,7 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { return [ 'Language construct eval() should not be used.', diff --git a/src/Expressions/NoIssetRule.php b/src/Expressions/NoIssetRule.php index ec80ac68..86cf04ad 100644 --- a/src/Expressions/NoIssetRule.php +++ b/src/Expressions/NoIssetRule.php @@ -26,7 +26,7 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { return [ 'Language construct isset() should not be used.', diff --git a/src/Files/DeclareStrictTypesRule.php b/src/Files/DeclareStrictTypesRule.php index 55ed7fc6..7f6fd316 100644 --- a/src/Files/DeclareStrictTypesRule.php +++ b/src/Files/DeclareStrictTypesRule.php @@ -28,13 +28,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof FileNode) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', FileNode::class, - \get_class($node), + $node::class, )); } diff --git a/src/Functions/NoNullableReturnTypeDeclarationRule.php b/src/Functions/NoNullableReturnTypeDeclarationRule.php index 0ed17de0..040f09c0 100644 --- a/src/Functions/NoNullableReturnTypeDeclarationRule.php +++ b/src/Functions/NoNullableReturnTypeDeclarationRule.php @@ -27,13 +27,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\Function_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Function_::class, - \get_class($node), + $node::class, )); } diff --git a/src/Functions/NoParameterWithNullDefaultValueRule.php b/src/Functions/NoParameterWithNullDefaultValueRule.php index 1114c2fd..d526238e 100644 --- a/src/Functions/NoParameterWithNullDefaultValueRule.php +++ b/src/Functions/NoParameterWithNullDefaultValueRule.php @@ -27,13 +27,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\Function_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Function_::class, - \get_class($node), + $node::class, )); } diff --git a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php index 54cd959a..e1ec05f3 100644 --- a/src/Functions/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Functions/NoParameterWithNullableTypeDeclarationRule.php @@ -27,13 +27,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\Function_) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\Function_::class, - \get_class($node), + $node::class, )); } diff --git a/src/Methods/FinalInAbstractClassRule.php b/src/Methods/FinalInAbstractClassRule.php index f9c61618..1c1e8db6 100644 --- a/src/Methods/FinalInAbstractClassRule.php +++ b/src/Methods/FinalInAbstractClassRule.php @@ -28,13 +28,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node), + $node::class, )); } diff --git a/src/Methods/NoConstructorParameterWithDefaultValueRule.php b/src/Methods/NoConstructorParameterWithDefaultValueRule.php index c9b8bde5..5a6ff00d 100644 --- a/src/Methods/NoConstructorParameterWithDefaultValueRule.php +++ b/src/Methods/NoConstructorParameterWithDefaultValueRule.php @@ -28,13 +28,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node), + $node::class, )); } diff --git a/src/Methods/NoNullableReturnTypeDeclarationRule.php b/src/Methods/NoNullableReturnTypeDeclarationRule.php index 65bd1dc7..228dad26 100644 --- a/src/Methods/NoNullableReturnTypeDeclarationRule.php +++ b/src/Methods/NoNullableReturnTypeDeclarationRule.php @@ -28,13 +28,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node), + $node::class, )); } diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index 0fe35a4c..374f0943 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -21,22 +21,19 @@ final class NoParameterWithContainerTypeDeclarationRule implements Rule { - /** - * @var Reflection\ReflectionProvider - */ - private $reflectionProvider; + private Reflection\ReflectionProvider $reflectionProvider; /** * @var array */ - private $interfacesImplementedByContainers; + private array $interfacesImplementedByContainers; /** * @param array $interfacesImplementedByContainers */ public function __construct( Reflection\ReflectionProvider $reflectionProvider, - array $interfacesImplementedByContainers + array $interfacesImplementedByContainers, ) { $this->reflectionProvider = $reflectionProvider; $this->interfacesImplementedByContainers = \array_filter( @@ -56,13 +53,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node), + $node::class, )); } @@ -134,7 +131,7 @@ private static function createError( Reflection\ClassReflection $classReflection, string $methodName, string $parameterName, - Reflection\ClassReflection $classUsedInTypeDeclaration + Reflection\ClassReflection $classUsedInTypeDeclaration, ): string { if ($classReflection->isAnonymous()) { return \sprintf( diff --git a/src/Methods/NoParameterWithNullDefaultValueRule.php b/src/Methods/NoParameterWithNullDefaultValueRule.php index 2a30e48d..236c43d1 100644 --- a/src/Methods/NoParameterWithNullDefaultValueRule.php +++ b/src/Methods/NoParameterWithNullDefaultValueRule.php @@ -28,13 +28,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node), + $node::class, )); } diff --git a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php index 25dd138c..27c3f90e 100644 --- a/src/Methods/NoParameterWithNullableTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithNullableTypeDeclarationRule.php @@ -28,13 +28,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node), + $node::class, )); } diff --git a/src/Methods/PrivateInFinalClassRule.php b/src/Methods/PrivateInFinalClassRule.php index 848c6be4..8c5ac29b 100644 --- a/src/Methods/PrivateInFinalClassRule.php +++ b/src/Methods/PrivateInFinalClassRule.php @@ -28,13 +28,13 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { if (!$node instanceof Node\Stmt\ClassMethod) { throw new ShouldNotHappenException(\sprintf( 'Expected node to be instance of "%s", but got instance of "%s" instead.', Node\Stmt\ClassMethod::class, - \get_class($node), + $node::class, )); } diff --git a/src/Statements/NoSwitchRule.php b/src/Statements/NoSwitchRule.php index 8f31277c..dec18949 100644 --- a/src/Statements/NoSwitchRule.php +++ b/src/Statements/NoSwitchRule.php @@ -26,7 +26,7 @@ public function getNodeType(): string public function processNode( Node $node, - Scope $scope + Scope $scope, ): array { return [ 'Control structures using switch should not be used.', diff --git a/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-alias.php b/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-alias.php index 8ad171a3..dcf14c48 100644 --- a/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-alias.php +++ b/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-alias.php @@ -11,5 +11,5 @@ return compress( 'foo', - 'bar' + 'bar', ); diff --git a/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-correct-case.php b/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-correct-case.php index 67f9d759..378d8545 100644 --- a/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-correct-case.php +++ b/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-correct-case.php @@ -9,5 +9,5 @@ return \compact( 'foo', - 'bar' + 'bar', ); diff --git a/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-incorrect-case.php b/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-incorrect-case.php index 67f9d759..378d8545 100644 --- a/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-incorrect-case.php +++ b/test/Fixture/Expressions/NoCompactRule/Failure/compact-used-with-incorrect-case.php @@ -9,5 +9,5 @@ return \compact( 'foo', - 'bar' + 'bar', ); diff --git a/test/Fixture/Expressions/NoCompactRule/Success/compact-not-used.php b/test/Fixture/Expressions/NoCompactRule/Success/compact-not-used.php index 3df26a3c..a593f72c 100644 --- a/test/Fixture/Expressions/NoCompactRule/Success/compact-not-used.php +++ b/test/Fixture/Expressions/NoCompactRule/Success/compact-not-used.php @@ -14,5 +14,5 @@ function _compact(string ...$names): array return _compact( 'foo', - 'bar' + 'bar', ); diff --git a/test/Fixture/Statements/NoSwitchRule/Failure/switch-used-with-correct-case.php b/test/Fixture/Statements/NoSwitchRule/Failure/switch-used-with-correct-case.php index aff5c998..8bd0c3c0 100644 --- a/test/Fixture/Statements/NoSwitchRule/Failure/switch-used-with-correct-case.php +++ b/test/Fixture/Statements/NoSwitchRule/Failure/switch-used-with-correct-case.php @@ -7,6 +7,7 @@ switch ($foo) { case 'foo': return 'It is foo!'; + case 'bar': return 'It is bar!'; } diff --git a/test/Fixture/Statements/NoSwitchRule/Failure/switch-used-with-incorrect-case.php b/test/Fixture/Statements/NoSwitchRule/Failure/switch-used-with-incorrect-case.php index f93be026..c6fc1677 100644 --- a/test/Fixture/Statements/NoSwitchRule/Failure/switch-used-with-incorrect-case.php +++ b/test/Fixture/Statements/NoSwitchRule/Failure/switch-used-with-incorrect-case.php @@ -7,6 +7,7 @@ sWiTcH ($foo) { case 'foo': return 'It is foo!'; + case 'bar': return 'It is bar!'; } From dac5c656379b9e74764498ecd5110784e4e7d86b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 19:57:22 +0200 Subject: [PATCH 253/305] Fix: Run 'make coding-standards' --- src/Classes/FinalRule.php | 2 -- src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php | 1 - 2 files changed, 3 deletions(-) diff --git a/src/Classes/FinalRule.php b/src/Classes/FinalRule.php index cfaba3b8..50e971db 100644 --- a/src/Classes/FinalRule.php +++ b/src/Classes/FinalRule.php @@ -36,14 +36,12 @@ final class FinalRule implements Rule private static array $whitelistedAttributes = [ 'Doctrine\ORM\Mapping\Entity', ]; - private bool $allowAbstractClasses; /** * @var array */ private array $classesNotRequiredToBeAbstractOrFinal; - private string $errorMessageTemplate = 'Class %s is not final.'; /** diff --git a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php index db1c2c65..22cef109 100644 --- a/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php +++ b/src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php @@ -27,7 +27,6 @@ final class TestCaseWithSuffixRule implements Rules\Rule private static array $phpunitTestCaseClassNames = [ 'PHPUnit\Framework\TestCase', ]; - private Reflection\ReflectionProvider $reflectionProvider; public function __construct(Reflection\ReflectionProvider $reflectionProvider) From 03b27ab2f56821fb0f5883289df71d71b27fa051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 19:59:12 +0200 Subject: [PATCH 254/305] Fix: Remove non-applicable dependabot exclusion --- .github/dependabot.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 1eedeb94..824196db 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -14,9 +14,6 @@ updates: - dependency-name: "phpstan/phpstan" versions: - ">= 0" - - dependency-name: "zendframework/zend-servicemanager" - versions: - - ">= 0" labels: - "dependency" open-pull-requests-limit: 10 From 8576c2d1e355fbbb3bb1d242803394c2dd1e47c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 17:59:31 +0000 Subject: [PATCH 255/305] github-actions(deps): Bump shivammathur/setup-php from 2.18.1 to 2.25.1 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.18.1 to 2.25.1. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.18.1...2.25.1) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 10 +++++----- .github/workflows/renew.yaml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 01b0989f..cc2ff282 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -39,7 +39,7 @@ jobs: strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" + uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -100,7 +100,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" + uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -142,7 +142,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" + uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -197,7 +197,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" + uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" @@ -242,7 +242,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" + uses: "shivammathur/setup-php@2.25.1" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 434e9fc4..fcdb2d7c 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -30,7 +30,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" + uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" From 9da3c6b50689e91de7f38db5d3f51f8f238926d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 17:59:59 +0000 Subject: [PATCH 256/305] composer(deps-dev): Bump ergebnis/composer-normalize Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.19.0 to 2.30.2. - [Release notes](https://github.com/ergebnis/composer-normalize/releases) - [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/composer-normalize/compare/2.19.0...2.30.2) --- updated-dependencies: - dependency-name: ergebnis/composer-normalize dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 324 ++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 251 insertions(+), 75 deletions(-) diff --git a/composer.json b/composer.json index daa75e1c..387bf6f0 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ }, "require-dev": { "doctrine/orm": "^2.12.1", - "ergebnis/composer-normalize": "^2.19.0", + "ergebnis/composer-normalize": "^2.30.2", "ergebnis/license": "^1.1.0", "ergebnis/php-cs-fixer-config": "^4.6.0", "nette/di": "^3.0.13", diff --git a/composer.lock b/composer.lock index a2439485..9202498d 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": "bdb0e2660d0fdaf2e2c512236c155836", + "content-hash": "09add8fa78fcc0385fcb9cb674cd32ab", "packages": [ { "name": "nikic/php-parser", @@ -1641,35 +1641,39 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.19.0", + "version": "2.30.2", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "ff00fd4dc084928b684b217041a87f7bd0eeddc5" + "reference": "54d58f7dc5517ae183ac2c06f1dcbd616876673c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/ff00fd4dc084928b684b217041a87f7bd0eeddc5", - "reference": "ff00fd4dc084928b684b217041a87f7bd0eeddc5", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/54d58f7dc5517ae183ac2c06f1dcbd616876673c", + "reference": "54d58f7dc5517ae183ac2c06f1dcbd616876673c", "shasum": "" }, "require": { "composer-plugin-api": "^2.0.0", - "ergebnis/json-normalizer": "^1.0.3", - "ergebnis/json-printer": "^3.1.1", - "justinrainbow/json-schema": "^5.2.11", + "ergebnis/json": "^1.0.1", + "ergebnis/json-normalizer": "^4.0.2", + "ergebnis/json-printer": "^3.3.0", + "ext-json": "*", + "justinrainbow/json-schema": "^5.2.12", "localheinz/diff": "^1.1.1", - "php": "^7.2 || ^8.0" + "php": "~8.0.0 || ~8.1.0 || ~8.2.0" }, "require-dev": { - "composer/composer": "^2.2.1", - "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.14.0", - "fakerphp/faker": "^1.17.0", - "phpunit/phpunit": "^8.5.22", - "psalm/plugin-phpunit": "~0.16.1", - "symfony/filesystem": "^5.4.0", - "vimeo/psalm": "^4.16.1" + "composer/composer": "^2.5.1", + "ergebnis/license": "^2.1.0", + "ergebnis/php-cs-fixer-config": "^5.3.1", + "fakerphp/faker": "^1.21.0", + "infection/infection": "~0.26.19", + "phpunit/phpunit": "^9.6.3", + "psalm/plugin-phpunit": "~0.18.4", + "rector/rector": "~0.15.18", + "symfony/filesystem": "^6.0.13", + "vimeo/psalm": "^5.7.7" }, "type": "composer-plugin", "extra": { @@ -1706,49 +1710,109 @@ "issues": "https://github.com/ergebnis/composer-normalize/issues", "source": "https://github.com/ergebnis/composer-normalize" }, - "funding": [ + "time": "2023-02-27T17:23:42+00:00" + }, + { + "name": "ergebnis/json", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/ergebnis/json.git", + "reference": "d66ea30060856d0729a4aa319a02752519ca63a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ergebnis/json/zipball/d66ea30060856d0729a4aa319a02752519ca63a0", + "reference": "d66ea30060856d0729a4aa319a02752519ca63a0", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.29.0", + "ergebnis/data-provider": "^1.2.0", + "ergebnis/license": "^2.1.0", + "ergebnis/php-cs-fixer-config": "^5.0.0", + "ergebnis/phpstan-rules": "^1.0.0", + "fakerphp/faker": "^1.20.0", + "infection/infection": "~0.26.16", + "phpunit/phpunit": "^9.5.27", + "psalm/plugin-phpunit": "~0.18.4", + "vimeo/psalm": "^5.1.0" + }, + "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "Ergebnis\\Json\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://github.com/localheinz", - "type": "github" + "name": "Andreas Möller", + "email": "am@localheinz.com" } ], - "time": "2021-12-28T10:38:12+00:00" + "description": "Provides a Json value object for representing a valid JSON string.", + "homepage": "https://github.com/ergebnis/json", + "keywords": [ + "json" + ], + "support": { + "issues": "https://github.com/ergebnis/json/issues", + "source": "https://github.com/ergebnis/json" + }, + "time": "2022-12-10T22:38:50+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "1.0.3", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "4a7f064ce34d5a2e382564565cdd433dbc5b9494" + "reference": "15df99fbf454da13b31008795a7397d3d7d73bb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/4a7f064ce34d5a2e382564565cdd433dbc5b9494", - "reference": "4a7f064ce34d5a2e382564565cdd433dbc5b9494", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/15df99fbf454da13b31008795a7397d3d7d73bb4", + "reference": "15df99fbf454da13b31008795a7397d3d7d73bb4", "shasum": "" }, "require": { - "ergebnis/json-printer": "^3.1.1", + "ergebnis/json": "^1.0.1", + "ergebnis/json-pointer": "^3.2.0", + "ergebnis/json-printer": "^3.3.0", + "ergebnis/json-schema-validator": "^4.0.0", "ext-json": "*", - "justinrainbow/json-schema": "^5.2.10", - "php": "^7.2 || ^8.0" + "justinrainbow/json-schema": "^5.2.12", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0" }, "require-dev": { - "ergebnis/license": "^1.1.0", - "ergebnis/php-cs-fixer-config": "^2.10.0", - "ergebnis/phpstan-rules": "~0.15.3", - "ergebnis/test-util": "^1.4.0", - "infection/infection": "~0.15.3", - "jangregor/phpstan-prophecy": "~0.8.1", - "phpstan/extension-installer": "^1.1.0", - "phpstan/phpstan": "~0.12.80", - "phpstan/phpstan-deprecation-rules": "~0.12.6", - "phpstan/phpstan-phpunit": "~0.12.17", - "phpstan/phpstan-strict-rules": "~0.12.9", - "phpunit/phpunit": "^8.5.14", - "psalm/plugin-phpunit": "~0.12.2", - "vimeo/psalm": "^3.18" + "composer/semver": "^3.2.1", + "ergebnis/data-provider": "^1.3.0", + "ergebnis/license": "^2.1.0", + "ergebnis/php-cs-fixer-config": "^5.3.1", + "fakerphp/faker": "^1.21.0", + "infection/infection": "~0.26.19", + "phpunit/phpunit": "^9.6.3", + "psalm/plugin-phpunit": "~0.18.4", + "rector/rector": "~0.15.18", + "symfony/filesystem": "^6.0.19", + "symfony/finder": "^6.0.19", + "vimeo/psalm": "^5.7.7" + }, + "suggest": { + "composer/semver": "If you want to use ComposerJsonNormalizer or VersionConstraintNormalizer" }, "type": "library", "autoload": { @@ -1776,47 +1840,98 @@ "issues": "https://github.com/ergebnis/json-normalizer/issues", "source": "https://github.com/ergebnis/json-normalizer" }, - "funding": [ + "time": "2023-02-27T17:17:30+00:00" + }, + { + "name": "ergebnis/json-pointer", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/ergebnis/json-pointer.git", + "reference": "861516ff5afa1aa8905fdf3361315909523a1bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ergebnis/json-pointer/zipball/861516ff5afa1aa8905fdf3361315909523a1bf8", + "reference": "861516ff5afa1aa8905fdf3361315909523a1bf8", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.28.3", + "ergebnis/data-provider": "^1.2.0", + "ergebnis/license": "^2.1.0", + "ergebnis/php-cs-fixer-config": "^5.0.0", + "fakerphp/faker": "^1.20.0", + "infection/infection": "~0.26.16", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "~0.18.3", + "vimeo/psalm": "^4.30" + }, + "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "Ergebnis\\Json\\Pointer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://github.com/localheinz", - "type": "github" + "name": "Andreas Möller", + "email": "am@localheinz.com" } ], - "time": "2021-03-06T13:33:57+00:00" + "description": "Provides JSON pointer as a value object.", + "homepage": "https://github.com/ergebnis/json-pointer", + "keywords": [ + "RFC6901", + "json", + "pointer" + ], + "support": { + "issues": "https://github.com/ergebnis/json-pointer/issues", + "source": "https://github.com/ergebnis/json-pointer" + }, + "time": "2022-11-28T17:03:31+00:00" }, { "name": "ergebnis/json-printer", - "version": "3.1.1", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-printer.git", - "reference": "e4190dadd9937a77d8afcaf2b6c42a528ab367d6" + "reference": "18920367473b099633f644f0ca6dc8794345148f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/e4190dadd9937a77d8afcaf2b6c42a528ab367d6", - "reference": "e4190dadd9937a77d8afcaf2b6c42a528ab367d6", + "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/18920367473b099633f644f0ca6dc8794345148f", + "reference": "18920367473b099633f644f0ca6dc8794345148f", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "^7.2 || ^8.0" + "php": "^8.0" }, "require-dev": { - "ergebnis/license": "^1.0.0", - "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/phpstan-rules": "~0.15.2", - "ergebnis/test-util": "^1.1.0", - "infection/infection": "~0.15.3", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.40", - "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.4", - "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", - "vimeo/psalm": "^3.14.2" + "ergebnis/license": "^2.0.0", + "ergebnis/php-cs-fixer-config": "^4.11.0", + "fakerphp/faker": "^1.20.0", + "infection/infection": "~0.26.6", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "~0.18.3", + "vimeo/psalm": "^4.30.0" }, "type": "library", "autoload": { @@ -1845,13 +1960,74 @@ "issues": "https://github.com/ergebnis/json-printer/issues", "source": "https://github.com/ergebnis/json-printer" }, - "funding": [ + "time": "2022-11-28T10:27:43+00:00" + }, + { + "name": "ergebnis/json-schema-validator", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/ergebnis/json-schema-validator.git", + "reference": "a6166272ac5691a9bc791f185841e5f92a6d4723" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ergebnis/json-schema-validator/zipball/a6166272ac5691a9bc791f185841e5f92a6d4723", + "reference": "a6166272ac5691a9bc791f185841e5f92a6d4723", + "shasum": "" + }, + "require": { + "ergebnis/json": "^1.0.0", + "ergebnis/json-pointer": "^3.2.0", + "ext-json": "*", + "justinrainbow/json-schema": "^5.2.12", + "php": "^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.21.0", + "ergebnis/data-provider": "^1.2.0", + "ergebnis/license": "^2.1.0", + "ergebnis/php-cs-fixer-config": "~5.0.0", + "fakerphp/faker": "^1.20.0", + "infection/infection": "~0.26.16", + "phpunit/phpunit": "~9.5.27", + "psalm/plugin-phpunit": "~0.18.4", + "vimeo/psalm": "^5.1.0" + }, + "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "Ergebnis\\Json\\SchemaValidator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://github.com/localheinz", - "type": "github" + "name": "Andreas Möller", + "email": "am@localheinz.com" } ], - "time": "2020-08-30T12:17:03+00:00" + "description": "Provides a JSON schema validator, building on top of justinrainbow/json-schema.", + "homepage": "https://github.com/ergebnis/json-schema-validator", + "keywords": [ + "json", + "schema", + "validator" + ], + "support": { + "issues": "https://github.com/ergebnis/json-schema-validator/issues", + "source": "https://github.com/ergebnis/json-schema-validator" + }, + "time": "2022-12-10T14:50:15+00:00" }, { "name": "ergebnis/license", @@ -2171,16 +2347,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.2.11", + "version": "5.2.12", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa" + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ab6744b7296ded80f8cc4f9509abbff393399aa", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", "shasum": "" }, "require": { @@ -2235,9 +2411,9 @@ ], "support": { "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.11" + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" }, - "time": "2021-07-22T09:24:00+00:00" + "time": "2022-04-13T08:02:27+00:00" }, { "name": "localheinz/diff", From 746cc8845748189c90f49e6453a4eab7b72d8d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 20:00:54 +0200 Subject: [PATCH 257/305] Fix: Remove dependabot exclusions --- .github/dependabot.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 824196db..eb22ef0e 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -7,13 +7,6 @@ updates: include: "scope" prefix: "composer" directory: "/" - ignore: - - dependency-name: "nikic/php-parser" - versions: - - ">= 0" - - dependency-name: "phpstan/phpstan" - versions: - - ">= 0" labels: - "dependency" open-pull-requests-limit: 10 From ba48d50490bb1b485b64ea667f1778d9b3fa1c92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 18:01:57 +0000 Subject: [PATCH 258/305] composer(deps-dev): Bump ergebnis/license from 1.1.0 to 2.1.0 Bumps [ergebnis/license](https://github.com/ergebnis/license) from 1.1.0 to 2.1.0. - [Release notes](https://github.com/ergebnis/license/releases) - [Changelog](https://github.com/ergebnis/license/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/license/compare/1.1.0...2.1.0) --- updated-dependencies: - dependency-name: ergebnis/license dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 44 ++++++++++++++++---------------------------- 2 files changed, 17 insertions(+), 29 deletions(-) diff --git a/composer.json b/composer.json index 387bf6f0..1103bf2b 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "require-dev": { "doctrine/orm": "^2.12.1", "ergebnis/composer-normalize": "^2.30.2", - "ergebnis/license": "^1.1.0", + "ergebnis/license": "^2.1.0", "ergebnis/php-cs-fixer-config": "^4.6.0", "nette/di": "^3.0.13", "phpstan/phpstan-deprecation-rules": "^1.0.0", diff --git a/composer.lock b/composer.lock index 9202498d..19a54a5e 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": "09add8fa78fcc0385fcb9cb674cd32ab", + "content-hash": "561e3cbb38cb23e27b54de3712821821", "packages": [ { "name": "nikic/php-parser", @@ -2031,38 +2031,32 @@ }, { "name": "ergebnis/license", - "version": "1.1.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/ergebnis/license.git", - "reference": "7b3022e34d650cffa907c123946ec2332a0c8780" + "reference": "7a2c4a89ebf284eab2867cd660f54d50fd049368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/license/zipball/7b3022e34d650cffa907c123946ec2332a0c8780", - "reference": "7b3022e34d650cffa907c123946ec2332a0c8780", + "url": "https://api.github.com/repos/ergebnis/license/zipball/7a2c4a89ebf284eab2867cd660f54d50fd049368", + "reference": "7a2c4a89ebf284eab2867cd660f54d50fd049368", "shasum": "" }, "require": { "ext-filter": "*", - "php": "^7.2 || ^8.0" + "php": "^8.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.7.1", - "ergebnis/php-cs-fixer-config": "^2.2.1", - "ergebnis/phpstan-rules": "~0.15.2", - "ergebnis/test-util": "^1.1.0", - "infection/infection": "~0.15.3", - "jangregor/phpstan-prophecy": "~0.8.0", - "phpstan/extension-installer": "^1.0.4", - "phpstan/phpstan": "~0.12.40", - "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-phpunit": "~0.12.16", - "phpstan/phpstan-strict-rules": "~0.12.4", - "phpunit/phpunit": "^8.5.8", - "psalm/plugin-phpunit": "~0.11.0", - "symfony/filesystem": "^4.4.11", - "vimeo/psalm": "^3.14.2" + "ergebnis/composer-normalize": "^2.28.3", + "ergebnis/data-provider": "^1.2.0", + "ergebnis/php-cs-fixer-config": "^4.11.0", + "fakerphp/faker": "^1.20.0", + "infection/infection": "~0.26.6", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "~0.18.3", + "symfony/filesystem": "^6.0.13", + "vimeo/psalm": "^4.29.0" }, "type": "library", "autoload": { @@ -2089,13 +2083,7 @@ "issues": "https://github.com/ergebnis/license/issues", "source": "https://github.com/ergebnis/license" }, - "funding": [ - { - "url": "https://github.com/localheinz", - "type": "github" - } - ], - "time": "2020-08-30T11:41:26+00:00" + "time": "2022-11-28T10:46:05+00:00" }, { "name": "ergebnis/php-cs-fixer-config", From 8d602c205e3b505ba61a985d2917ef015918ee2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 18:05:29 +0000 Subject: [PATCH 259/305] composer(deps-dev): Bump psr/container from 1.1.1 to 1.1.2 Bumps [psr/container](https://github.com/php-fig/container) from 1.1.1 to 1.1.2. - [Release notes](https://github.com/php-fig/container/releases) - [Commits](https://github.com/php-fig/container/compare/1.1.1...1.1.2) --- updated-dependencies: - dependency-name: psr/container dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index 1103bf2b..386ff131 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "phpstan/phpstan-strict-rules": "^1.1.0", "phpunit/phpunit": "^8.5.26", "psalm/plugin-phpunit": "~0.16.1", - "psr/container": "^1.0.0", + "psr/container": "^1.1.2", "vimeo/psalm": "^4.22" }, "autoload": { diff --git a/composer.lock b/composer.lock index 19a54a5e..b794e3ca 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": "561e3cbb38cb23e27b54de3712821821", + "content-hash": "05fb92a25ad810d993bb20e750e64473", "packages": [ { "name": "nikic/php-parser", @@ -4115,20 +4115,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": { @@ -4157,9 +4157,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", From 805a3a4553f4927c293278196beaffdf00499805 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 20:14:34 +0000 Subject: [PATCH 260/305] composer(deps-dev): Bump phpunit/phpunit from 8.5.26 to 9.6.7 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.26 to 9.6.7. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.7/ChangeLog-9.6.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.26...9.6.7) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 807 +++++++++++++++++++++++++++++++------------------- 2 files changed, 502 insertions(+), 307 deletions(-) diff --git a/composer.json b/composer.json index 386ff131..24a9a144 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "nette/di": "^3.0.13", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", - "phpunit/phpunit": "^8.5.26", + "phpunit/phpunit": "^9.6.7", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.1.2", "vimeo/psalm": "^4.22" diff --git a/composer.lock b/composer.lock index b794e3ca..7ee62386 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "05fb92a25ad810d993bb20e750e64473", + "content-hash": "7d8696983cba837036edd29452ab71df", "packages": [ { "name": "nikic/php-parser", - "version": "v4.13.2", + "version": "v4.15.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077" + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" }, "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/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", "shasum": "" }, "require": { @@ -58,9 +58,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.15.4" }, - "time": "2021-11-30T19:35:32+00:00" + "time": "2023-03-05T19:49:14+00:00" }, { "name": "phpstan/phpstan", @@ -1295,30 +1295,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { @@ -1345,7 +1345,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -1361,7 +1361,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "doctrine/lexer", @@ -2465,16 +2465,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -2512,7 +2512,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -2520,7 +2520,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "netresearch/jsonmapper", @@ -3442,73 +3442,6 @@ }, "time": "2022-03-15T21:29:03+00:00" }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" - }, - "time": "2021-12-08T12:19:24+00:00" - }, { "name": "phpstan/phpstan-deprecation-rules", "version": "1.0.0", @@ -3612,40 +3545,44 @@ }, { "name": "phpunit/php-code-coverage", - "version": "7.0.15", + "version": "9.2.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "819f92bba8b001d4363065928088de22f25a3a48" + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", - "reference": "819f92bba8b001d4363065928088de22f25a3a48", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-xmlwriter": "*", - "php": ">=7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.3 || ^4.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" + "nikic/php-parser": "^4.15", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^8.2.2" + "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-xdebug": "^2.7.2" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "9.2-dev" } }, "autoload": { @@ -3673,7 +3610,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" }, "funding": [ { @@ -3681,32 +3618,32 @@ "type": "github" } ], - "time": "2021-07-26T12:20:09+00:00" + "time": "2023-03-06T12:58:08+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3733,7 +3670,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -3741,26 +3678,38 @@ "type": "github" } ], - "time": "2021-12-02T12:42:26+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -3777,41 +3726,47 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "template" + "process" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" }, - "time": "2015-06-21T13:50:34+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" }, { - "name": "phpunit/php-timer", - "version": "2.1.3", + "name": "phpunit/php-text-template", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -3830,14 +3785,14 @@ "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "timer" + "template" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" }, "funding": [ { @@ -3845,33 +3800,32 @@ "type": "github" } ], - "time": "2020-11-30T08:20:02+00:00" + "time": "2020-10-26T05:33:50+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "3.1.3", + "name": "phpunit/php-timer", + "version": "5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", - "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -3886,17 +3840,18 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "tokenizer" + "timer" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3" + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" }, "funding": [ { @@ -3904,57 +3859,54 @@ "type": "github" } ], - "abandoned": true, - "time": "2021-07-26T12:15:06+00:00" + "time": "2020-10-26T13:16:10+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.26", + "version": "9.6.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "ef117c59fc4c54a979021b26d08a3373e386606d" + "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ef117c59fc4c54a979021b26d08a3373e386606d", - "reference": "ef117c59fc4c54a979021b26d08a3373e386606d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2", + "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", + "doctrine/instantiator": "^1.3.1 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.0", + "myclabs/deep-copy": "^1.10.1", "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", - "php": ">=7.2", - "phpspec/prophecy": "^1.10.3", - "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.4", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.3", - "sebastian/exporter": "^3.1.2", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" - }, - "require-dev": { - "ext-pdo": "*" + "php": ">=7.3", + "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", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "bin": [ "phpunit" @@ -3962,10 +3914,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "8.5-dev" + "dev-master": "9.6-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] @@ -3990,7 +3945,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.26" + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.7" }, "funding": [ { @@ -4000,9 +3956,13 @@ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" } ], - "time": "2022-04-01T12:34:39+00:00" + "time": "2023-04-14T08:58:40+00:00" }, { "name": "psalm/plugin-phpunit", @@ -4261,30 +4221,142 @@ }, "time": "2021-07-14T16:46:02+00:00" }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4306,7 +4378,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" }, "funding": [ { @@ -4314,34 +4386,34 @@ "type": "github" } ], - "time": "2020-11-30T08:15:22+00:00" + "time": "2020-09-28T05:30:19+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.3", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", - "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { - "php": ">=7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4380,7 +4452,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -4388,33 +4460,90 @@ "type": "github" } ], - "time": "2020-11-30T08:04:30+00:00" + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" }, { "name": "sebastian/diff", - "version": "3.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4446,7 +4575,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" }, "funding": [ { @@ -4454,27 +4583,27 @@ "type": "github" } ], - "time": "2020-11-30T07:59:04+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", - "version": "4.2.4", + "version": "5.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-posix": "*" @@ -4482,7 +4611,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -4509,7 +4638,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" }, "funding": [ { @@ -4517,34 +4646,34 @@ "type": "github" } ], - "time": "2020-11-30T07:53:42+00:00" + "time": "2023-02-03T06:03:51+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", - "reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4579,14 +4708,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/3.1.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -4594,30 +4723,30 @@ "type": "github" } ], - "time": "2021-11-11T13:51:24+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.2", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { - "php": ">=7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-uopz": "*" @@ -4625,7 +4754,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -4650,7 +4779,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -4658,34 +4787,91 @@ "type": "github" } ], - "time": "2022-02-10T06:55:38+00:00" + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.4", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4707,7 +4893,7 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" }, "funding": [ { @@ -4715,32 +4901,32 @@ "type": "github" } ], - "time": "2020-11-30T07:40:27+00:00" + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.2", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4762,7 +4948,7 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" }, "funding": [ { @@ -4770,32 +4956,32 @@ "type": "github" } ], - "time": "2020-11-30T07:37:18+00:00" + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.1", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4822,10 +5008,10 @@ } ], "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" }, "funding": [ { @@ -4833,29 +5019,32 @@ "type": "github" } ], - "time": "2020-11-30T07:34:24+00:00" + "time": "2023-02-03T06:07:39+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4877,7 +5066,7 @@ "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" }, "funding": [ { @@ -4885,32 +5074,32 @@ "type": "github" } ], - "time": "2020-11-30T07:30:19+00:00" + "time": "2020-09-28T06:45:17+00:00" }, { "name": "sebastian/type", - "version": "1.1.4", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", "shasum": "" }, "require": { - "php": ">=7.2" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -4933,7 +5122,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" }, "funding": [ { @@ -4941,29 +5130,29 @@ "type": "github" } ], - "time": "2020-11-30T07:25:11+00:00" + "time": "2023-02-03T06:13:03+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4986,9 +5175,15 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/master" + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" }, - "time": "2016-10-03T07:35:21+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" }, { "name": "symfony/console", From f0a46ce24dff4cd4baa5b33550eecc96010120a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:32:42 +0200 Subject: [PATCH 261/305] Fix: Migrate configuration for phpunit/phpunit --- test/Integration/phpunit.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/Integration/phpunit.xml b/test/Integration/phpunit.xml index 6b68ce51..7f1bb8b0 100644 --- a/test/Integration/phpunit.xml +++ b/test/Integration/phpunit.xml @@ -1,3 +1,4 @@ + - - + + ../../src/ - - + + . From ed62eb48127714ef04b6fbb303aa057e93ceffd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:33:32 +0200 Subject: [PATCH 262/305] Fix: Run 'make static-code-analysis-baseline' --- phpstan-baseline.neon | 20 -------------------- psalm-baseline.xml | 20 ++++++-------------- 2 files changed, 6 insertions(+), 34 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index f11eb45d..e2e011fd 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -5,38 +5,18 @@ parameters: count: 1 path: src/Classes/FinalRule.php - - - message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\ClassLike\\:\\:\\$namespacedName \\(PhpParser\\\\Node\\\\Name\\) in isset\\(\\) is not nullable\\.$#" - count: 1 - path: src/Classes/FinalRule.php - - message: "#^Language construct isset\\(\\) should not be used\\.$#" count: 1 path: src/Classes/NoExtendsRule.php - - - message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\ClassLike\\:\\:\\$namespacedName \\(PhpParser\\\\Node\\\\Name\\) in isset\\(\\) is not nullable\\.$#" - count: 1 - path: src/Classes/NoExtendsRule.php - - message: "#^Language construct isset\\(\\) should not be used\\.$#" count: 1 path: src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php - - - message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\ClassLike\\:\\:\\$namespacedName \\(PhpParser\\\\Node\\\\Name\\) in isset\\(\\) is not nullable\\.$#" - count: 1 - path: src/Classes/PHPUnit/Framework/TestCaseWithSuffixRule.php - - message: "#^Language construct isset\\(\\) should not be used\\.$#" count: 1 path: src/Functions/NoNullableReturnTypeDeclarationRule.php - - - message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\Function_\\:\\:\\$namespacedName \\(PhpParser\\\\Node\\\\Name\\) in isset\\(\\) is not nullable\\.$#" - count: 1 - path: src/Functions/NoNullableReturnTypeDeclarationRule.php - diff --git a/psalm-baseline.xml b/psalm-baseline.xml index befc467f..b4a4f85f 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,40 +1,32 @@ - - isset($node->namespacedName) - - - isset($node->namespacedName) - - - isset($node->namespacedName) - string - - - isset($node->namespacedName) - - $functionName + + $functionName + $functionName + + $functionName + From 881a1b74fdb4d277ded92504b59eb519fe30fba5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 21:35:20 +0000 Subject: [PATCH 263/305] composer(deps-dev): Bump nette/di from 3.0.13 to 3.1.2 Bumps [nette/di](https://github.com/nette/di) from 3.0.13 to 3.1.2. - [Release notes](https://github.com/nette/di/releases) - [Commits](https://github.com/nette/di/compare/v3.0.13...v3.1.2) --- updated-dependencies: - dependency-name: nette/di dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 212 +++++++++++++++++--------------------------------- 2 files changed, 73 insertions(+), 141 deletions(-) diff --git a/composer.json b/composer.json index 24a9a144..56bbb9cf 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "ergebnis/composer-normalize": "^2.30.2", "ergebnis/license": "^2.1.0", "ergebnis/php-cs-fixer-config": "^4.6.0", - "nette/di": "^3.0.13", + "nette/di": "^3.1.2", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", "phpunit/phpunit": "^9.6.7", diff --git a/composer.lock b/composer.lock index 7ee62386..1315ef56 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": "7d8696983cba837036edd29452ab71df", + "content-hash": "e1e0cf3d8eeb592fbc9c7b27f304f212", "packages": [ { "name": "nikic/php-parser", @@ -2575,39 +2575,36 @@ }, { "name": "nette/di", - "version": "v3.0.13", + "version": "v3.1.2", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "9878f2958a0a804b08430dbc719a52e493022739" + "reference": "355cefbd71011a76b670fda3340d612a6944f972" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/9878f2958a0a804b08430dbc719a52e493022739", - "reference": "9878f2958a0a804b08430dbc719a52e493022739", + "url": "https://api.github.com/repos/nette/di/zipball/355cefbd71011a76b670fda3340d612a6944f972", + "reference": "355cefbd71011a76b670fda3340d612a6944f972", "shasum": "" }, "require": { "ext-tokenizer": "*", "nette/neon": "^3.3 || ^4.0", "nette/php-generator": "^3.5.4 || ^4.0", - "nette/robot-loader": "^3.2", - "nette/schema": "^1.1", - "nette/utils": "^3.1.6", - "php": ">=7.1 <8.2" - }, - "conflict": { - "nette/bootstrap": "<3.0" + "nette/robot-loader": "^3.2 || ~4.0.0", + "nette/schema": "^1.2", + "nette/utils": "^3.2.5 || ~4.0.0", + "php": ">=7.2 <8.3" }, "require-dev": { - "nette/tester": "^2.2", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "nette/tester": "^2.4", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -2644,98 +2641,31 @@ ], "support": { "issues": "https://github.com/nette/di/issues", - "source": "https://github.com/nette/di/tree/v3.0.13" - }, - "time": "2022-03-10T02:43:04+00:00" - }, - { - "name": "nette/finder", - "version": "v2.5.3", - "source": { - "type": "git", - "url": "https://github.com/nette/finder.git", - "reference": "64dc25b7929b731e72a1bc84a9e57727f5d5d3e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/64dc25b7929b731e72a1bc84a9e57727f5d5d3e8", - "reference": "64dc25b7929b731e72a1bc84a9e57727f5d5d3e8", - "shasum": "" - }, - "require": { - "nette/utils": "^2.4 || ^3.0", - "php": ">=7.1" - }, - "conflict": { - "nette/nette": "<2.2" - }, - "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🔍 Nette Finder: find files and directories with an intuitive API.", - "homepage": "https://nette.org", - "keywords": [ - "filesystem", - "glob", - "iterator", - "nette" - ], - "support": { - "issues": "https://github.com/nette/finder/issues", - "source": "https://github.com/nette/finder/tree/v2.5.3" + "source": "https://github.com/nette/di/tree/v3.1.2" }, - "time": "2021-12-12T17:43:24+00:00" + "time": "2023-03-13T14:03:15+00:00" }, { "name": "nette/neon", - "version": "v3.3.3", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95" + "reference": "372d945c156ee7f35c953339fb164538339e6283" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/22e384da162fab42961d48eb06c06d3ad0c11b95", - "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95", + "url": "https://api.github.com/repos/nette/neon/zipball/372d945c156ee7f35c953339fb164538339e6283", + "reference": "372d945c156ee7f35c953339fb164538339e6283", "shasum": "" }, "require": { "ext-json": "*", - "php": ">=7.1" + "php": ">=8.0 <8.3" }, "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", + "nette/tester": "^2.4", + "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.7" }, "bin": [ @@ -2744,7 +2674,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -2779,41 +2709,42 @@ ], "support": { "issues": "https://github.com/nette/neon/issues", - "source": "https://github.com/nette/neon/tree/v3.3.3" + "source": "https://github.com/nette/neon/tree/v3.4.0" }, - "time": "2022-03-10T02:04:26+00:00" + "time": "2023-01-13T03:08:29+00:00" }, { "name": "nette/php-generator", - "version": "v3.6.7", + "version": "v4.0.7", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "b9ba414c9895fd9420887f20eeb4eabde123677f" + "reference": "de1843fbb692125e307937c85d43937d0dc0c1d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/b9ba414c9895fd9420887f20eeb4eabde123677f", - "reference": "b9ba414c9895fd9420887f20eeb4eabde123677f", + "url": "https://api.github.com/repos/nette/php-generator/zipball/de1843fbb692125e307937c85d43937d0dc0c1d4", + "reference": "de1843fbb692125e307937c85d43937d0dc0c1d4", "shasum": "" }, "require": { - "nette/utils": "^3.1.2", - "php": ">=7.2 <8.2" + "nette/utils": "^3.2.9 || ^4.0", + "php": ">=8.0 <8.3" }, "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", "nette/tester": "^2.4", - "nikic/php-parser": "^4.13", - "phpstan/phpstan": "^0.12", + "nikic/php-parser": "^4.15", + "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.8" }, "suggest": { - "nikic/php-parser": "to use ClassType::withBodiesFrom() & GlobalFunction::withBodyFrom()" + "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.6-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -2837,7 +2768,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.1 features.", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.2 features.", "homepage": "https://nette.org", "keywords": [ "code", @@ -2847,39 +2778,38 @@ ], "support": { "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v3.6.7" + "source": "https://github.com/nette/php-generator/tree/v4.0.7" }, - "time": "2022-03-10T01:51:00+00:00" + "time": "2023-04-26T15:09:53+00:00" }, { "name": "nette/robot-loader", - "version": "v3.4.1", + "version": "v4.0.0", "source": { "type": "git", "url": "https://github.com/nette/robot-loader.git", - "reference": "e2adc334cb958164c050f485d99c44c430f51fe2" + "reference": "2970fc5a7ba858d996801df3af68005ca51f26a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/e2adc334cb958164c050f485d99c44c430f51fe2", - "reference": "e2adc334cb958164c050f485d99c44c430f51fe2", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/2970fc5a7ba858d996801df3af68005ca51f26a9", + "reference": "2970fc5a7ba858d996801df3af68005ca51f26a9", "shasum": "" }, "require": { "ext-tokenizer": "*", - "nette/finder": "^2.5 || ^3.0", - "nette/utils": "^3.0", - "php": ">=7.1" + "nette/utils": "^4.0", + "php": ">=8.0 <8.3" }, "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "nette/tester": "^2.4", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -2914,31 +2844,31 @@ ], "support": { "issues": "https://github.com/nette/robot-loader/issues", - "source": "https://github.com/nette/robot-loader/tree/v3.4.1" + "source": "https://github.com/nette/robot-loader/tree/v4.0.0" }, - "time": "2021-08-25T15:53:54+00:00" + "time": "2023-01-18T04:17:49+00:00" }, { "name": "nette/schema", - "version": "v1.2.2", + "version": "v1.2.3", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", - "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", "shasum": "" }, "require": { "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.2" + "php": ">=7.1 <8.3" }, "require-dev": { "nette/tester": "^2.3 || ^2.4", - "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-nette": "^1.0", "tracy/tracy": "^2.7" }, "type": "library", @@ -2976,34 +2906,36 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.2" + "source": "https://github.com/nette/schema/tree/v1.2.3" }, - "time": "2021-10-15T11:40:02+00:00" + "time": "2022-10-13T01:24:26+00:00" }, { "name": "nette/utils", - "version": "v3.2.7", + "version": "v4.0.0", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99" + "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99", - "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99", + "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e", + "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e", "shasum": "" }, "require": { - "php": ">=7.2 <8.2" + "php": ">=8.0 <8.3" }, "conflict": { - "nette/di": "<3.0.6" + "nette/finder": "<3", + "nette/schema": "<1.2.2" }, "require-dev": { - "nette/tester": "~2.0", + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.4", "phpstan/phpstan": "^1.0", - "tracy/tracy": "^2.3" + "tracy/tracy": "^2.9" }, "suggest": { "ext-gd": "to use Image", @@ -3017,7 +2949,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -3061,9 +2993,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.7" + "source": "https://github.com/nette/utils/tree/v4.0.0" }, - "time": "2022-01-24T11:29:14+00:00" + "time": "2023-02-02T10:41:53+00:00" }, { "name": "openlss/lib-array2xml", From 973230f00cd73d47dc2320cee0646c64fb6a79cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 21:36:52 +0000 Subject: [PATCH 264/305] composer(deps-dev): Bump doctrine/orm from 2.12.1 to 2.14.3 Bumps [doctrine/orm](https://github.com/doctrine/orm) from 2.12.1 to 2.14.3. - [Release notes](https://github.com/doctrine/orm/releases) - [Commits](https://github.com/doctrine/orm/compare/2.12.1...2.14.3) --- updated-dependencies: - dependency-name: doctrine/orm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 264 +++++++++++++++++++++++++------------------------- 2 files changed, 132 insertions(+), 134 deletions(-) diff --git a/composer.json b/composer.json index 56bbb9cf..6472a54e 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "phpstan/phpstan": "^1.0.0" }, "require-dev": { - "doctrine/orm": "^2.12.1", + "doctrine/orm": "^2.14.3", "ergebnis/composer-normalize": "^2.30.2", "ergebnis/license": "^2.1.0", "ergebnis/php-cs-fixer-config": "^4.6.0", diff --git a/composer.lock b/composer.lock index 1315ef56..48405da5 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": "e1e0cf3d8eeb592fbc9c7b27f304f212", + "content-hash": "91b1d9436f62fb61976bc9e118afa295", "packages": [ { "name": "nikic/php-parser", @@ -700,16 +700,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": { @@ -719,18 +719,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": { @@ -779,7 +773,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": [ { @@ -795,30 +789,31 @@ "type": "tidelift" } ], - "time": "2021-07-17T14:49:29+00:00" + "time": "2022-05-20T20:07:39+00:00" }, { "name": "doctrine/collections", - "version": "1.6.8", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af" + "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af", - "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af", + "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", "shasum": "" }, "require": { + "doctrine/deprecations": "^0.5.3 || ^1", "php": "^7.1.3 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^0.12", + "doctrine/coding-standard": "^9.0 || ^10.0", + "phpstan/phpstan": "^1.4.8", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", - "vimeo/psalm": "^4.2.1" + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -862,22 +857,22 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.6.8" + "source": "https://github.com/doctrine/collections/tree/1.8.0" }, - "time": "2021-08-10T18:51:53+00:00" + "time": "2022-09-01T20:12:10+00:00" }, { "name": "doctrine/common", - "version": "3.3.0", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96" + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/c824e95d4c83b7102d8bc60595445a6f7d540f96", - "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96", + "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", "shasum": "" }, "require": { @@ -885,18 +880,19 @@ "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", + "doctrine/coding-standard": "^9.0 || ^10.0", + "doctrine/collections": "^1", "phpstan/phpstan": "^1.4.1", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^4.0.5", + "symfony/phpunit-bridge": "^6.1", "vimeo/psalm": "^4.4" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -938,7 +934,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.3.0" + "source": "https://github.com/doctrine/common/tree/3.4.3" }, "funding": [ { @@ -954,39 +950,43 @@ "type": "tidelift" } ], - "time": "2022-02-05T18:28:51+00:00" + "time": "2022-10-09T11:47:59+00:00" }, { "name": "doctrine/dbal", - "version": "2.13.8", + "version": "3.6.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b" + "reference": "b4bd1cfbd2b916951696d82e57d054394d84864c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/dc9b3c3c8592c935a6e590441f9abc0f9eba335b", - "reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/b4bd1cfbd2b916951696d82e57d054394d84864c", + "reference": "b4bd1cfbd2b916951696d82e57d054394d84864c", "shasum": "" }, "require": { - "doctrine/cache": "^1.0|^2.0", - "doctrine/deprecations": "^0.5.3", - "doctrine/event-manager": "^1.0", - "ext-pdo": "*", - "php": "^7.1 || ^8" + "composer-runtime-api": "^2", + "doctrine/cache": "^1.11|^2.0", + "doctrine/deprecations": "^0.5.3|^1", + "doctrine/event-manager": "^1|^2", + "php": "^7.4 || ^8.0", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "9.0.0", - "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "1.4.6", - "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", - "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.6.2", - "symfony/cache": "^4.4", - "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.22.0" + "doctrine/coding-standard": "11.1.0", + "fig/log-test": "^1", + "jetbrains/phpstorm-stubs": "2022.3", + "phpstan/phpstan": "1.10.9", + "phpstan/phpstan-strict-rules": "^1.5", + "phpunit/phpunit": "9.6.6", + "psalm/plugin-phpunit": "0.18.4", + "squizlabs/php_codesniffer": "3.7.2", + "symfony/cache": "^5.4|^6.0", + "symfony/console": "^4.4|^5.4|^6.0", + "vimeo/psalm": "4.30.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -997,7 +997,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + "Doctrine\\DBAL\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1040,14 +1040,13 @@ "queryobject", "sasql", "sql", - "sqlanywhere", "sqlite", "sqlserver", "sqlsrv" ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.8" + "source": "https://github.com/doctrine/dbal/tree/3.6.2" }, "funding": [ { @@ -1063,29 +1062,29 @@ "type": "tidelift" } ], - "time": "2022-03-09T15:25:46+00:00" + "time": "2023-04-14T07:25:38+00:00" }, { "name": "doctrine/deprecations", - "version": "v0.5.3", + "version": "v1.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", - "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", "shasum": "" }, "require": { "php": "^7.1|^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0|^7.0|^8.0", - "phpunit/phpunit": "^7.0|^8.0|^9.0", - "psr/log": "^1.0" + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5|^8.5|^9.5", + "psr/log": "^1|^2|^3" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -1104,43 +1103,41 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" + "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" }, - "time": "2021-03-21T12:59:47+00:00" + "time": "2022-05-02T15:47:09+00:00" }, { "name": "doctrine/event-manager", - "version": "1.1.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", "shasum": "" }, "require": { + "doctrine/deprecations": "^0.5.3 || ^1", "php": "^7.1 || ^8.0" }, "conflict": { - "doctrine/common": "<2.9@dev" + "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.0" + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.8", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.24" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1184,7 +1181,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + "source": "https://github.com/doctrine/event-manager/tree/1.2.0" }, "funding": [ { @@ -1200,32 +1197,32 @@ "type": "tidelift" } ], - "time": "2020-05-29T18:28:51+00:00" + "time": "2022-10-12T20:51:15+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.4", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", - "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^4.10" + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" }, "type": "library", "autoload": { @@ -1275,7 +1272,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.4" + "source": "https://github.com/doctrine/inflector/tree/2.0.6" }, "funding": [ { @@ -1291,7 +1288,7 @@ "type": "tidelift" } ], - "time": "2021-10-22T20:16:43+00:00" + "time": "2022-10-20T09:10:12+00:00" }, { "name": "doctrine/instantiator", @@ -1365,31 +1362,33 @@ }, { "name": "doctrine/lexer", - "version": "1.2.3", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.0", "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", + "doctrine/coding-standard": "^9 || ^10", "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.0" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1421,7 +1420,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.3" + "source": "https://github.com/doctrine/lexer/tree/2.1.0" }, "funding": [ { @@ -1437,57 +1436,59 @@ "type": "tidelift" } ], - "time": "2022-02-28T11:07:21+00:00" + "time": "2022-12-14T08:49:07+00:00" }, { "name": "doctrine/orm", - "version": "2.12.1", + "version": "2.14.3", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "2e4a8722721b934149ff53b191522a6829b6d73b" + "reference": "a64f315dfeae5e50b17f132626fd9e9b4ec8985d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/2e4a8722721b934149ff53b191522a6829b6d73b", - "reference": "2e4a8722721b934149ff53b191522a6829b6d73b", + "url": "https://api.github.com/repos/doctrine/orm/zipball/a64f315dfeae5e50b17f132626fd9e9b4ec8985d", + "reference": "a64f315dfeae5e50b17f132626fd9e9b4ec8985d", "shasum": "" }, "require": { "composer-runtime-api": "^2", "doctrine/cache": "^1.12.1 || ^2.1.1", - "doctrine/collections": "^1.5", + "doctrine/collections": "^1.5 || ^2.0", "doctrine/common": "^3.0.3", "doctrine/dbal": "^2.13.1 || ^3.2", - "doctrine/deprecations": "^0.5.3", - "doctrine/event-manager": "^1.1", + "doctrine/deprecations": "^0.5.3 || ^1", + "doctrine/event-manager": "^1.2 || ^2", "doctrine/inflector": "^1.4 || ^2.0", "doctrine/instantiator": "^1.3", - "doctrine/lexer": "^1.2.3", + "doctrine/lexer": "^1.2.3 || ^2", "doctrine/persistence": "^2.4 || ^3", "ext-ctype": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3", - "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "symfony/console": "^4.2 || ^5.0 || ^6.0", "symfony/polyfill-php72": "^1.23", "symfony/polyfill-php80": "^1.16" }, "conflict": { - "doctrine/annotations": "<1.13 || >= 2.0" + "doctrine/annotations": "<1.13 || >= 3.0" }, "require-dev": { - "doctrine/annotations": "^1.13", - "doctrine/coding-standard": "^9.0", + "doctrine/annotations": "^1.13 || ^2", + "doctrine/coding-standard": "^9.0.2 || ^11.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.5.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "phpstan/phpstan": "~1.4.10 || 1.10.6", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", "psr/log": "^1 || ^2 || ^3", - "squizlabs/php_codesniffer": "3.6.2", + "squizlabs/php_codesniffer": "3.7.2", "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.22.0" + "vimeo/psalm": "4.30.0 || 5.9.0" }, "suggest": { + "ext-dom": "Provides support for XSD validation for XML mapping files", "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" }, @@ -1534,45 +1535,42 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.12.1" + "source": "https://github.com/doctrine/orm/tree/2.14.3" }, - "time": "2022-04-22T17:46:03+00:00" + "time": "2023-04-20T09:46:32+00:00" }, { "name": "doctrine/persistence", - "version": "3.0.0", + "version": "3.1.4", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "e6103cb9e0982a4312e05ad94bb7be3f8e2d5869" + "reference": "8bf8ab15960787f1a49d405f6eb8c787b4841119" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/e6103cb9e0982a4312e05ad94bb7be3f8e2d5869", - "reference": "e6103cb9e0982a4312e05ad94bb7be3f8e2d5869", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/8bf8ab15960787f1a49d405f6eb8c787b4841119", + "reference": "8bf8ab15960787f1a49d405f6eb8c787b4841119", "shasum": "" }, "require": { - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", + "doctrine/event-manager": "^1 || ^2", "php": "^7.2 || ^8.0", "psr/cache": "^1.0 || ^2.0 || ^3.0" }, "conflict": { - "doctrine/annotations": "<1.7 || >=2.0", "doctrine/common": "<2.10" }, "require-dev": { "composer/package-versions-deprecated": "^1.11", - "doctrine/annotations": "^1.7", - "doctrine/coding-standard": "^9.0", + "doctrine/coding-standard": "^11", "doctrine/common": "^3.0", - "phpstan/phpstan": "1.5.0", + "phpstan/phpstan": "1.9.4", "phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-strict-rules": "^1.1", "phpunit/phpunit": "^8.5 || ^9.5", "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "vimeo/psalm": "4.22.0" + "vimeo/psalm": "4.30.0 || 5.3.0" }, "type": "library", "autoload": { @@ -1621,7 +1619,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.0.0" + "source": "https://github.com/doctrine/persistence/tree/3.1.4" }, "funding": [ { @@ -1637,7 +1635,7 @@ "type": "tidelift" } ], - "time": "2022-04-15T10:39:55+00:00" + "time": "2023-02-03T11:13:07+00:00" }, { "name": "ergebnis/composer-normalize", From c78133ddff2e411b2a269bf6aa5a6facc6dc94fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 21:38:11 +0000 Subject: [PATCH 265/305] composer(deps-dev): Bump vimeo/psalm from 4.22.0 to 4.30.0 Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.22.0 to 4.30.0. - [Release notes](https://github.com/vimeo/psalm/releases) - [Commits](https://github.com/vimeo/psalm/compare/4.22.0...4.30.0) --- updated-dependencies: - dependency-name: vimeo/psalm dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 127 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 92 insertions(+), 37 deletions(-) diff --git a/composer.json b/composer.json index 6472a54e..56dbb8b8 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "phpunit/phpunit": "^9.6.7", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.1.2", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index 48405da5..0e81987e 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": "91b1d9436f62fb61976bc9e118afa295", + "content-hash": "7ff07b897f40f957d963a2e785c5263b", "packages": [ { "name": "nikic/php-parser", @@ -2188,16 +2188,16 @@ }, { "name": "felixfbecker/language-server-protocol", - "version": "1.5.1", + "version": "v1.5.2", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", - "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", "shasum": "" }, "require": { @@ -2238,9 +2238,9 @@ ], "support": { "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/1.5.1" + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" }, - "time": "2021-02-22T14:02:09+00:00" + "time": "2022-03-02T22:36:06+00:00" }, { "name": "friendsofphp/php-cs-fixer", @@ -2522,16 +2522,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v4.0.0", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", "shasum": "" }, "require": { @@ -2567,9 +2567,9 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" }, - "time": "2020-12-01T19:48:11+00:00" + "time": "2023-04-09T17:37:40+00:00" }, { "name": "nette/di", @@ -3324,25 +3324,33 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.1", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" + "reference": "dfc078e8af9c99210337325ff5aa152872c98714" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dfc078e8af9c99210337325ff5aa152872c98714", + "reference": "dfc078e8af9c99210337325ff5aa152872c98714", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" + "doctrine/deprecations": "^1.0", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" }, "require-dev": { "ext-tokenizer": "*", - "psalm/phar": "^4.8" + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { @@ -3368,9 +3376,54 @@ "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.1" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.1" + }, + "time": "2023-03-27T19:02:04+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.20.3", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "6c04009f6cae6eda2f040745b6b846080ef069c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6c04009f6cae6eda2f040745b6b846080ef069c2", + "reference": "6c04009f6cae6eda2f040745b6b846080ef069c2", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" }, - "time": "2022-03-15T21:29:03+00:00" + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.20.3" + }, + "time": "2023-04-25T09:01:03+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -6541,16 +6594,16 @@ }, { "name": "vimeo/psalm", - "version": "4.22.0", + "version": "4.30.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "fc2c6ab4d5fa5d644d8617089f012f3bb84b8703" + "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/fc2c6ab4d5fa5d644d8617089f012f3bb84b8703", - "reference": "fc2c6ab4d5fa5d644d8617089f012f3bb84b8703", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", "shasum": "" }, "require": { @@ -6575,6 +6628,7 @@ "php": "^7.1|^8", "sebastian/diff": "^3.0 || ^4.0", "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", + "symfony/polyfill-php80": "^1.25", "webmozart/path-util": "^2.3" }, "provide": { @@ -6588,6 +6642,7 @@ "phpdocumentor/reflection-docblock": "^5", "phpmyadmin/sql-parser": "5.1.0||dev-master", "phpspec/prophecy": ">=1.9.0", + "phpstan/phpdoc-parser": "1.2.* || 1.6.4", "phpunit/phpunit": "^9.0", "psalm/plugin-phpunit": "^0.16", "slevomat/coding-standard": "^7.0", @@ -6641,27 +6696,27 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.22.0" + "source": "https://github.com/vimeo/psalm/tree/4.30.0" }, - "time": "2022-02-24T20:34:05+00:00" + "time": "2022-11-06T20:37:08+00:00" }, { "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", @@ -6699,9 +6754,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" }, { "name": "webmozart/path-util", From d73a10b6ac8f0335da90c70db8f9a30063783bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:39:29 +0200 Subject: [PATCH 266/305] Fix: Run 'make static-code-analysis-baseline' --- psalm-baseline.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index b4a4f85f..00f081e5 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + From 835cde7a996c0d55d23f4984ce02bc69ad5ab5d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:39:51 +0200 Subject: [PATCH 267/305] Fix: Use major.minor.patch version --- composer.json | 2 +- composer.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 56dbb8b8..c52a41cb 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "phpunit/phpunit": "^9.6.7", "psalm/plugin-phpunit": "~0.16.1", "psr/container": "^1.1.2", - "vimeo/psalm": "^4.30" + "vimeo/psalm": "^4.30.0" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index 0e81987e..b69625a5 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": "7ff07b897f40f957d963a2e785c5263b", + "content-hash": "982b5ed8dc3b68db0d6013eb43e7545f", "packages": [ { "name": "nikic/php-parser", From 60ece07f54ca18fa960a9e83c71659f5be6f43f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 21:40:22 +0000 Subject: [PATCH 268/305] composer(deps-dev): Bump psalm/plugin-phpunit from 0.16.1 to 0.18.4 Bumps [psalm/plugin-phpunit](https://github.com/psalm/psalm-plugin-phpunit) from 0.16.1 to 0.18.4. - [Release notes](https://github.com/psalm/psalm-plugin-phpunit/releases) - [Commits](https://github.com/psalm/psalm-plugin-phpunit/compare/0.16.1...0.18.4) --- updated-dependencies: - dependency-name: psalm/plugin-phpunit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index c52a41cb..50bb8186 100644 --- a/composer.json +++ b/composer.json @@ -34,7 +34,7 @@ "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", "phpunit/phpunit": "^9.6.7", - "psalm/plugin-phpunit": "~0.16.1", + "psalm/plugin-phpunit": "~0.18.4", "psr/container": "^1.1.2", "vimeo/psalm": "^4.30.0" }, diff --git a/composer.lock b/composer.lock index b69625a5..344255c4 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": "982b5ed8dc3b68db0d6013eb43e7545f", + "content-hash": "be504530f806c38aa139ebcd6ccc0a14", "packages": [ { "name": "nikic/php-parser", @@ -3949,16 +3949,16 @@ }, { "name": "psalm/plugin-phpunit", - "version": "0.16.1", + "version": "0.18.4", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "5dd3be04f37a857d52880ef6af2524a441dfef24" + "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/5dd3be04f37a857d52880ef6af2524a441dfef24", - "reference": "5dd3be04f37a857d52880ef6af2524a441dfef24", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", + "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", "shasum": "" }, "require": { @@ -3966,7 +3966,7 @@ "composer/semver": "^1.4 || ^2.0 || ^3.0", "ext-simplexml": "*", "php": "^7.1 || ^8.0", - "vimeo/psalm": "dev-master || dev-4.x || ^4.5" + "vimeo/psalm": "dev-master || dev-4.x || ^4.7.1 || ^5@beta || ^5.0" }, "conflict": { "phpunit/phpunit": "<7.5" @@ -4003,9 +4003,9 @@ "description": "Psalm plugin for PHPUnit", "support": { "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues", - "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.16.1" + "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.18.4" }, - "time": "2021-06-18T23:56:46+00:00" + "time": "2022-12-03T07:47:07+00:00" }, { "name": "psr/cache", From c5b27f9fed8889cd98cddcb2f8c9dd08aae19cb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:46:09 +0200 Subject: [PATCH 269/305] Fix: Update phpstan/phpstan --- composer.json | 2 +- composer.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index 50bb8186..1cb8ff03 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "php": "~8.0.0 || ~8.1.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", - "phpstan/phpstan": "^1.0.0" + "phpstan/phpstan": "~1.3.3" }, "require-dev": { "doctrine/orm": "^2.14.3", diff --git a/composer.lock b/composer.lock index 344255c4..de1eacdd 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": "be504530f806c38aa139ebcd6ccc0a14", + "content-hash": "f34bb84e6a560f9a8e12854648dff1bb", "packages": [ { "name": "nikic/php-parser", @@ -64,16 +64,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.2.0", + "version": "1.3.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "cbe085f9fdead5b6d62e4c022ca52dc9427a10ee" + "reference": "151a51f6149855785fbd883e79768c0abc96b75f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cbe085f9fdead5b6d62e4c022ca52dc9427a10ee", - "reference": "cbe085f9fdead5b6d62e4c022ca52dc9427a10ee", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/151a51f6149855785fbd883e79768c0abc96b75f", + "reference": "151a51f6149855785fbd883e79768c0abc96b75f", "shasum": "" }, "require": { @@ -89,7 +89,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -104,7 +104,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.3.3" }, "funding": [ { @@ -124,7 +124,7 @@ "type": "tidelift" } ], - "time": "2021-11-18T14:09:01+00:00" + "time": "2022-01-07T09:49:03+00:00" } ], "packages-dev": [ From 1344d5ffd71d4e6d30f1792e8030035c882ca233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:50:10 +0200 Subject: [PATCH 270/305] Fix: Update phpstan/phpstan --- composer.json | 2 +- composer.lock | 19 +++++++------------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 1cb8ff03..10f691d7 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "php": "~8.0.0 || ~8.1.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", - "phpstan/phpstan": "~1.3.3" + "phpstan/phpstan": "~1.4.10" }, "require-dev": { "doctrine/orm": "^2.14.3", diff --git a/composer.lock b/composer.lock index de1eacdd..8f8a76ac 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": "f34bb84e6a560f9a8e12854648dff1bb", + "content-hash": "1340f84e16efbe6c0ca0624b0efdeaa5", "packages": [ { "name": "nikic/php-parser", @@ -64,16 +64,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.3.3", + "version": "1.4.10", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "151a51f6149855785fbd883e79768c0abc96b75f" + "reference": "898c479c39caa727bedf4311dd294a8f4e250e72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/151a51f6149855785fbd883e79768c0abc96b75f", - "reference": "151a51f6149855785fbd883e79768c0abc96b75f", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/898c479c39caa727bedf4311dd294a8f4e250e72", + "reference": "898c479c39caa727bedf4311dd294a8f4e250e72", "shasum": "" }, "require": { @@ -87,11 +87,6 @@ "phpstan.phar" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "files": [ "bootstrap.php" @@ -104,7 +99,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.3.3" + "source": "https://github.com/phpstan/phpstan/tree/1.4.10" }, "funding": [ { @@ -124,7 +119,7 @@ "type": "tidelift" } ], - "time": "2022-01-07T09:49:03+00:00" + "time": "2022-03-14T10:25:45+00:00" } ], "packages-dev": [ From 1d8f806bfd760c71ad3f6ce40da8466af509d6e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:54:06 +0200 Subject: [PATCH 271/305] Fix: Run 'make static-code-analysis-baseline' --- phpstan-baseline.neon | 5 +++++ psalm-baseline.xml | 1 + 2 files changed, 6 insertions(+) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index e2e011fd..b44f00a1 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -20,3 +20,8 @@ parameters: count: 1 path: src/Functions/NoNullableReturnTypeDeclarationRule.php + - + message: "#^Parameter \\#2 \\$expectedErrors of method PHPStan\\\\Testing\\\\RuleTestCase\\\\:\\:analyse\\(\\) expects array\\, array\\{array\\} given\\.$#" + count: 1 + path: test/Integration/AbstractTestCase.php + diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 00f081e5..68303123 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -38,6 +38,7 @@ + iterable iterable From 85b1503c4926105f14a22f1e53b448c6d73d355a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:54:51 +0200 Subject: [PATCH 272/305] Enhancement: Update phpstan/phpstan --- composer.json | 2 +- composer.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index 10f691d7..4493825d 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "php": "~8.0.0 || ~8.1.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", - "phpstan/phpstan": "~1.4.10" + "phpstan/phpstan": "~1.5.7" }, "require-dev": { "doctrine/orm": "^2.14.3", diff --git a/composer.lock b/composer.lock index 8f8a76ac..dc9c8223 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": "1340f84e16efbe6c0ca0624b0efdeaa5", + "content-hash": "84ce4c3babffe82fca33f497e26d0247", "packages": [ { "name": "nikic/php-parser", @@ -64,20 +64,20 @@ }, { "name": "phpstan/phpstan", - "version": "1.4.10", + "version": "1.5.7", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "898c479c39caa727bedf4311dd294a8f4e250e72" + "reference": "7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/898c479c39caa727bedf4311dd294a8f4e250e72", - "reference": "898c479c39caa727bedf4311dd294a8f4e250e72", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac", + "reference": "7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.2|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -99,7 +99,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.7" }, "funding": [ { @@ -119,7 +119,7 @@ "type": "tidelift" } ], - "time": "2022-03-14T10:25:45+00:00" + "time": "2022-04-20T12:20:27+00:00" } ], "packages-dev": [ From e00781910983c0231d8ccddb6d91bb7ce4b1d9da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sun, 30 Apr 2023 23:55:35 +0200 Subject: [PATCH 273/305] Enhancement: Update phpstan/phpstan --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 4493825d..26dfc0d0 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "php": "~8.0.0 || ~8.1.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", - "phpstan/phpstan": "~1.5.7" + "phpstan/phpstan": "~1.6.9" }, "require-dev": { "doctrine/orm": "^2.14.3", diff --git a/composer.lock b/composer.lock index dc9c8223..9e8c252b 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": "84ce4c3babffe82fca33f497e26d0247", + "content-hash": "51a6ad1841a4adc863b631c92321ffdb", "packages": [ { "name": "nikic/php-parser", @@ -64,16 +64,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.5.7", + "version": "1.6.9", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac" + "reference": "8c98899c7c54251a098befd23b50a983594a20f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac", - "reference": "7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8c98899c7c54251a098befd23b50a983594a20f9", + "reference": "8c98899c7c54251a098befd23b50a983594a20f9", "shasum": "" }, "require": { @@ -99,7 +99,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.5.7" + "source": "https://github.com/phpstan/phpstan/tree/1.6.9" }, "funding": [ { @@ -119,7 +119,7 @@ "type": "tidelift" } ], - "time": "2022-04-20T12:20:27+00:00" + "time": "2022-05-21T11:34:44+00:00" } ], "packages-dev": [ From 81f502efaae95293b8a62a184144b4e2c1434ceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 00:06:35 +0200 Subject: [PATCH 274/305] Fix: Return error when interface is identical --- .../NoParameterWithContainerTypeDeclarationRule.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index 374f0943..20ac585c 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -95,6 +95,17 @@ function (array $errors, Node\Param $node) use ($scope, $containingClass, $metho if ($classUsedInTypeDeclaration->isInterface()) { foreach ($this->interfacesImplementedByContainers as $interfaceImplementedByContainer) { + if ($classUsedInTypeDeclaration->getDisplayName() === $interfaceImplementedByContainer) { + $errors[] = self::createError( + $containingClass, + $methodName, + $parameterName, + $classUsedInTypeDeclaration, + ); + + return $errors; + } + if ($classUsedInTypeDeclaration->getNativeReflection()->isSubclassOf($interfaceImplementedByContainer)) { $errors[] = self::createError( $containingClass, From 6ced6756553247d6bc2107eac079ed541cf86893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 00:07:33 +0200 Subject: [PATCH 275/305] Enhancement: Update vimeo/psalm --- composer.json | 2 +- composer.lock | 298 ++++++++++++++++++++++++++------------------------ 2 files changed, 159 insertions(+), 141 deletions(-) diff --git a/composer.json b/composer.json index 26dfc0d0..c63cd5fd 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "phpunit/phpunit": "^9.6.7", "psalm/plugin-phpunit": "~0.18.4", "psr/container": "^1.1.2", - "vimeo/psalm": "^4.30.0" + "vimeo/psalm": "^5.9.0" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index 9e8c252b..c6addc7c 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": "51a6ad1841a4adc863b631c92321ffdb", + "content-hash": "76234c17917fb5bd4a625272e9c5257a", "packages": [ { "name": "nikic/php-parser", @@ -2237,6 +2237,67 @@ }, "time": "2022-03-02T22:36:06+00:00" }, + { + "name": "fidry/cpu-core-counter", + "version": "0.5.1", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^9.5.26 || ^8.5.31", + "theofidry/php-cs-fixer-config": "^1.0", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2022-12-24T12:35:10+00:00" + }, { "name": "friendsofphp/php-cs-fixer", "version": "v3.9.5", @@ -2990,59 +3051,6 @@ }, "time": "2023-02-02T10:41:53+00:00" }, - { - "name": "openlss/lib-array2xml", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/nullivex/lib-array2xml.git", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "LSS": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Bryan Tong", - "email": "bryan@nullivex.com", - "homepage": "https://www.nullivex.com" - }, - { - "name": "Tony Butler", - "email": "spudz76@gmail.com", - "homepage": "https://www.nullivex.com" - } - ], - "description": "Array2XML conversion library credit to lalit.org", - "homepage": "https://www.nullivex.com", - "keywords": [ - "array", - "array conversion", - "xml", - "xml conversion" - ], - "support": { - "issues": "https://github.com/nullivex/lib-array2xml/issues", - "source": "https://github.com/nullivex/lib-array2xml/tree/master" - }, - "time": "2019-03-29T20:06:56+00:00" - }, { "name": "phar-io/manifest", "version": "2.0.3", @@ -5163,6 +5171,69 @@ ], "time": "2020-09-28T06:39:44+00:00" }, + { + "name": "spatie/array-to-xml", + "version": "3.1.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], + "support": { + "source": "https://github.com/spatie/array-to-xml/tree/3.1.5" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-12-24T13:43:51+00:00" + }, { "name": "symfony/console", "version": "v6.0.19", @@ -6589,24 +6660,24 @@ }, { "name": "vimeo/psalm", - "version": "4.30.0", + "version": "5.9.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" + "reference": "8b9ad1eb9e8b7d3101f949291da2b9f7767cd163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/8b9ad1eb9e8b7d3101f949291da2b9f7767cd163", + "reference": "8b9ad1eb9e8b7d3101f949291da2b9f7767cd163", "shasum": "" }, "require": { "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.8.0", + "composer-runtime-api": "^2", "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-ctype": "*", "ext-dom": "*", @@ -6615,35 +6686,35 @@ "ext-mbstring": "*", "ext-simplexml": "*", "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.0.3", - "felixfbecker/language-server-protocol": "^1.5", + "felixfbecker/advanced-json-rpc": "^3.1", + "felixfbecker/language-server-protocol": "^1.5.2", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.13", - "openlss/lib-array2xml": "^1.0", - "php": "^7.1|^8", - "sebastian/diff": "^3.0 || ^4.0", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", - "symfony/polyfill-php80": "^1.25", - "webmozart/path-util": "^2.3" + "nikic/php-parser": "^4.14", + "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "sebastian/diff": "^4.0 || ^5.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^4.1.6 || ^5.0 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0" }, "provide": { "psalm/psalm": "self.version" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "brianium/paratest": "^4.0||^6.0", + "amphp/phpunit-util": "^2.0", + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", "ext-curl": "*", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpdocumentor/reflection-docblock": "^5", - "phpmyadmin/sql-parser": "5.1.0||dev-master", - "phpspec/prophecy": ">=1.9.0", - "phpstan/phpdoc-parser": "1.2.* || 1.6.4", - "phpunit/phpunit": "^9.0", - "psalm/plugin-phpunit": "^0.16", - "slevomat/coding-standard": "^7.0", - "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3 || ^5.0 || ^6.0", - "weirdan/prophecy-shim": "^1.0 || ^2.0" + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^4.4 || ^5.0 || ^6.0" }, "suggest": { "ext-curl": "In order to send data to shepherd", @@ -6659,17 +6730,14 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev", + "dev-master": "5.x-dev", + "dev-4.x": "4.x-dev", "dev-3.x": "3.x-dev", "dev-2.x": "2.x-dev", "dev-1.x": "1.x-dev" } }, "autoload": { - "files": [ - "src/functions.php", - "src/spl_object_id.php" - ], "psr-4": { "Psalm\\": "src/Psalm/" } @@ -6687,13 +6755,14 @@ "keywords": [ "code", "inspection", - "php" + "php", + "static analysis" ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.30.0" + "source": "https://github.com/vimeo/psalm/tree/5.9.0" }, - "time": "2022-11-06T20:37:08+00:00" + "time": "2023-03-29T21:38:21+00:00" }, { "name": "webmozart/assert", @@ -6752,57 +6821,6 @@ "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, "time": "2022-06-03T18:03:27+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" - }, - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" } ], "aliases": [], From 9637027331fdf26703a9a5ed2d754b429c6d77d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 00:07:58 +0200 Subject: [PATCH 276/305] Fix: Run 'make static-code-analysis-baseline' --- phpstan-baseline.neon | 1 - psalm-baseline.xml | 208 +++++++++++++++++++++++++++++++++++++++--- 2 files changed, 195 insertions(+), 14 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index b44f00a1..53ca4aad 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -24,4 +24,3 @@ parameters: message: "#^Parameter \\#2 \\$expectedErrors of method PHPStan\\\\Testing\\\\RuleTestCase\\\\:\\:analyse\\(\\) expects array\\, array\\{array\\} given\\.$#" count: 1 path: test/Integration/AbstractTestCase.php - diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 68303123..4162e822 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,45 +1,227 @@ - + - + + Rule + + + [ + 'Doctrine\ORM\Mapping\Entity', + ] + - + + Rule + + + [ + 'PHPUnit\\Framework\\TestCase', + ] + - - + + Rules\Rule + + + [ + 'PHPUnit\Framework\TestCase', + ] + + string + + + Rule + + + + + Rule + + + + + Rule + + + + + Rule + + + + + Rule + + + + + Rule + + + + + Rule + + + + + Rule + + + + + Rule + + + + + Rule + + - + $functionName - + + Rule + + $functionName - + $functionName - + + Rule + + $functionName + + + Rule + + + + + Rule + + + + + Rule + + - + $interfaceImplementedByContainer $interfaceImplementedByContainer - + + Rule + + + params, + function (array $errors, Node\Param $node) use ($scope, $containingClass, $methodName) { + $type = $node->type; + + if (!$type instanceof Node\Name) { + return $errors; + } + + /** @var Node\Expr\Variable $variable */ + $variable = $node->var; + + /** @var string $parameterName */ + $parameterName = $variable->name; + + $classUsedInTypeDeclaration = $this->reflectionProvider->getClass($scope->resolveName($type)); + + if ($classUsedInTypeDeclaration->isInterface()) { + foreach ($this->interfacesImplementedByContainers as $interfaceImplementedByContainer) { + if ($classUsedInTypeDeclaration->getDisplayName() === $interfaceImplementedByContainer) { + $errors[] = self::createError( + $containingClass, + $methodName, + $parameterName, + $classUsedInTypeDeclaration, + ); + + return $errors; + } + + if ($classUsedInTypeDeclaration->getNativeReflection()->isSubclassOf($interfaceImplementedByContainer)) { + $errors[] = self::createError( + $containingClass, + $methodName, + $parameterName, + $classUsedInTypeDeclaration, + ); + + return $errors; + } + } + } + + foreach ($this->interfacesImplementedByContainers as $interfaceImplementedByContainer) { + if ($classUsedInTypeDeclaration->getNativeReflection()->implementsInterface($interfaceImplementedByContainer)) { + $errors[] = self::createError( + $containingClass, + $methodName, + $parameterName, + $classUsedInTypeDeclaration, + ); + + return $errors; + } + } + + return $errors; + }, + [], + )]]> array + + + Rule + + + + + Rule + + + + + Rule + + + + + Rule + + - - + + [ + $error, + ] + + + AbstractTestCase + + iterable iterable From 2ea012b039584818734a27d1b2e5f312cbe02295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 00:08:36 +0200 Subject: [PATCH 277/305] Enhancement: Enable findUnusedCode option for vimeo/psalm --- psalm.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/psalm.xml b/psalm.xml index c41d418f..d4567c49 100644 --- a/psalm.xml +++ b/psalm.xml @@ -6,6 +6,7 @@ cacheDirectory=".build/psalm" errorBaseline="psalm-baseline.xml" errorLevel="1" + findUnusedCode="true" findUnusedVariablesAndParams="true" resolveFromConfigFile="true" strictBinaryOperands="true" From 6b9a6967e44f2172d6bbe5af49e27bdfdce9b0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 00:09:03 +0200 Subject: [PATCH 278/305] Enhancement: Enable findUnusedBaselineEntry option for vimeo/psalm --- psalm.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/psalm.xml b/psalm.xml index d4567c49..a8c56633 100644 --- a/psalm.xml +++ b/psalm.xml @@ -7,6 +7,7 @@ errorBaseline="psalm-baseline.xml" errorLevel="1" findUnusedCode="true" + findUnusedBaselineEntry="true" findUnusedVariablesAndParams="true" resolveFromConfigFile="true" strictBinaryOperands="true" From 66e5c12b273c5b1646aa2a2dd03a0658f9135364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 00:11:11 +0200 Subject: [PATCH 279/305] Enhancement: Update phpstan/phpstan --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index c63cd5fd..c8b83529 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "php": "~8.0.0 || ~8.1.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", - "phpstan/phpstan": "~1.6.9" + "phpstan/phpstan": "~1.7.15" }, "require-dev": { "doctrine/orm": "^2.14.3", diff --git a/composer.lock b/composer.lock index c6addc7c..f7ff798c 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": "76234c17917fb5bd4a625272e9c5257a", + "content-hash": "174f2c27d30055c9cec9080270f43f05", "packages": [ { "name": "nikic/php-parser", @@ -64,16 +64,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.6.9", + "version": "1.7.15", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "8c98899c7c54251a098befd23b50a983594a20f9" + "reference": "cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8c98899c7c54251a098befd23b50a983594a20f9", - "reference": "8c98899c7c54251a098befd23b50a983594a20f9", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a", + "reference": "cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a", "shasum": "" }, "require": { @@ -99,7 +99,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.6.9" + "source": "https://github.com/phpstan/phpstan/tree/1.7.15" }, "funding": [ { @@ -119,7 +119,7 @@ "type": "tidelift" } ], - "time": "2022-05-21T11:34:44+00:00" + "time": "2022-06-20T08:29:01+00:00" } ], "packages-dev": [ From 36ee65c3f229987a7d88fb0c7b30e60c8af6fadb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 00:13:43 +0200 Subject: [PATCH 280/305] Fix: Use getName() --- src/Methods/NoParameterWithContainerTypeDeclarationRule.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php index 20ac585c..fb5ef40c 100644 --- a/src/Methods/NoParameterWithContainerTypeDeclarationRule.php +++ b/src/Methods/NoParameterWithContainerTypeDeclarationRule.php @@ -95,7 +95,7 @@ function (array $errors, Node\Param $node) use ($scope, $containingClass, $metho if ($classUsedInTypeDeclaration->isInterface()) { foreach ($this->interfacesImplementedByContainers as $interfaceImplementedByContainer) { - if ($classUsedInTypeDeclaration->getDisplayName() === $interfaceImplementedByContainer) { + if ($classUsedInTypeDeclaration->getName() === $interfaceImplementedByContainer) { $errors[] = self::createError( $containingClass, $methodName, From 19926396e3030937f2db8b888c2c5a1ae91d450d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 00:16:28 +0200 Subject: [PATCH 281/305] Fix: Run 'make static-code-analysis-baseline' --- psalm-baseline.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 4162e822..feda9791 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -123,7 +123,6 @@ $interfaceImplementedByContainer - $interfaceImplementedByContainer Rule @@ -148,7 +147,7 @@ if ($classUsedInTypeDeclaration->isInterface()) { foreach ($this->interfacesImplementedByContainers as $interfaceImplementedByContainer) { - if ($classUsedInTypeDeclaration->getDisplayName() === $interfaceImplementedByContainer) { + if ($classUsedInTypeDeclaration->getName() === $interfaceImplementedByContainer) { $errors[] = self::createError( $containingClass, $methodName, @@ -191,6 +190,10 @@ )]]> array + + getNativeReflection()]]> + getNativeReflection()]]> + @@ -206,6 +209,9 @@ Rule + + getNativeReflection()]]> + From be3c8aea9e30c367b596d1d0f365aceb8505b029 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Apr 2023 22:43:03 +0000 Subject: [PATCH 282/305] composer(deps-dev): Bump ergebnis/php-cs-fixer-config Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 4.6.0 to 5.5.2. - [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases) - [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md) - [Commits](https://github.com/ergebnis/php-cs-fixer-config/compare/4.6.0...5.5.2) --- updated-dependencies: - dependency-name: ergebnis/php-cs-fixer-config dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 159 ++++++++++++++++++-------------------------------- 2 files changed, 59 insertions(+), 102 deletions(-) diff --git a/composer.json b/composer.json index c8b83529..fb039796 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,7 @@ "doctrine/orm": "^2.14.3", "ergebnis/composer-normalize": "^2.30.2", "ergebnis/license": "^2.1.0", - "ergebnis/php-cs-fixer-config": "^4.6.0", + "ergebnis/php-cs-fixer-config": "^5.5.2", "nette/di": "^3.1.2", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", diff --git a/composer.lock b/composer.lock index f7ff798c..502c1409 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": "174f2c27d30055c9cec9080270f43f05", + "content-hash": "2afa92201979e7d24b50302d33219510", "packages": [ { "name": "nikic/php-parser", @@ -619,30 +619,30 @@ }, { "name": "doctrine/annotations", - "version": "1.14.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" + "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", - "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", + "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", "shasum": "" }, "require": { - "doctrine/lexer": "^1 || ^2", + "doctrine/lexer": "^2 || ^3", "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", + "php": "^7.2 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "doctrine/cache": "^2.0", + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.0", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/cache": "^5.4 || ^6", "vimeo/psalm": "^4.10" }, "suggest": { @@ -689,9 +689,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.14.3" + "source": "https://github.com/doctrine/annotations/tree/2.0.1" }, - "time": "2023-02-01T09:20:38+00:00" + "time": "2023-02-02T22:02:53+00:00" }, { "name": "doctrine/cache", @@ -2080,31 +2080,34 @@ }, { "name": "ergebnis/php-cs-fixer-config", - "version": "4.6.0", + "version": "5.5.2", "source": { "type": "git", "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "9bbf949893038baba287e208d5438afba0db7e7e" + "reference": "b926460aa2a978dcb2cb6c8d79323d2abab27157" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/9bbf949893038baba287e208d5438afba0db7e7e", - "reference": "9bbf949893038baba287e208d5438afba0db7e7e", + "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/b926460aa2a978dcb2cb6c8d79323d2abab27157", + "reference": "b926460aa2a978dcb2cb6c8d79323d2abab27157", "shasum": "" }, "require": { "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~3.9.5", - "php": "^7.4 || ^8.0" + "friendsofphp/php-cs-fixer": "~3.16.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.28.3", - "ergebnis/license": "^1.2.0", - "fakerphp/faker": "^1.20.0", - "phpunit/phpunit": "^9.5.21", - "psalm/plugin-phpunit": "~0.17.0", - "symfony/filesystem": "^4.4.0 || ^5.0.0", - "vimeo/psalm": "^4.24" + "ergebnis/composer-normalize": "^2.30.2", + "ergebnis/license": "^2.1.0", + "fakerphp/faker": "^1.21.0", + "infection/infection": "~0.26.19", + "phpunit/phpunit": "^9.6.7", + "psalm/plugin-phpunit": "~0.18.4", + "rector/rector": "~0.15.25", + "symfony/filesystem": "^5.0.0 || ^6.0.0", + "symfony/process": "^5.0.0 || ^6.0.0", + "vimeo/psalm": "^5.9.0" }, "type": "library", "extra": { @@ -2134,7 +2137,7 @@ "issues": "https://github.com/ergebnis/php-cs-fixer-config/issues", "source": "https://github.com/ergebnis/php-cs-fixer-config" }, - "time": "2022-07-22T10:49:30+00:00" + "time": "2023-04-27T17:31:51+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -2300,51 +2303,52 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.9.5", + "version": "v3.16.0", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "4465d70ba776806857a1ac2a6f877e582445ff36" + "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", + "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/4465d70ba776806857a1ac2a6f877e582445ff36", - "reference": "4465d70ba776806857a1ac2a6f877e582445ff36", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d40f9436e1c448d309fa995ab9c14c5c7a96f2dc", + "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc", "shasum": "" }, "require": { - "composer/semver": "^3.2", + "composer/semver": "^3.3", "composer/xdebug-handler": "^3.0.3", - "doctrine/annotations": "^1.13", + "doctrine/annotations": "^2", + "doctrine/lexer": "^2 || ^3", "ext-json": "*", "ext-tokenizer": "*", "php": "^7.4 || ^8.0", - "php-cs-fixer/diff": "^2.0", + "sebastian/diff": "^4.0 || ^5.0", "symfony/console": "^5.4 || ^6.0", "symfony/event-dispatcher": "^5.4 || ^6.0", "symfony/filesystem": "^5.4 || ^6.0", "symfony/finder": "^5.4 || ^6.0", "symfony/options-resolver": "^5.4 || ^6.0", - "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-php80": "^1.25", - "symfony/polyfill-php81": "^1.25", + "symfony/polyfill-mbstring": "^1.27", + "symfony/polyfill-php80": "^1.27", + "symfony/polyfill-php81": "^1.27", "symfony/process": "^5.4 || ^6.0", "symfony/stopwatch": "^5.4 || ^6.0" }, "require-dev": { "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^1.5", - "mikey179/vfsstream": "^1.6.10", - "php-coveralls/php-coveralls": "^2.5.2", + "keradus/cli-executor": "^2.0", + "mikey179/vfsstream": "^1.6.11", + "php-coveralls/php-coveralls": "^2.5.3", "php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy": "^1.15", + "phpspec/prophecy": "^1.16", "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "phpunitgoodpractices/polyfill": "^1.5", - "phpunitgoodpractices/traits": "^1.9.1", - "symfony/phpunit-bridge": "^6.0", + "phpunitgoodpractices/polyfill": "^1.6", + "phpunitgoodpractices/traits": "^1.9.2", + "symfony/phpunit-bridge": "^6.2.3", "symfony/yaml": "^5.4 || ^6.0" }, "suggest": { @@ -2375,9 +2379,15 @@ } ], "description": "A tool to automatically fix PHP code style", + "keywords": [ + "Static code analysis", + "fixer", + "standards", + "static analysis" + ], "support": { - "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.9.5" + "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.16.0" }, "funding": [ { @@ -2385,7 +2395,7 @@ "type": "github" } ], - "time": "2022-07-22T08:43:51+00:00" + "time": "2023-04-02T19:30:06+00:00" }, { "name": "justinrainbow/json-schema", @@ -3162,59 +3172,6 @@ }, "time": "2022-02-21T01:04:05+00:00" }, - { - "name": "php-cs-fixer/diff", - "version": "v2.0.2", - "source": { - "type": "git", - "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3", - "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", - "symfony/process": "^3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "sebastian/diff v3 backport support for PHP 5.6+", - "homepage": "https://github.com/PHP-CS-Fixer", - "keywords": [ - "diff" - ], - "support": { - "issues": "https://github.com/PHP-CS-Fixer/diff/issues", - "source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2" - }, - "abandoned": true, - "time": "2020-10-14T08:32:19+00:00" - }, { "name": "phpdocumentor/reflection-common", "version": "2.2.0", From 3af577be1c454c618d9b4516f53681eb28e2ed10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:24:06 +0200 Subject: [PATCH 283/305] Fix: Run 'make coding-standards' --- ...onFinalClassWithoutEntityAnnotationInMultilineDocBlock.php | 1 + ...inalClassWithoutOrmEntityAnnotationInMultilineDocBlock.php | 1 + .../NonFinalClassWithEntityAnnotationInMultilineDocBlock.php | 1 + ...onFinalClassWithOrmEntityAnnotationInMultilineDocBlock.php | 1 + ...ClassWithOrmMappingEntityAnnotationInMultilineDocBlock.php | 1 + .../Success/ClassExtendingPhpUnitFrameworkTestCase.php | 1 + .../Success/ClassExtendingPhpUnitFrameworkTestCase.php | 1 + test/Integration/AbstractTestCase.php | 4 ++-- 8 files changed, 9 insertions(+), 2 deletions(-) diff --git a/test/Fixture/Classes/FinalRule/Failure/NonFinalClassWithoutEntityAnnotationInMultilineDocBlock.php b/test/Fixture/Classes/FinalRule/Failure/NonFinalClassWithoutEntityAnnotationInMultilineDocBlock.php index 7afc3e65..dcc8ffa1 100644 --- a/test/Fixture/Classes/FinalRule/Failure/NonFinalClassWithoutEntityAnnotationInMultilineDocBlock.php +++ b/test/Fixture/Classes/FinalRule/Failure/NonFinalClassWithoutEntityAnnotationInMultilineDocBlock.php @@ -6,6 +6,7 @@ /** * @Table(name="hmm") + * * @eNtItY */ class NonFinalClassWithoutEntityAnnotationInMultilineDocBlock diff --git a/test/Fixture/Classes/FinalRule/Failure/NonFinalClassWithoutOrmEntityAnnotationInMultilineDocBlock.php b/test/Fixture/Classes/FinalRule/Failure/NonFinalClassWithoutOrmEntityAnnotationInMultilineDocBlock.php index 190fc2c6..0c358d77 100644 --- a/test/Fixture/Classes/FinalRule/Failure/NonFinalClassWithoutOrmEntityAnnotationInMultilineDocBlock.php +++ b/test/Fixture/Classes/FinalRule/Failure/NonFinalClassWithoutOrmEntityAnnotationInMultilineDocBlock.php @@ -6,6 +6,7 @@ /** * @ORM\Table(name="hmm") + * * @OrM\eNtItY */ class NonFinalClassWithoutOrmEntityAnnotationInMultilineDocBlock diff --git a/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithEntityAnnotationInMultilineDocBlock.php b/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithEntityAnnotationInMultilineDocBlock.php index eea2cf62..c65052c3 100644 --- a/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithEntityAnnotationInMultilineDocBlock.php +++ b/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithEntityAnnotationInMultilineDocBlock.php @@ -6,6 +6,7 @@ /** * @Table(name="hmm") + * * @Entity */ class NonFinalClassWithEntityAnnotationInMultilineDocBlock diff --git a/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithOrmEntityAnnotationInMultilineDocBlock.php b/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithOrmEntityAnnotationInMultilineDocBlock.php index c1427a4e..512df803 100644 --- a/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithOrmEntityAnnotationInMultilineDocBlock.php +++ b/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithOrmEntityAnnotationInMultilineDocBlock.php @@ -6,6 +6,7 @@ /** * @ORM\Table(name="hmm") + * * @ORM\Entity */ class NonFinalClassWithOrmEntityAnnotationInMultilineDocBlock diff --git a/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithOrmMappingEntityAnnotationInMultilineDocBlock.php b/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithOrmMappingEntityAnnotationInMultilineDocBlock.php index b272ad58..7b50484c 100644 --- a/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithOrmMappingEntityAnnotationInMultilineDocBlock.php +++ b/test/Fixture/Classes/FinalRule/Success/NonFinalClassWithOrmMappingEntityAnnotationInMultilineDocBlock.php @@ -6,6 +6,7 @@ /** * @ORM\Mapping\Table(name="hmm") + * * @ORM\Mapping\Entity */ class NonFinalClassWithOrmMappingEntityAnnotationInMultilineDocBlock diff --git a/test/Fixture/Classes/NoExtendsRule/Success/ClassExtendingPhpUnitFrameworkTestCase.php b/test/Fixture/Classes/NoExtendsRule/Success/ClassExtendingPhpUnitFrameworkTestCase.php index da95a6ad..f00813db 100644 --- a/test/Fixture/Classes/NoExtendsRule/Success/ClassExtendingPhpUnitFrameworkTestCase.php +++ b/test/Fixture/Classes/NoExtendsRule/Success/ClassExtendingPhpUnitFrameworkTestCase.php @@ -8,6 +8,7 @@ /** * @internal + * * @coversNothing */ final class ClassExtendingPhpUnitFrameworkTestCase extends TestCase diff --git a/test/Fixture/Classes/NoExtendsRuleWithClassesAllowedToBeExtended/Success/ClassExtendingPhpUnitFrameworkTestCase.php b/test/Fixture/Classes/NoExtendsRuleWithClassesAllowedToBeExtended/Success/ClassExtendingPhpUnitFrameworkTestCase.php index 3fb5a81f..2399286a 100644 --- a/test/Fixture/Classes/NoExtendsRuleWithClassesAllowedToBeExtended/Success/ClassExtendingPhpUnitFrameworkTestCase.php +++ b/test/Fixture/Classes/NoExtendsRuleWithClassesAllowedToBeExtended/Success/ClassExtendingPhpUnitFrameworkTestCase.php @@ -8,6 +8,7 @@ /** * @internal + * * @coversNothing */ final class ClassExtendingPhpUnitFrameworkTestCase extends TestCase diff --git a/test/Integration/AbstractTestCase.php b/test/Integration/AbstractTestCase.php index 5a67c225..797cb500 100644 --- a/test/Integration/AbstractTestCase.php +++ b/test/Integration/AbstractTestCase.php @@ -48,7 +48,7 @@ final public function testAnalysisFails(string $path, array $error): void ); } - abstract public function provideCasesWhereAnalysisShouldSucceed(): iterable; + abstract public static function provideCasesWhereAnalysisShouldSucceed(): iterable; - abstract public function provideCasesWhereAnalysisShouldFail(): iterable; + abstract public static function provideCasesWhereAnalysisShouldFail(): iterable; } From d8ece99a0d98071714430c7e744b8910882d3d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:25:24 +0200 Subject: [PATCH 284/305] Fix: Methods should be static --- test/Integration/Classes/FinalRuleTest.php | 4 ++-- .../Classes/FinalRuleWithAbstractClassesAllowedTest.php | 4 ++-- test/Integration/Classes/FinalRuleWithAttributesTest.php | 4 ++-- .../Classes/FinalRuleWithExcludedClassNamesTest.php | 4 ++-- test/Integration/Classes/NoExtendsRuleTest.php | 4 ++-- .../NoExtendsRuleWithClassesAllowedToBeExtendedTest.php | 4 ++-- .../Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php | 4 ++-- .../Closures/NoNullableReturnTypeDeclarationRuleTest.php | 4 ++-- .../Closures/NoParameterWithNullDefaultValueRuleTest.php | 4 ++-- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 4 ++-- test/Integration/Expressions/NoCompactRuleTest.php | 4 ++-- test/Integration/Expressions/NoEmptyRuleTest.php | 4 ++-- test/Integration/Expressions/NoErrorSuppressionRuleTest.php | 4 ++-- test/Integration/Expressions/NoEvalRuleTest.php | 4 ++-- test/Integration/Expressions/NoIssetRuleTest.php | 4 ++-- test/Integration/Files/DeclareStrictTypesRuleTest.php | 4 ++-- .../Functions/NoNullableReturnTypeDeclarationRuleTest.php | 4 ++-- .../Functions/NoParameterWithNullDefaultValueRuleTest.php | 4 ++-- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 4 ++-- test/Integration/Methods/FinalInAbstractClassRuleTest.php | 4 ++-- .../NoConstructorParameterWithDefaultValueRuleTest.php | 4 ++-- .../Methods/NoNullableReturnTypeDeclarationRuleTest.php | 4 ++-- .../NoParameterWithContainerTypeDeclarationRuleTest.php | 4 ++-- .../Methods/NoParameterWithNullDefaultValueRuleTest.php | 4 ++-- .../NoParameterWithNullableTypeDeclarationRuleTest.php | 4 ++-- test/Integration/Methods/PrivateInFinalClassRuleTest.php | 4 ++-- test/Integration/Statements/NoSwitchRuleTest.php | 4 ++-- 27 files changed, 54 insertions(+), 54 deletions(-) diff --git a/test/Integration/Classes/FinalRuleTest.php b/test/Integration/Classes/FinalRuleTest.php index 9fcf8221..e3e13963 100644 --- a/test/Integration/Classes/FinalRuleTest.php +++ b/test/Integration/Classes/FinalRuleTest.php @@ -25,7 +25,7 @@ */ final class FinalRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'final-class' => __DIR__ . '/../../Fixture/Classes/FinalRule/Success/FinalClass.php', @@ -49,7 +49,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'abstract-class' => [ diff --git a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php index 9485b0f9..4b814218 100644 --- a/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php +++ b/test/Integration/Classes/FinalRuleWithAbstractClassesAllowedTest.php @@ -25,7 +25,7 @@ */ final class FinalRuleWithAbstractClassesAllowedTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'abstract-class' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithAbstractClassesAllowed/Failure/AbstractClass.php', @@ -44,7 +44,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'neither-abstract-nor-final-class' => [ diff --git a/test/Integration/Classes/FinalRuleWithAttributesTest.php b/test/Integration/Classes/FinalRuleWithAttributesTest.php index 2ff3ac6a..e1f7becf 100644 --- a/test/Integration/Classes/FinalRuleWithAttributesTest.php +++ b/test/Integration/Classes/FinalRuleWithAttributesTest.php @@ -27,7 +27,7 @@ */ final class FinalRuleWithAttributesTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'non-final-class-with-qualified-aliased-orm-mapping-entity-attribute' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithAttributes/Success/NonFinalClassWithAliasedOrmEntityAttribute.php', @@ -44,7 +44,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'non-final-class-with-unqualified-doctrine-orm-mapping-entity-attribute' => [ diff --git a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php index 4d34ce7a..646987ea 100644 --- a/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php +++ b/test/Integration/Classes/FinalRuleWithExcludedClassNamesTest.php @@ -25,7 +25,7 @@ */ final class FinalRuleWithExcludedClassNamesTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'class-neither-abstract-nor-final-but-whitelisted' => __DIR__ . '/../../Fixture/Classes/FinalRuleWithExcludedClassNames/Success/NeitherAbstractNorFinalClassButWhitelisted.php', @@ -44,7 +44,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'abstract-class' => [ diff --git a/test/Integration/Classes/NoExtendsRuleTest.php b/test/Integration/Classes/NoExtendsRuleTest.php index 9028b920..5ece3a2c 100644 --- a/test/Integration/Classes/NoExtendsRuleTest.php +++ b/test/Integration/Classes/NoExtendsRuleTest.php @@ -25,7 +25,7 @@ */ final class NoExtendsRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'class' => __DIR__ . '/../../Fixture/Classes/NoExtendsRule/Success/ExampleClass.php', @@ -42,7 +42,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'class-extending-other-class' => [ diff --git a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php index 6362285e..557ceb31 100644 --- a/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php +++ b/test/Integration/Classes/NoExtendsRuleWithClassesAllowedToBeExtendedTest.php @@ -25,7 +25,7 @@ */ final class NoExtendsRuleWithClassesAllowedToBeExtendedTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'class' => __DIR__ . '/../../Fixture/Classes/NoExtendsRuleWithClassesAllowedToBeExtended/Success/ExampleClass.php', @@ -44,7 +44,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'class-extending-other-class' => [ diff --git a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php index 4f128833..d76cb6a3 100644 --- a/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php +++ b/test/Integration/Classes/PHPUnit/Framework/TestCaseWithSuffixRuleTest.php @@ -26,7 +26,7 @@ */ final class TestCaseWithSuffixRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'concrete-test-case-with-suffix-test' => __DIR__ . '/../../../../Fixture/Classes/PHPUnit/Framework/TestCaseWithSuffixRule/Success/ConcreteTestCaseWithSuffixTest.php', @@ -41,7 +41,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'concrete-test-case-extending-abstract-test-case-without-test-suffix' => [ diff --git a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php index 6d3577e7..e9f0a9d8 100644 --- a/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoNullableReturnTypeDeclarationRuleTest.php @@ -24,7 +24,7 @@ */ final class NoNullableReturnTypeDeclarationRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'closure-with-return-type-declaration' => __DIR__ . '/../../Fixture/Closures/NoNullableReturnTypeDeclarationRule/Success/closure-with-return-type-declaration.php', @@ -38,7 +38,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'closure-with-nullable-return-type-declaration' => [ diff --git a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php index f0140ea7..0e8dc47d 100644 --- a/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullDefaultValueRuleTest.php @@ -24,7 +24,7 @@ */ final class NoParameterWithNullDefaultValueRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'closure-with-parameter-with-non-null-default-value' => __DIR__ . '/../../Fixture/Closures/NoParameterWithNullDefaultValueRule/Success/closure-with-parameter-with-non-null-default-value.php', @@ -39,7 +39,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'closure-with-parameter-with-null-default-value' => [ diff --git a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php index b6e52caa..e7f78cea 100644 --- a/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Closures/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -24,7 +24,7 @@ */ final class NoParameterWithNullableTypeDeclarationRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'closure-with-parameter-with-type-declaration' => __DIR__ . '/../../Fixture/Closures/NoParameterWithNullableTypeDeclarationRule/Success/closure-with-parameter-with-type-declaration.php', @@ -39,7 +39,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'closure-with-parameter-with-nullable-type-declaration' => [ diff --git a/test/Integration/Expressions/NoCompactRuleTest.php b/test/Integration/Expressions/NoCompactRuleTest.php index bb4f5218..b6f40b4c 100644 --- a/test/Integration/Expressions/NoCompactRuleTest.php +++ b/test/Integration/Expressions/NoCompactRuleTest.php @@ -24,7 +24,7 @@ */ final class NoCompactRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'compact-not-used' => __DIR__ . '/../../Fixture/Expressions/NoCompactRule/Success/compact-not-used.php', @@ -37,7 +37,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'compact-used-with-alias' => [ diff --git a/test/Integration/Expressions/NoEmptyRuleTest.php b/test/Integration/Expressions/NoEmptyRuleTest.php index acfc24cd..2625f96a 100644 --- a/test/Integration/Expressions/NoEmptyRuleTest.php +++ b/test/Integration/Expressions/NoEmptyRuleTest.php @@ -24,7 +24,7 @@ */ final class NoEmptyRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'empty-not-used' => __DIR__ . '/../../Fixture/Expressions/NoEmptyRule/Success/empty-not-used.php', @@ -37,7 +37,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'empty-used-with-correct-case' => [ diff --git a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php index a93cd08f..e17ca28f 100644 --- a/test/Integration/Expressions/NoErrorSuppressionRuleTest.php +++ b/test/Integration/Expressions/NoErrorSuppressionRuleTest.php @@ -24,7 +24,7 @@ */ final class NoErrorSuppressionRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'error-suppression-not-used' => __DIR__ . '/../../Fixture/Expressions/NoErrorSuppressionRule/Success/error-suppression-not-used.php', @@ -37,7 +37,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'error-suppression-used' => [ diff --git a/test/Integration/Expressions/NoEvalRuleTest.php b/test/Integration/Expressions/NoEvalRuleTest.php index 08d66b2d..88254334 100644 --- a/test/Integration/Expressions/NoEvalRuleTest.php +++ b/test/Integration/Expressions/NoEvalRuleTest.php @@ -24,7 +24,7 @@ */ final class NoEvalRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'eval-not-used' => __DIR__ . '/../../Fixture/Expressions/NoEvalRule/Success/eval-not-used.php', @@ -37,7 +37,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'eval-used-with-correct-case' => [ diff --git a/test/Integration/Expressions/NoIssetRuleTest.php b/test/Integration/Expressions/NoIssetRuleTest.php index 90d0d890..3907deb1 100644 --- a/test/Integration/Expressions/NoIssetRuleTest.php +++ b/test/Integration/Expressions/NoIssetRuleTest.php @@ -24,7 +24,7 @@ */ final class NoIssetRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'isset-not-used' => __DIR__ . '/../../Fixture/Expressions/NoIssetRule/Success/isset-not-used.php', @@ -37,7 +37,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'isset-used-with-correct-case' => [ diff --git a/test/Integration/Files/DeclareStrictTypesRuleTest.php b/test/Integration/Files/DeclareStrictTypesRuleTest.php index 26539935..7e0985a9 100644 --- a/test/Integration/Files/DeclareStrictTypesRuleTest.php +++ b/test/Integration/Files/DeclareStrictTypesRuleTest.php @@ -24,7 +24,7 @@ */ final class DeclareStrictTypesRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'file-empty' => __DIR__ . '/../../Fixture/Files/DeclareStrictTypesRule/Success/file-empty.php', @@ -50,7 +50,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'file-with-comment-and-declare-strict-types-off' => [ diff --git a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php index ea781fb0..ffd622df 100644 --- a/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoNullableReturnTypeDeclarationRuleTest.php @@ -24,7 +24,7 @@ */ final class NoNullableReturnTypeDeclarationRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'function-with-return-type-declaration' => __DIR__ . '/../../Fixture/Functions/NoNullableReturnTypeDeclarationRule/Success/function-with-return-type-declaration.php', @@ -38,7 +38,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'function-with-nullable-return-type-declaration' => [ diff --git a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php index 8b374e82..5f74dd64 100644 --- a/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullDefaultValueRuleTest.php @@ -24,7 +24,7 @@ */ final class NoParameterWithNullDefaultValueRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'function-with-parameter-with-non-null-default-value' => __DIR__ . '/../../Fixture/Functions/NoParameterWithNullDefaultValueRule/Success/function-with-parameter-with-non-null-default-value.php', @@ -39,7 +39,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'function-with-parameter-with-null-default-value' => [ diff --git a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php index 219cf6bd..c9d3017d 100644 --- a/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Functions/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -24,7 +24,7 @@ */ final class NoParameterWithNullableTypeDeclarationRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'function-with-parameter-with-type-declaration' => __DIR__ . '/../../Fixture/Functions/NoParameterWithNullableTypeDeclarationRule/Success/function-with-parameter-with-type-declaration.php', @@ -39,7 +39,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'function-with-parameter-with-nullable-type-declaration' => [ diff --git a/test/Integration/Methods/FinalInAbstractClassRuleTest.php b/test/Integration/Methods/FinalInAbstractClassRuleTest.php index a02da6e6..813ec8ee 100644 --- a/test/Integration/Methods/FinalInAbstractClassRuleTest.php +++ b/test/Integration/Methods/FinalInAbstractClassRuleTest.php @@ -25,7 +25,7 @@ */ final class FinalInAbstractClassRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'abstract-class-with-abstract-method' => __DIR__ . '/../../Fixture/Methods/FinalInAbstractClassRule/Success/AbstractClassWithAbstractMethod.php', @@ -43,7 +43,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'abstract-class-with-protected-method' => [ diff --git a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php index e5a9e90a..4a4ea2fd 100644 --- a/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoConstructorParameterWithDefaultValueRuleTest.php @@ -25,7 +25,7 @@ */ final class NoConstructorParameterWithDefaultValueRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'constructor-in-anonymous-class-with-parameter-without-default-value' => __DIR__ . '/../../Fixture/Methods/NoConstructorParameterWithDefaultValueRule/Success/constructor-in-anonymous-class-with-parameter-without-default-value.php', @@ -49,7 +49,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'constructor-in-anonymous-class-with-parameter-with-default-value' => [ diff --git a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php index dc08716a..97490b80 100644 --- a/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoNullableReturnTypeDeclarationRuleTest.php @@ -25,7 +25,7 @@ */ final class NoNullableReturnTypeDeclarationRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'method-in-anonymous-class-with-return-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoNullableReturnTypeDeclarationRule/Success/MethodInAnonymousClassWithReturnTypeDeclaration.php', @@ -47,7 +47,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'method-in-anonymous-class-with-nullable-return-type-declaration' => [ diff --git a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php index 4cd57a50..d5465523 100644 --- a/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithContainerTypeDeclarationRuleTest.php @@ -26,7 +26,7 @@ */ final class NoParameterWithContainerTypeDeclarationRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'anonymous-class-with-method-with-parameter-with-other-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoParameterWithContainerTypeDeclarationRule/Success/anonymous-class-with-method-with-parameter-with-other-type-declaration.php', @@ -44,7 +44,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'anonymous-class-with-method-with-parameter-with-class-implementing-container-interface-as-type-declaration' => [ diff --git a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php index 6ad9020b..a4418bcf 100644 --- a/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullDefaultValueRuleTest.php @@ -25,7 +25,7 @@ */ final class NoParameterWithNullDefaultValueRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'method-in-anonymous-class-with-parameter-with-non-null-default-value' => __DIR__ . '/../../Fixture/Methods/NoParameterWithNullDefaultValueRule/Success/method-in-anonymous-class-with-parameter-with-non-null-default-value.php', @@ -53,7 +53,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'method-in-anonymous-class-with-parameter-with-null-default-value' => [ diff --git a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php index e0857ba0..b8d29360 100644 --- a/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php +++ b/test/Integration/Methods/NoParameterWithNullableTypeDeclarationRuleTest.php @@ -25,7 +25,7 @@ */ final class NoParameterWithNullableTypeDeclarationRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'method-in-anonymous-class-with-parameter-with-type-declaration' => __DIR__ . '/../../Fixture/Methods/NoParameterWithNullableTypeDeclarationRule/Success/method-in-anonymous-class-with-parameter-with-type-declaration.php', @@ -50,7 +50,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'method-in-anonymous-class-with-parameter-with-nullable-type-declaration' => [ diff --git a/test/Integration/Methods/PrivateInFinalClassRuleTest.php b/test/Integration/Methods/PrivateInFinalClassRuleTest.php index 40258107..61dc0a0e 100644 --- a/test/Integration/Methods/PrivateInFinalClassRuleTest.php +++ b/test/Integration/Methods/PrivateInFinalClassRuleTest.php @@ -25,7 +25,7 @@ */ final class PrivateInFinalClassRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'abstract-class-with-protected-method' => __DIR__ . '/../../Fixture/Methods/PrivateInFinalClassRule/Success/AbstractClassWithProtectedMethod.php', @@ -43,7 +43,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'final-class-with-protected-method' => [ diff --git a/test/Integration/Statements/NoSwitchRuleTest.php b/test/Integration/Statements/NoSwitchRuleTest.php index c6012035..8083a406 100644 --- a/test/Integration/Statements/NoSwitchRuleTest.php +++ b/test/Integration/Statements/NoSwitchRuleTest.php @@ -24,7 +24,7 @@ */ final class NoSwitchRuleTest extends AbstractTestCase { - public function provideCasesWhereAnalysisShouldSucceed(): iterable + public static function provideCasesWhereAnalysisShouldSucceed(): iterable { $paths = [ 'isset-not-used' => __DIR__ . '/../../Fixture/Statements/NoSwitchRule/Success/switch-not-used.php', @@ -37,7 +37,7 @@ public function provideCasesWhereAnalysisShouldSucceed(): iterable } } - public function provideCasesWhereAnalysisShouldFail(): iterable + public static function provideCasesWhereAnalysisShouldFail(): iterable { $paths = [ 'switch-used-with-correct-case' => [ From 5fb631aa2b0be5c2ccf05c26eeb8f1b3b9abfae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:26:33 +0200 Subject: [PATCH 285/305] Fix: Line --- test/Integration/Classes/FinalRuleTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Integration/Classes/FinalRuleTest.php b/test/Integration/Classes/FinalRuleTest.php index e3e13963..33e05242 100644 --- a/test/Integration/Classes/FinalRuleTest.php +++ b/test/Integration/Classes/FinalRuleTest.php @@ -89,7 +89,7 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 'Class %s is not final.', Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutEntityAnnotationInMultilineDocBlock::class, ), - 11, + 12, ], ], 'non-final-class-without-orm-entity-annotation-in-inline-doc-block' => [ @@ -109,7 +109,7 @@ public static function provideCasesWhereAnalysisShouldFail(): iterable 'Class %s is not final.', Fixture\Classes\FinalRule\Failure\NonFinalClassWithoutOrmEntityAnnotationInMultilineDocBlock::class, ), - 11, + 12, ], ], ]; From 2d4d6abf29bfb245fb973d4207f27af7d42e8031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:28:51 +0200 Subject: [PATCH 286/305] Fix: Ignore phpstan/phpstan --- .github/dependabot.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index eb22ef0e..bcb03807 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -7,6 +7,8 @@ updates: include: "scope" prefix: "composer" directory: "/" + ignore: + - dependency-name: "phpstan/phpstan" labels: - "dependency" open-pull-requests-limit: 10 From fba1d2dd0a3d26b4c8edd315ce1b05e398b4a6cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Tou=C5=A1ek?= Date: Thu, 20 Apr 2023 15:48:19 +0200 Subject: [PATCH 287/305] Remove redundant NoEmptyRule --- CHANGELOG.md | 6 ++ README.md | 5 -- psalm-baseline.xml | 5 -- rules.neon | 1 - src/Expressions/NoEmptyRule.php | 35 --------- .../Success/compact-not-used.php | 2 +- .../Failure/empty-used-with-correct-case.php | 9 --- .../empty-used-with-incorrect-case.php | 9 --- .../NoEmptyRule/Success/empty-not-used.php | 14 ---- .../Expressions/NoEmptyRuleTest.php | 71 ------------------- 10 files changed, 7 insertions(+), 150 deletions(-) delete mode 100644 src/Expressions/NoEmptyRule.php delete mode 100644 test/Fixture/Expressions/NoEmptyRule/Failure/empty-used-with-correct-case.php delete mode 100644 test/Fixture/Expressions/NoEmptyRule/Failure/empty-used-with-incorrect-case.php delete mode 100644 test/Fixture/Expressions/NoEmptyRule/Success/empty-not-used.php delete mode 100644 test/Integration/Expressions/NoEmptyRuleTest.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 7439db6a..6891b751 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,10 @@ For a full diff see [`1.0.0...main`][1.0.0...main]. - Dropped support for PHP 7.3 ([#498]), by [@localheinz] - Dropped support for PHP 7.4 ([#499]), by [@localheinz] +### Removed + +- Removed `Expressions\NoEmptyRule` ([#525]), by [@enumag] + ## [`1.0.0`][1.0.0] For a full diff see [`0.15.3...1.0.0`][0.15.3...1.0.0]. @@ -456,7 +460,9 @@ For a full diff see [`362c7ea...0.1.0`][362c7ea...0.1.0]. [#496]: https://github.com/ergebnis/phpstan-rules/pull/496 [#498]: https://github.com/ergebnis/phpstan-rules/pull/498 [#499]: https://github.com/ergebnis/phpstan-rules/pull/498 +[#525]: https://github.com/ergebnis/phpstan-rules/pull/525 +[@enumag]: https://github.com/enumag [@ergebnis]: https://github.com/ergebnis [@Great-Antique]: https://github.com/Great-Antique [@localheinz]: https://github.com/localheinz diff --git a/README.md b/README.md index 396b81aa..fdff4557 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,6 @@ This package provides the following rules for use with [`phpstan/phpstan`](https - [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnullabletypedeclarationrule) - [`Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullDefaultValueRule`](https://github.com/ergebnis/phpstan-rules#closuresnoparameterwithnulldefaultvaluerule) - [`Ergebnis\PHPStan\Rules\Expressions\NoCompactRule`](https://github.com/ergebnis/phpstan-rules#expressionsnocompactrule) -- [`Ergebnis\PHPStan\Rules\Expressions\NoEmptyRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoemptyrule) - [`Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoerrorsuppressionrule) - [`Ergebnis\PHPStan\Rules\Expressions\NoEvalRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoevalrule) - [`Ergebnis\PHPStan\Rules\Expressions\NoIssetRule`](https://github.com/ergebnis/phpstan-rules#expressionsnoissetrule) @@ -148,10 +147,6 @@ This rule reports an error when a closure has a parameter with `null` as default This rule reports an error when the function [`compact()`](https://www.php.net/compact) is used. -#### `Expressions\NoEmptyRule` - -This rule reports an error when the language construct [`empty()`](https://www.php.net/empty) is used. - #### `Expressions\NoEvalRule` This rule reports an error when the language construct [`eval()`](https://www.php.net/eval) is used. diff --git a/psalm-baseline.xml b/psalm-baseline.xml index feda9791..95a56ee9 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -53,11 +53,6 @@ Rule - - - Rule - - Rule diff --git a/rules.neon b/rules.neon index 0a697631..9e2fbed5 100644 --- a/rules.neon +++ b/rules.neon @@ -19,7 +19,6 @@ rules: - Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule - Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule - Ergebnis\PHPStan\Rules\Expressions\NoCompactRule - - Ergebnis\PHPStan\Rules\Expressions\NoEmptyRule - Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule - Ergebnis\PHPStan\Rules\Expressions\NoEvalRule - Ergebnis\PHPStan\Rules\Expressions\NoIssetRule diff --git a/src/Expressions/NoEmptyRule.php b/src/Expressions/NoEmptyRule.php deleted file mode 100644 index f40c03b3..00000000 --- a/src/Expressions/NoEmptyRule.php +++ /dev/null @@ -1,35 +0,0 @@ - __DIR__ . '/../../Fixture/Expressions/NoEmptyRule/Success/empty-not-used.php', - ]; - - foreach ($paths as $description => $path) { - yield $description => [ - $path, - ]; - } - } - - public static function provideCasesWhereAnalysisShouldFail(): iterable - { - $paths = [ - 'empty-used-with-correct-case' => [ - __DIR__ . '/../../Fixture/Expressions/NoEmptyRule/Failure/empty-used-with-correct-case.php', - [ - 'Language construct empty() should not be used.', - 7, - ], - ], - 'empty-used-with-incorrect-case' => [ - __DIR__ . '/../../Fixture/Expressions/NoEmptyRule/Failure/empty-used-with-incorrect-case.php', - [ - 'Language construct empty() should not be used.', - 7, - ], - ], - ]; - - foreach ($paths as $description => [$path, $error]) { - yield $description => [ - $path, - $error, - ]; - } - } - - protected function getRule(): Rule - { - return new NoEmptyRule(); - } -} From 33d6c87fd7659e14fff57aa10a448faee8ecdf93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:32:25 +0200 Subject: [PATCH 288/305] Fix: Do not emoty phpstan-baseline.neon --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 5b26bbd8..75f8d38a 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,6 @@ static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan .PHONY: static-code-analysis-baseline static-code-analysis-baseline: vendor ## Generates a baseline for static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan - echo '' > phpstan-baseline.neon vendor/bin/phpstan analyze --configuration=phpstan.neon --generate-baseline --memory-limit=-1 mkdir -p .build/psalm vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml From b3a86f85c30584d1358933b4fc75eec23a59bcc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:34:03 +0200 Subject: [PATCH 289/305] Fix: Widen version constraint --- composer.json | 2 +- composer.lock | 25 ++++++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index fb039796..38f474fb 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "php": "~8.0.0 || ~8.1.0", "ext-mbstring": "*", "nikic/php-parser": "^4.2.3", - "phpstan/phpstan": "~1.7.15" + "phpstan/phpstan": "^1.7.15" }, "require-dev": { "doctrine/orm": "^2.14.3", diff --git a/composer.lock b/composer.lock index 502c1409..fbcb9fc9 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": "2afa92201979e7d24b50302d33219510", + "content-hash": "fed95e1692999edb97e656aa8e428938", "packages": [ { "name": "nikic/php-parser", @@ -64,16 +64,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.7.15", + "version": "1.10.14", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a" + "reference": "d232901b09e67538e5c86a724be841bea5768a7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a", - "reference": "cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d232901b09e67538e5c86a724be841bea5768a7c", + "reference": "d232901b09e67538e5c86a724be841bea5768a7c", "shasum": "" }, "require": { @@ -97,9 +97,16 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.7.15" + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, "funding": [ { @@ -110,16 +117,12 @@ "url": "https://github.com/phpstan", "type": "github" }, - { - "url": "https://www.patreon.com/phpstan", - "type": "patreon" - }, { "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", "type": "tidelift" } ], - "time": "2022-06-20T08:29:01+00:00" + "time": "2023-04-19T13:47:27+00:00" } ], "packages-dev": [ From 40e2a4ada01569ef1f4c0e5f0f2f029d614f5571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:40:15 +0200 Subject: [PATCH 290/305] Enhancement: Run mutation tests with infection/infection --- .gitattributes | 1 + .github/CONTRIBUTING.md | 12 + .github/settings.yml | 1 + .github/workflows/integrate.yaml | 44 +- Makefile | 5 + composer.json | 1 + composer.lock | 736 ++++++++++++++++++++++++++++++- infection.json | 17 + 8 files changed, 814 insertions(+), 3 deletions(-) create mode 100644 infection.json diff --git a/.gitattributes b/.gitattributes index 66f7cc92..4ce803a8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,6 +6,7 @@ /.gitignore export-ignore /.php_cs export-ignore /composer-require-checker.json export-ignore +/infection.json export-ignore /Makefile export-ignore /phpstan-baseline.neon export-ignore /phpstan.neon export-ignore diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index e5eafaa9..dcaf2645 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -82,6 +82,18 @@ $ make tests to run all the tests. +## Mutation Tests + +We are using [`infection/infection`](https://github.com/infection/infection) to ensure a minimum quality of the tests. + +Enable `Xdebug` and run + +```sh +$ make mutation-tests +``` + +to run mutation tests. + ## Extra lazy? Run diff --git a/.github/settings.yml b/.github/settings.yml index eef8c009..44243517 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -17,6 +17,7 @@ branches: - "Code Coverage (8.0, locked)" - "Coding Standards (8.0, locked)" - "Dependency Analysis (8.0, locked)" + - "Mutation Tests (8.0, locked)" - "Static Code Analysis (8.0, locked)" - "Tests (8.0, highest)" - "Tests (8.0, locked)" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index cc2ff282..83eaa9e7 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -9,8 +9,6 @@ on: # yamllint disable-line rule:truthy - "main" env: - MIN_COVERED_MSI: 91 - MIN_MSI: 81 PHP_EXTENSIONS: "mbstring" jobs: @@ -273,3 +271,45 @@ jobs: env: CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}" run: "bash <(curl -s https://codecov.io/bash)" + + mutation-tests: + name: "Mutation Tests" + + runs-on: "ubuntu-latest" + + strategy: + matrix: + php-version: + - "7.4" + + dependencies: + - "locked" + + steps: + - name: "Checkout" + uses: "actions/checkout@v3" + + - name: "Install PHP with extensions" + uses: "shivammathur/setup-php@2.18.1" + with: + coverage: "xdebug" + extensions: "${{ env.PHP_EXTENSIONS }}" + php-version: "${{ matrix.php-version }}" + + - name: "Determine composer cache directory" + uses: "./.github/actions/composer/composer/determine-cache-directory" + + - name: "Cache dependencies installed with composer" + uses: "actions/cache@v3" + with: + path: "${{ env.COMPOSER_CACHE_DIR }}" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" + restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" + + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "./.github/actions/composer/composer/install" + with: + dependencies: "${{ matrix.dependencies }}" + + - name: "Run mutation tests with Xdebug and infection/infection" + run: "vendor/bin/infection --configuration=infection.json" diff --git a/Makefile b/Makefile index 75f8d38a..acb68757 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,11 @@ dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer- help: ## Displays this list of targets with descriptions @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}' +.PHONY: mutation-tests +mutation-tests: vendor ## Runs mutation tests with infection/infection + mkdir -p .build/infection + vendor/bin/infection --configuration=infection.json + .PHONY: static-code-analysis static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan diff --git a/composer.json b/composer.json index 38f474fb..7c4c23cd 100644 --- a/composer.json +++ b/composer.json @@ -30,6 +30,7 @@ "ergebnis/composer-normalize": "^2.30.2", "ergebnis/license": "^2.1.0", "ergebnis/php-cs-fixer-config": "^5.5.2", + "infection/infection": "~0.26.16", "nette/di": "^3.1.2", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", diff --git a/composer.lock b/composer.lock index fbcb9fc9..a7692893 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": "fed95e1692999edb97e656aa8e428938", + "content-hash": "225089b735fb3945cabd5af5ff534c83", "packages": [ { "name": "nikic/php-parser", @@ -292,6 +292,97 @@ ], "time": "2021-03-30T17:13:30+00:00" }, + { + "name": "colinodell/json5", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/colinodell/json5.git", + "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/colinodell/json5/zipball/15b063f8cb5e6deb15f0cd39123264ec0d19c710", + "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "php": "^7.1.3|^8.0" + }, + "conflict": { + "scrutinizer/ocular": "1.7.*" + }, + "require-dev": { + "mikehaertl/php-shellcommand": "^1.2.5", + "phpstan/phpstan": "^1.4", + "scrutinizer/ocular": "^1.6", + "squizlabs/php_codesniffer": "^2.3 || ^3.0", + "symfony/finder": "^4.4|^5.4|^6.0", + "symfony/phpunit-bridge": "^5.4|^6.0" + }, + "bin": [ + "bin/json5" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "files": [ + "src/global.php" + ], + "psr-4": { + "ColinODell\\Json5\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Developer" + } + ], + "description": "UTF-8 compatible JSON5 parser for PHP", + "homepage": "https://github.com/colinodell/json5", + "keywords": [ + "JSON5", + "json", + "json5_decode", + "json_decode" + ], + "support": { + "issues": "https://github.com/colinodell/json5/issues", + "source": "https://github.com/colinodell/json5/tree/v2.3.0" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://www.patreon.com/colinodell", + "type": "patreon" + } + ], + "time": "2022-12-27T16:44:40+00:00" + }, { "name": "composer/package-versions-deprecated", "version": "1.11.99.5", @@ -2400,6 +2491,309 @@ ], "time": "2023-04-02T19:30:06+00:00" }, + { + "name": "infection/abstract-testframework-adapter", + "version": "0.5.0", + "source": { + "type": "git", + "url": "https://github.com/infection/abstract-testframework-adapter.git", + "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/18925e20d15d1a5995bb85c9dc09e8751e1e069b", + "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.8", + "friendsofphp/php-cs-fixer": "^2.17", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Infection\\AbstractTestFramework\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com" + } + ], + "description": "Abstract Test Framework Adapter for Infection", + "support": { + "issues": "https://github.com/infection/abstract-testframework-adapter/issues", + "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.5.0" + }, + "funding": [ + { + "url": "https://github.com/infection", + "type": "github" + }, + { + "url": "https://opencollective.com/infection", + "type": "open_collective" + } + ], + "time": "2021-08-17T18:49:12+00:00" + }, + { + "name": "infection/extension-installer", + "version": "0.1.2", + "source": { + "type": "git", + "url": "https://github.com/infection/extension-installer.git", + "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/infection/extension-installer/zipball/9b351d2910b9a23ab4815542e93d541e0ca0cdcf", + "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1 || ^2.0" + }, + "require-dev": { + "composer/composer": "^1.9 || ^2.0", + "friendsofphp/php-cs-fixer": "^2.18, <2.19", + "infection/infection": "^0.15.2", + "php-coveralls/php-coveralls": "^2.4", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.10", + "phpstan/phpstan-phpunit": "^0.12.6", + "phpstan/phpstan-strict-rules": "^0.12.2", + "phpstan/phpstan-webmozart-assert": "^0.12.2", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.8" + }, + "type": "composer-plugin", + "extra": { + "class": "Infection\\ExtensionInstaller\\Plugin" + }, + "autoload": { + "psr-4": { + "Infection\\ExtensionInstaller\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com" + } + ], + "description": "Infection Extension Installer", + "support": { + "issues": "https://github.com/infection/extension-installer/issues", + "source": "https://github.com/infection/extension-installer/tree/0.1.2" + }, + "funding": [ + { + "url": "https://github.com/infection", + "type": "github" + }, + { + "url": "https://opencollective.com/infection", + "type": "open_collective" + } + ], + "time": "2021-10-20T22:08:34+00:00" + }, + { + "name": "infection/include-interceptor", + "version": "0.2.5", + "source": { + "type": "git", + "url": "https://github.com/infection/include-interceptor.git", + "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/infection/include-interceptor/zipball/0cc76d95a79d9832d74e74492b0a30139904bdf7", + "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7", + "shasum": "" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.16", + "infection/infection": "^0.15.0", + "phan/phan": "^2.4 || ^3", + "php-coveralls/php-coveralls": "^2.2", + "phpstan/phpstan": "^0.12.8", + "phpunit/phpunit": "^8.5", + "vimeo/psalm": "^3.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Infection\\StreamWrapper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com" + } + ], + "description": "Stream Wrapper: Include Interceptor. Allows to replace included (autoloaded) file with another one.", + "support": { + "issues": "https://github.com/infection/include-interceptor/issues", + "source": "https://github.com/infection/include-interceptor/tree/0.2.5" + }, + "funding": [ + { + "url": "https://github.com/infection", + "type": "github" + }, + { + "url": "https://opencollective.com/infection", + "type": "open_collective" + } + ], + "time": "2021-08-09T10:03:57+00:00" + }, + { + "name": "infection/infection", + "version": "0.26.16", + "source": { + "type": "git", + "url": "https://github.com/infection/infection.git", + "reference": "d646aafe530ba21b8479694cd151570c93c72312" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/infection/infection/zipball/d646aafe530ba21b8479694cd151570c93c72312", + "reference": "d646aafe530ba21b8479694cd151570c93c72312", + "shasum": "" + }, + "require": { + "colinodell/json5": "^2.2", + "composer-runtime-api": "^2.0", + "composer/xdebug-handler": "^2.0 || ^3.0", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "infection/abstract-testframework-adapter": "^0.5.0", + "infection/extension-installer": "^0.1.0", + "infection/include-interceptor": "^0.2.5", + "justinrainbow/json-schema": "^5.2.10", + "nikic/php-parser": "^4.13.2", + "ondram/ci-detector": "^4.1.0", + "php": "^8.0", + "sanmai/later": "^0.1.1", + "sanmai/pipeline": "^5.1 || ^6", + "sebastian/diff": "^3.0.2 || ^4.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/process": "^5.4 || ^6.0", + "thecodingmachine/safe": "^2.1.2", + "webmozart/assert": "^1.3" + }, + "conflict": { + "dg/bypass-finals": "<1.4.1", + "phpunit/php-code-coverage": ">9 <9.1.4" + }, + "require-dev": { + "brianium/paratest": "^6.3", + "ext-simplexml": "*", + "helmich/phpunit-json-assert": "^3.0", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.1.0", + "phpstan/phpstan": "^1.3.0", + "phpstan/phpstan-phpunit": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.1.0", + "phpstan/phpstan-webmozart-assert": "^1.0.2", + "phpunit/phpunit": "^9.5.5", + "symfony/phpunit-bridge": "^5.4 || ^6.0", + "symfony/yaml": "^5.4 || ^6.0", + "thecodingmachine/phpstan-safe-rule": "^1.2.0" + }, + "bin": [ + "bin/infection" + ], + "type": "library", + "autoload": { + "psr-4": { + "Infection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Maks Rafalko", + "email": "maks.rafalko@gmail.com", + "homepage": "https://twitter.com/maks_rafalko" + }, + { + "name": "Oleg Zhulnev", + "homepage": "https://github.com/sidz" + }, + { + "name": "Gert de Pagter", + "homepage": "https://github.com/BackEndTea" + }, + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com", + "homepage": "https://twitter.com/tfidry" + }, + { + "name": "Alexey Kopytko", + "email": "alexey@kopytko.com", + "homepage": "https://www.alexeykopytko.com" + }, + { + "name": "Andreas Möller", + "email": "am@localheinz.com", + "homepage": "https://localheinz.com" + } + ], + "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", + "keywords": [ + "coverage", + "mutant", + "mutation framework", + "mutation testing", + "testing", + "unit testing" + ], + "support": { + "issues": "https://github.com/infection/infection/issues", + "source": "https://github.com/infection/infection/tree/0.26.16" + }, + "funding": [ + { + "url": "https://github.com/infection", + "type": "github" + }, + { + "url": "https://opencollective.com/infection", + "type": "open_collective" + } + ], + "time": "2022-10-22T10:07:33+00:00" + }, { "name": "justinrainbow/json-schema", "version": "5.2.12", @@ -3064,6 +3458,84 @@ }, "time": "2023-02-02T10:41:53+00:00" }, + { + "name": "ondram/ci-detector", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/OndraM/ci-detector.git", + "reference": "8a4b664e916df82ff26a44709942dfd593fa6f30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/OndraM/ci-detector/zipball/8a4b664e916df82ff26a44709942dfd593fa6f30", + "reference": "8a4b664e916df82ff26a44709942dfd593fa6f30", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.2", + "lmc/coding-standard": "^1.3 || ^2.1", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0.5", + "phpstan/phpstan": "^0.12.58", + "phpstan/phpstan-phpunit": "^0.12.16", + "phpunit/phpunit": "^7.1 || ^8.0 || ^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "OndraM\\CiDetector\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ondřej Machulda", + "email": "ondrej.machulda@gmail.com" + } + ], + "description": "Detect continuous integration environment and provide unified access to properties of current build", + "keywords": [ + "CircleCI", + "Codeship", + "Wercker", + "adapter", + "appveyor", + "aws", + "aws codebuild", + "azure", + "azure devops", + "azure pipelines", + "bamboo", + "bitbucket", + "buddy", + "ci-info", + "codebuild", + "continuous integration", + "continuousphp", + "devops", + "drone", + "github", + "gitlab", + "interface", + "jenkins", + "pipelines", + "sourcehut", + "teamcity", + "travis" + ], + "support": { + "issues": "https://github.com/OndraM/ci-detector/issues", + "source": "https://github.com/OndraM/ci-detector/tree/4.1.0" + }, + "time": "2021-04-14T09:16:52+00:00" + }, { "name": "phar-io/manifest", "version": "2.0.3", @@ -4167,6 +4639,129 @@ }, "time": "2021-07-14T16:46:02+00:00" }, + { + "name": "sanmai/later", + "version": "0.1.2", + "source": { + "type": "git", + "url": "https://github.com/sanmai/later.git", + "reference": "9b659fecef2030193fd02402955bc39629d5606f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sanmai/later/zipball/9b659fecef2030193fd02402955bc39629d5606f", + "reference": "9b659fecef2030193fd02402955bc39629d5606f", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.13", + "infection/infection": ">=0.10.5", + "phan/phan": ">=2", + "php-coveralls/php-coveralls": "^2.0", + "phpstan/phpstan": ">=0.10", + "phpunit/phpunit": ">=7.4", + "vimeo/psalm": ">=2" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Later\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Alexey Kopytko", + "email": "alexey@kopytko.com" + } + ], + "description": "Later: deferred wrapper object", + "support": { + "issues": "https://github.com/sanmai/later/issues", + "source": "https://github.com/sanmai/later/tree/0.1.2" + }, + "funding": [ + { + "url": "https://github.com/sanmai", + "type": "github" + } + ], + "time": "2021-01-02T10:26:44+00:00" + }, + { + "name": "sanmai/pipeline", + "version": "v6.7", + "source": { + "type": "git", + "url": "https://github.com/sanmai/pipeline.git", + "reference": "0e5c45c8046298212347a0bfb659126af8e75d2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sanmai/pipeline/zipball/0e5c45c8046298212347a0bfb659126af8e75d2e", + "reference": "0e5c45c8046298212347a0bfb659126af8e75d2e", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.8", + "friendsofphp/php-cs-fixer": "^3", + "infection/infection": ">=0.10.5", + "league/pipeline": "^0.3 || ^1.0", + "phan/phan": ">=1.1", + "php-coveralls/php-coveralls": "^2.4.1", + "phpstan/phpstan": ">=0.10", + "phpunit/phpunit": ">=9.4", + "vimeo/psalm": ">=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "v6.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Pipeline\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Alexey Kopytko", + "email": "alexey@kopytko.com" + } + ], + "description": "General-purpose collections pipeline", + "support": { + "issues": "https://github.com/sanmai/pipeline/issues", + "source": "https://github.com/sanmai/pipeline/tree/v6.7" + }, + "funding": [ + { + "url": "https://github.com/sanmai", + "type": "github" + } + ], + "time": "2023-04-29T11:21:51+00:00" + }, { "name": "sebastian/cli-parser", "version": "1.0.1", @@ -6568,6 +7163,145 @@ ], "time": "2023-01-01T08:36:10+00:00" }, + { + "name": "thecodingmachine/safe", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0", + "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.2", + "thecodingmachine/phpstan-strict-rules": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "files": [ + "deprecated/apc.php", + "deprecated/array.php", + "deprecated/datetime.php", + "deprecated/libevent.php", + "deprecated/misc.php", + "deprecated/password.php", + "deprecated/mssql.php", + "deprecated/stats.php", + "deprecated/strings.php", + "lib/special_cases.php", + "deprecated/mysqli.php", + "generated/apache.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/calendar.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gettext.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/mysql.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php" + ], + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "deprecated/Exceptions/", + "generated/Exceptions/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0" + }, + "time": "2023-04-05T11:54:14+00:00" + }, { "name": "theseer/tokenizer", "version": "1.2.1", diff --git a/infection.json b/infection.json new file mode 100644 index 00000000..a68df2bd --- /dev/null +++ b/infection.json @@ -0,0 +1,17 @@ +{ + "ignoreMsiWithNoMutations": true, + "logs": { + "text": ".build/infection/infection-log.txt" + }, + "minCoveredMsi": 84, + "minMsi": 77, + "phpUnit": { + "configDir": "test\/Integration" + }, + "source": { + "directories": [ + "src" + ] + }, + "timeout": 10 +} From 73eb3b1f35ad64553b7ad28230041f4d195bc2e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:44:43 +0200 Subject: [PATCH 291/305] Fix: Ignore nikic/php-parser --- .github/dependabot.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index bcb03807..bd4dc4fd 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -8,6 +8,7 @@ updates: prefix: "composer" directory: "/" ignore: + - dependency-name: "nikic/php-parser" - dependency-name: "phpstan/phpstan" labels: - "dependency" From 3d7e117427a53d53ee830a8e4f64c9ffe85dd2d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:46:54 +0200 Subject: [PATCH 292/305] Fix: Use PHP 8.0 --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 83eaa9e7..ed32d2a6 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -280,7 +280,7 @@ jobs: strategy: matrix: php-version: - - "7.4" + - "8.0" dependencies: - "locked" From 612fc9fd9cf20d36636456507e204d8a530e7cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:47:41 +0200 Subject: [PATCH 293/305] Fix: Order --- .github/workflows/integrate.yaml | 154 +++++++++++++++---------------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index ed32d2a6..1387b3e5 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -12,8 +12,8 @@ env: PHP_EXTENSIONS: "mbstring" jobs: - coding-standards: - name: "Coding Standards" + code-coverage: + name: "Code Coverage" runs-on: "ubuntu-latest" @@ -29,22 +29,15 @@ jobs: - name: "Checkout" uses: "actions/checkout@v3" - - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v3.1" - with: - config_file: ".yamllint.yaml" - file_or_dir: "." - strict: true - - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.25.1" with: - coverage: "none" + coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - - name: "Validate composer.json and composer.lock" - run: "composer validate --strict" + - name: "Set up problem matchers for phpunit/phpunit" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" - name: "Determine composer cache directory" uses: "./.github/actions/composer/composer/determine-cache-directory" @@ -61,27 +54,16 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Run ergebnis/composer-normalize" - run: "composer normalize --dry-run" - - - name: "Create cache directory for friendsofphp/php-cs-fixer" - run: "mkdir -p .build/php-cs-fixer" - - - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v3" - with: - path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" - restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - - - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --dry-run --verbose" + - name: "Collect code coverage with Xdebug and phpunit/phpunit" + run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-clover=.build/phpunit/logs/clover.xml" - - name: "Run friendsofphp/php-cs-fixer on fixtures" - run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --dry-run --verbose" + - name: "Send code coverage report to Codecov.io" + env: + CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}" + run: "bash <(curl -s https://codecov.io/bash)" - dependency-analysis: - name: "Dependency Analysis" + coding-standards: + name: "Coding Standards" runs-on: "ubuntu-latest" @@ -97,6 +79,13 @@ jobs: - name: "Checkout" uses: "actions/checkout@v3" + - name: "Lint YAML files" + uses: "ibiqlik/action-yamllint@v3.1" + with: + config_file: ".yamllint.yaml" + file_or_dir: "." + strict: true + - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.25.1" with: @@ -104,6 +93,9 @@ jobs: extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" + - name: "Validate composer.json and composer.lock" + run: "composer validate --strict" + - name: "Determine composer cache directory" uses: "./.github/actions/composer/composer/determine-cache-directory" @@ -119,11 +111,27 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Run maglnet/composer-require-checker" - run: ".phive/composer-require-checker check --config-file=$(pwd)/composer-require-checker.json" + - name: "Run ergebnis/composer-normalize" + run: "composer normalize --dry-run" - static-code-analysis: - name: "Static Code Analysis" + - name: "Create cache directory for friendsofphp/php-cs-fixer" + run: "mkdir -p .build/php-cs-fixer" + + - name: "Cache cache directory for friendsofphp/php-cs-fixer" + uses: "actions/cache@v3" + with: + path: ".build/php-cs-fixer" + key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" + restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" + + - name: "Run friendsofphp/php-cs-fixer" + run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --dry-run --verbose" + + - name: "Run friendsofphp/php-cs-fixer on fixtures" + run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --dry-run --verbose" + + dependency-analysis: + name: "Dependency Analysis" runs-on: "ubuntu-latest" @@ -161,20 +169,11 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Create cache directory for phpstan/phpstan" - run: "mkdir -p .build/phpstan" - - - name: "Run phpstan/phpstan" - run: "vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1" - - - name: "Create cache directory for vimeo/psalm" - run: "mkdir -p .build/psalm" - - - name: "Run vimeo/psalm" - run: "vendor/bin/psalm --config=psalm.xml --diff --shepherd --show-info=false --stats --threads=4" + - name: "Run maglnet/composer-require-checker" + run: ".phive/composer-require-checker check --config-file=$(pwd)/composer-require-checker.json" - tests: - name: "Tests" + mutation-tests: + name: "Mutation Tests" runs-on: "ubuntu-latest" @@ -182,28 +181,21 @@ jobs: matrix: php-version: - "8.0" - - "8.0" - - "8.1" dependencies: - - "lowest" - "locked" - - "highest" steps: - name: "Checkout" uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.25.1" + uses: "shivammathur/setup-php@2.18.1" with: - coverage: "none" + coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - - name: "Set up problem matchers for phpunit/phpunit" - run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" - - name: "Determine composer cache directory" uses: "./.github/actions/composer/composer/determine-cache-directory" @@ -219,11 +211,11 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Run integration tests with phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml" + - name: "Run mutation tests with Xdebug and infection/infection" + run: "vendor/bin/infection --configuration=infection.json" - code-coverage: - name: "Code Coverage" + static-code-analysis: + name: "Static Code Analysis" runs-on: "ubuntu-latest" @@ -242,13 +234,10 @@ jobs: - name: "Install PHP with extensions" uses: "shivammathur/setup-php@2.25.1" with: - coverage: "xdebug" + coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" - - name: "Set up problem matchers for phpunit/phpunit" - run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" - - name: "Determine composer cache directory" uses: "./.github/actions/composer/composer/determine-cache-directory" @@ -264,16 +253,20 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Collect code coverage with Xdebug and phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-clover=.build/phpunit/logs/clover.xml" + - name: "Create cache directory for phpstan/phpstan" + run: "mkdir -p .build/phpstan" - - name: "Send code coverage report to Codecov.io" - env: - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}" - run: "bash <(curl -s https://codecov.io/bash)" + - name: "Run phpstan/phpstan" + run: "vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1" - mutation-tests: - name: "Mutation Tests" + - name: "Create cache directory for vimeo/psalm" + run: "mkdir -p .build/psalm" + + - name: "Run vimeo/psalm" + run: "vendor/bin/psalm --config=psalm.xml --diff --shepherd --show-info=false --stats --threads=4" + + tests: + name: "Tests" runs-on: "ubuntu-latest" @@ -281,21 +274,28 @@ jobs: matrix: php-version: - "8.0" + - "8.0" + - "8.1" dependencies: + - "lowest" - "locked" + - "highest" steps: - name: "Checkout" uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" + uses: "shivammathur/setup-php@2.25.1" with: - coverage: "xdebug" + coverage: "none" extensions: "${{ env.PHP_EXTENSIONS }}" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for phpunit/phpunit" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" + - name: "Determine composer cache directory" uses: "./.github/actions/composer/composer/determine-cache-directory" @@ -311,5 +311,5 @@ jobs: with: dependencies: "${{ matrix.dependencies }}" - - name: "Run mutation tests with Xdebug and infection/infection" - run: "vendor/bin/infection --configuration=infection.json" + - name: "Run integration tests with phpunit/phpunit" + run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml" From e33e53f29d6b1d1285bb3ee4f194442fc978c88a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 08:48:19 +0000 Subject: [PATCH 294/305] github-actions(deps): Bump shivammathur/setup-php from 2.18.1 to 2.25.1 Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.18.1 to 2.25.1. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/2.18.1...2.25.1) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/integrate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 1387b3e5..947b0d30 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -190,7 +190,7 @@ jobs: uses: "actions/checkout@v3" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.18.1" + uses: "shivammathur/setup-php@2.25.1" with: coverage: "xdebug" extensions: "${{ env.PHP_EXTENSIONS }}" From 9d1b622ea12385c9443da993307f0d7eafb09ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 10:48:37 +0200 Subject: [PATCH 295/305] Fix: Do not use command name and alias --- .github/workflows/integrate.yaml | 2 +- Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 1387b3e5..bc14c84e 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -257,7 +257,7 @@ jobs: run: "mkdir -p .build/phpstan" - name: "Run phpstan/phpstan" - run: "vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1" + run: "vendor/bin/phpstan --configuration=phpstan.neon --memory-limit=-1" - name: "Create cache directory for vimeo/psalm" run: "mkdir -p .build/psalm" diff --git a/Makefile b/Makefile index acb68757..ecf318df 100644 --- a/Makefile +++ b/Makefile @@ -33,14 +33,14 @@ mutation-tests: vendor ## Runs mutation tests with infection/infection .PHONY: static-code-analysis static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan - vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1 + vendor/bin/phpstan --configuration=phpstan.neon --memory-limit=-1 mkdir -p .build/psalm vendor/bin/psalm --config=psalm.xml --diff --show-info=false --stats --threads=4 .PHONY: static-code-analysis-baseline static-code-analysis-baseline: vendor ## Generates a baseline for static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan - vendor/bin/phpstan analyze --configuration=phpstan.neon --generate-baseline --memory-limit=-1 + vendor/bin/phpstan --configuration=phpstan.neon --generate-baseline --memory-limit=-1 mkdir -p .build/psalm vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml From 083173560dceb77f603a6d08b90961ec5bf2b351 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 08:49:18 +0000 Subject: [PATCH 296/305] composer(deps-dev): Bump infection/infection from 0.26.16 to 0.26.19 Bumps [infection/infection](https://github.com/infection/infection) from 0.26.16 to 0.26.19. - [Release notes](https://github.com/infection/infection/releases) - [Changelog](https://github.com/infection/infection/blob/master/CHANGELOG.md) - [Commits](https://github.com/infection/infection/compare/0.26.16...0.26.19) --- updated-dependencies: - dependency-name: infection/infection dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 36 +++++++++++++++++++----------------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/composer.json b/composer.json index 7c4c23cd..c6426748 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "ergebnis/composer-normalize": "^2.30.2", "ergebnis/license": "^2.1.0", "ergebnis/php-cs-fixer-config": "^5.5.2", - "infection/infection": "~0.26.16", + "infection/infection": "~0.26.19", "nette/di": "^3.1.2", "phpstan/phpstan-deprecation-rules": "^1.0.0", "phpstan/phpstan-strict-rules": "^1.1.0", diff --git a/composer.lock b/composer.lock index a7692893..5495e734 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": "225089b735fb3945cabd5af5ff534c83", + "content-hash": "9baa32fc94bf16e5edc9e50f005c0097", "packages": [ { "name": "nikic/php-parser", @@ -2336,16 +2336,16 @@ }, { "name": "fidry/cpu-core-counter", - "version": "0.5.1", + "version": "0.4.1", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" + "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", - "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/79261cc280aded96d098e1b0e0ba0c4881b432c2", + "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2", "shasum": "" }, "require": { @@ -2385,7 +2385,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1" + "source": "https://github.com/theofidry/cpu-core-counter/tree/0.4.1" }, "funding": [ { @@ -2393,7 +2393,7 @@ "type": "github" } ], - "time": "2022-12-24T12:35:10+00:00" + "time": "2022-12-16T22:01:02+00:00" }, { "name": "friendsofphp/php-cs-fixer", @@ -2670,16 +2670,16 @@ }, { "name": "infection/infection", - "version": "0.26.16", + "version": "0.26.19", "source": { "type": "git", "url": "https://github.com/infection/infection.git", - "reference": "d646aafe530ba21b8479694cd151570c93c72312" + "reference": "bd7351c88f3a797ea8977e68fe6a3f4d4c5f457f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/infection/infection/zipball/d646aafe530ba21b8479694cd151570c93c72312", - "reference": "d646aafe530ba21b8479694cd151570c93c72312", + "url": "https://api.github.com/repos/infection/infection/zipball/bd7351c88f3a797ea8977e68fe6a3f4d4c5f457f", + "reference": "bd7351c88f3a797ea8977e68fe6a3f4d4c5f457f", "shasum": "" }, "require": { @@ -2690,30 +2690,32 @@ "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", + "fidry/cpu-core-counter": "^0.4.0", "infection/abstract-testframework-adapter": "^0.5.0", "infection/extension-installer": "^0.1.0", "infection/include-interceptor": "^0.2.5", "justinrainbow/json-schema": "^5.2.10", - "nikic/php-parser": "^4.13.2", + "nikic/php-parser": "^4.15.1", "ondram/ci-detector": "^4.1.0", "php": "^8.0", "sanmai/later": "^0.1.1", "sanmai/pipeline": "^5.1 || ^6", - "sebastian/diff": "^3.0.2 || ^4.0", + "sebastian/diff": "^3.0.2 || ^4.0 || ^5.0", "symfony/console": "^5.4 || ^6.0", "symfony/filesystem": "^5.4 || ^6.0", "symfony/finder": "^5.4 || ^6.0", "symfony/process": "^5.4 || ^6.0", "thecodingmachine/safe": "^2.1.2", - "webmozart/assert": "^1.3" + "webmozart/assert": "^1.11" }, "conflict": { "dg/bypass-finals": "<1.4.1", - "phpunit/php-code-coverage": ">9 <9.1.4" + "phpunit/php-code-coverage": ">9,<9.1.4 || >9.2.17,<9.2.21" }, "require-dev": { "brianium/paratest": "^6.3", "ext-simplexml": "*", + "fidry/makefile": "^0.2.0", "helmich/phpunit-json-assert": "^3.0", "phpspec/prophecy-phpunit": "^2.0", "phpstan/extension-installer": "^1.1.0", @@ -2780,7 +2782,7 @@ ], "support": { "issues": "https://github.com/infection/infection/issues", - "source": "https://github.com/infection/infection/tree/0.26.16" + "source": "https://github.com/infection/infection/tree/0.26.19" }, "funding": [ { @@ -2792,7 +2794,7 @@ "type": "open_collective" } ], - "time": "2022-10-22T10:07:33+00:00" + "time": "2023-02-05T21:47:26+00:00" }, { "name": "justinrainbow/json-schema", From 340a62022a65a7cf53149f25961f755e44d2a710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Mon, 1 May 2023 11:05:31 +0200 Subject: [PATCH 297/305] Enhancement: Synchronize with ergebnis/php-package-template --- .editorconfig | 3 + .gitattributes | 6 +- .github/CODEOWNERS | 2 + .github/CONTRIBUTING.md | 68 ++++-- .../determine-cache-directory/action.yaml | 16 -- .../composer/composer/install/action.yaml | 22 -- .../actions/composer/composer/install/run.sh | 25 -- .github/settings.yml | 29 ++- .github/workflows/integrate.yaml | 227 +++++++++++++----- .github/workflows/merge.yaml | 59 +---- .github/workflows/release.yaml | 13 +- .github/workflows/renew.yaml | 30 +-- .github/workflows/triage.yaml | 27 +-- .gitignore | 2 + .phive/composer-require-checker | Bin 656991 -> 0 bytes .phive/phars.xml | 2 +- .php-cs-fixer.php | 2 +- Makefile | 52 ++-- README.md | 4 +- composer-require-checker.json | 15 -- composer.json | 1 + composer.lock | 63 ++++- phpstan.neon | 1 + psalm.xml | 3 +- rector.php | 31 +++ 25 files changed, 406 insertions(+), 297 deletions(-) delete mode 100644 .github/actions/composer/composer/determine-cache-directory/action.yaml delete mode 100644 .github/actions/composer/composer/install/action.yaml delete mode 100755 .github/actions/composer/composer/install/run.sh delete mode 100755 .phive/composer-require-checker create mode 100644 rector.php diff --git a/.editorconfig b/.editorconfig index 3aaad722..fe208953 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,6 +10,9 @@ trim_trailing_whitespace = true [*.json] indent_size = 2 +[*.md] +indent_size = 2 + [*.neon] indent_style = tab diff --git a/.gitattributes b/.gitattributes index 4ce803a8..cd5e8733 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4,11 +4,15 @@ /.editorconfig export-ignore /.gitattributes export-ignore /.gitignore export-ignore -/.php_cs export-ignore +/.php-cs-fixer.fixture.php export-ignore +/.php-cs-fixer.php export-ignore +/.yamllint.yaml export-ignore /composer-require-checker.json export-ignore +/composer.lock export-ignore /infection.json export-ignore /Makefile export-ignore /phpstan-baseline.neon export-ignore /phpstan.neon export-ignore /psalm-baseline.xml export-ignore /psalm.xml export-ignore +/rector.php export-ignore diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 01c24919..21dd5340 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1,3 @@ +# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners + * @ergebnis-bot @localheinz diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index dcaf2645..34cf4cb0 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -19,7 +19,7 @@ We are using [`yamllint`](https://github.com/adrienverge/yamllint) to enforce co If you do not have `yamllint` installed yet, run ```sh -$ brew install yamllint +brew install yamllint ``` to install `yamllint`. @@ -29,7 +29,7 @@ We are using [`friendsofphp/php-cs-fixer`](https://github.com/FriendsOfPHP/PHP-C Run ```sh -$ make coding-standards +make coding-standards ``` to automatically fix coding standard violations. @@ -41,11 +41,47 @@ We are using [`maglnet/composer-require-checker`](https://github.com/maglnet/Com Run ```sh -$ make dependency-analysis +make dependency-analysis ``` to run a dependency analysis. +## Mutation Tests + +We are using [`infection/infection`](https://github.com/infection/infection) to ensure a minimum quality of the tests. + +Enable `Xdebug` and run + +```sh +make mutation-tests +``` + +to run mutation tests. + +## Refactoring + +We are using [`rector/rector`](https://github.com/rectorphp/rector) to automatically refactor code. + +Run + +```sh +make refactoring +``` + +to automatically refactor code. + +## Security Analysis + +We are using [`composer`](https://github.com/composer/composer) to run a security analysis. + +Run + +```sh +make security-analysis +``` + +to run a security analysis. + ## Static Code Analysis We are using [`phpstan/phpstan`](https://github.com/phpstan/phpstan) and [`vimeo/psalm`](https://github.com/vimeo/psalm) to statically analyze the code. @@ -53,17 +89,17 @@ We are using [`phpstan/phpstan`](https://github.com/phpstan/phpstan) and [`vimeo Run ```sh -$ make static-code-analysis +make static-code-analysis ``` to run a static code analysis. -We are also using the baseline features of [`phpstan/phpstan`](https://medium.com/@ondrejmirtes/phpstans-baseline-feature-lets-you-hold-new-code-to-a-higher-standard-e77d815a5dff) and [`vimeo/psalm`](https://psalm.dev/docs/running_psalm/dealing_with_code_issues/#using-a-baseline-file). +We are also using the baseline features of [`phpstan/phpstan`](https://phpstan.org/user-guide/baseline) and [`vimeo/psalm`](https://psalm.dev/docs/running_psalm/dealing_with_code_issues/#using-a-baseline-file). Run ```sh -$ make static-code-analysis-baseline +make static-code-analysis-baseline ``` to regenerate the baselines in [`../phpstan-baseline.neon`](../phpstan-baseline.neon) and [`../psalm-baseline.xml`](../psalm-baseline.xml). @@ -77,39 +113,27 @@ We are using [`phpunit/phpunit`](https://github.com/sebastianbergmann/phpunit) t Run ```sh -$ make tests +make tests ``` to run all the tests. -## Mutation Tests - -We are using [`infection/infection`](https://github.com/infection/infection) to ensure a minimum quality of the tests. - -Enable `Xdebug` and run - -```sh -$ make mutation-tests -``` - -to run mutation tests. - ## Extra lazy? Run ```sh -$ make +make ``` -to enforce coding standards, run a static code analysis, and run tests! +to automatically refactor code, enforce coding standards, run a static code analysis, and run tests! ## Help :bulb: Run ```sh -$ make help +make help ``` to display a list of available targets with corresponding descriptions. diff --git a/.github/actions/composer/composer/determine-cache-directory/action.yaml b/.github/actions/composer/composer/determine-cache-directory/action.yaml deleted file mode 100644 index 4842e88c..00000000 --- a/.github/actions/composer/composer/determine-cache-directory/action.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# https://docs.github.com/en/actions/creating-actions/creating-a-composite-run-steps-action -# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputs -# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-composite-run-steps-actions -# https://getcomposer.org/doc/03-cli.md#composer-cache-dir - -name: "Determine composer cache directory" - -description: "Determines the composer cache directory and exports it as COMPOSER_CACHE_DIR environment variable" - -runs: - using: "composite" - - steps: - - name: "Determine composer cache directory" - shell: "bash" - run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV" diff --git a/.github/actions/composer/composer/install/action.yaml b/.github/actions/composer/composer/install/action.yaml deleted file mode 100644 index bab262e5..00000000 --- a/.github/actions/composer/composer/install/action.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# https://docs.github.com/en/actions/creating-actions/creating-a-composite-run-steps-action -# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputs -# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-composite-run-steps-actions - -name: "Install dependencies with composer" - -description: "Installs dependencies with composer" - -inputs: - dependencies: - description: "Which dependencies to install, one of \"lowest\", \"locked\", \"highest\"" - required: true - -runs: - using: "composite" - - steps: - - name: "Install ${{ inputs.dependencies }} dependencies with composer" - shell: "bash" - run: "${{ github.action_path }}/run.sh" - env: - COMPOSER_INSTALL_DEPENDENCIES: "${{ inputs.dependencies }}" diff --git a/.github/actions/composer/composer/install/run.sh b/.github/actions/composer/composer/install/run.sh deleted file mode 100755 index a052ba6a..00000000 --- a/.github/actions/composer/composer/install/run.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -dependencies="${COMPOSER_INSTALL_DEPENDENCIES}" - -if [[ ${dependencies} == "lowest" ]]; then - composer update --no-interaction --no-progress --prefer-lowest - - exit $? -fi - -if [[ ${dependencies} == "locked" ]]; then - composer install --no-interaction --no-progress - - exit $? -fi - -if [[ ${dependencies} == "highest" ]]; then - composer update --no-interaction --no-progress - - exit $? -fi - -echo "::error::The value for the \"dependencies\" input needs to be one of \"lowest\", \"locked\"', \"highest\"' - got \"${dependencies}\" instead." - -exit 1 diff --git a/.github/settings.yml b/.github/settings.yml index 44243517..807cc394 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -13,18 +13,20 @@ branches: require_code_owner_reviews: true required_approving_review_count: 1 required_status_checks: - contexts: - - "Code Coverage (8.0, locked)" - - "Coding Standards (8.0, locked)" - - "Dependency Analysis (8.0, locked)" - - "Mutation Tests (8.0, locked)" - - "Static Code Analysis (8.0, locked)" - - "Tests (8.0, highest)" - - "Tests (8.0, locked)" - - "Tests (8.0, lowest)" - - "Tests (8.1, highest)" - - "Tests (8.1, locked)" - - "Tests (8.1, lowest)" + checks: + - context: "Code Coverage (8.0, locked)" + - context: "Coding Standards (8.0, locked)" + - context: "Dependency Analysis (8.0, locked)" + - context: "Mutation Tests (8.0, locked)" + - context: "Refactoring (8.0, locked)" + - context: "Security Analysis (8.0, locked)" + - context: "Static Code Analysis (8.0, locked)" + - context: "Tests (8.0, highest)" + - context: "Tests (8.0, locked)" + - context: "Tests (8.0, lowest)" + - context: "Tests (8.1, highest)" + - context: "Tests (8.1, locked)" + - context: "Tests (8.1, lowest)" strict: false restrictions: @@ -72,6 +74,9 @@ repository: default_branch: "main" delete_branch_on_merge: true description: ":eyeglasses: Provides additional rules for phpstan/phpstan." + enable_automated_security_fixes: true + enable_vulnerability_alerts: true + has_discussions: false has_downloads: true has_issues: true has_pages: false diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 29278f88..15c9adc1 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -8,9 +8,6 @@ on: # yamllint disable-line rule:truthy branches: - "main" -env: - PHP_EXTENSIONS: "mbstring" - jobs: code-coverage: name: "Code Coverage" @@ -27,40 +24,46 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v3" + uses: "actions/checkout@v3.5.2" - - name: "Install PHP with extensions" + - name: "Set up PHP" uses: "shivammathur/setup-php@2.25.1" with: coverage: "xdebug" - extensions: "${{ env.PHP_EXTENSIONS }}" + extensions: "none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" + - name: "Set up problem matchers for phpunit/phpunit" run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" - name: "Determine composer cache directory" - uses: "./.github/actions/composer/composer/determine-cache-directory" + uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install ${{ matrix.dependencies }} dependencies with composer" - uses: "./.github/actions/composer/composer/install" + uses: "ergebnis/.github/actions/composer/install@1.8.0" with: dependencies: "${{ matrix.dependencies }}" - name: "Collect code coverage with Xdebug and phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml --coverage-clover=.build/phpunit/logs/clover.xml" - - - name: "Send code coverage report to Codecov.io" env: - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}" - run: "bash <(curl -s https://codecov.io/bash)" + XDEBUG_MODE: "coverage" + run: "vendor/bin/phpunit --colors=always --configuration=test/Integration/phpunit.xml --coverage-clover=.build/phpunit/logs/clover.xml" + + - name: "Send code coverage report to codecov.io" + uses: "codecov/codecov-action@v3.1.3" + with: + files: ".build/phpunit/logs/clover.xml" + token: "${{ secrets.CODECOV_TOKEN }}" coding-standards: name: "Coding Standards" @@ -77,58 +80,63 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v3" + uses: "actions/checkout@v3.5.2" - name: "Lint YAML files" - uses: "ibiqlik/action-yamllint@v3.1" + uses: "ibiqlik/action-yamllint@v3.1.1" with: config_file: ".yamllint.yaml" file_or_dir: "." strict: true - - name: "Install PHP with extensions" + - name: "Set up PHP" uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" - extensions: "${{ env.PHP_EXTENSIONS }}" + extensions: "none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" + - name: "Validate composer.json and composer.lock" - run: "composer validate --strict" + run: "composer validate --ansi --strict" - name: "Determine composer cache directory" - uses: "./.github/actions/composer/composer/determine-cache-directory" + uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install ${{ matrix.dependencies }} dependencies with composer" - uses: "./.github/actions/composer/composer/install" + uses: "ergebnis/.github/actions/composer/install@1.8.0" with: dependencies: "${{ matrix.dependencies }}" - name: "Run ergebnis/composer-normalize" - run: "composer normalize --dry-run" + run: "composer normalize --ansi --dry-run" - name: "Create cache directory for friendsofphp/php-cs-fixer" run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" - restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" + key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.ref_name }}" + restore-keys: | + php-${{ matrix.php-version }}-php-cs-fixer-main + php-${{ matrix.php-version }}-php-cs-fixer- - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --dry-run --verbose" + run: "vendor/bin/php-cs-fixer fix --ansi --config=.php-cs-fixer.php --diff --dry-run --verbose" - name: "Run friendsofphp/php-cs-fixer on fixtures" - run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.fixture.php --diff --dry-run --verbose" + run: "vendor/bin/php-cs-fixer fix --ansi --config=.php-cs-fixer.fixture.php --diff --dry-run --verbose" dependency-analysis: name: "Dependency Analysis" @@ -145,30 +153,39 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v3" + uses: "actions/checkout@v3.5.2" - - name: "Install PHP with extensions" + - name: "Set up PHP" uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" - extensions: "${{ env.PHP_EXTENSIONS }}" + extensions: "none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" php-version: "${{ matrix.php-version }}" + tools: "phive" + + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" - name: "Determine composer cache directory" - uses: "./.github/actions/composer/composer/determine-cache-directory" + uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install ${{ matrix.dependencies }} dependencies with composer" - uses: "./.github/actions/composer/composer/install" + uses: "ergebnis/.github/actions/composer/install@1.8.0" with: dependencies: "${{ matrix.dependencies }}" + - name: "Install dependencies with phive" + uses: "ergebnis/.github/actions/phive/install@1.8.0" + with: + trust-gpg-keys: "0x033E5F8D801A2F8D" + - name: "Run maglnet/composer-require-checker" run: ".phive/composer-require-checker check --config-file=$(pwd)/composer-require-checker.json" @@ -187,32 +204,127 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v3" + uses: "actions/checkout@v3.5.2" - - name: "Install PHP with extensions" + - name: "Set up PHP" uses: "shivammathur/setup-php@2.25.1" with: coverage: "xdebug" - extensions: "${{ env.PHP_EXTENSIONS }}" + extensions: "none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" + - name: "Determine composer cache directory" - uses: "./.github/actions/composer/composer/determine-cache-directory" + uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install ${{ matrix.dependencies }} dependencies with composer" - uses: "./.github/actions/composer/composer/install" + uses: "ergebnis/.github/actions/composer/install@1.8.0" with: dependencies: "${{ matrix.dependencies }}" - name: "Run mutation tests with Xdebug and infection/infection" - run: "vendor/bin/infection --configuration=infection.json" + env: + XDEBUG_MODE: "coverage" + run: "vendor/bin/infection --ansi --configuration=infection.json --logger-github" + + refactoring: + name: "Refactoring" + + runs-on: "ubuntu-latest" + + strategy: + matrix: + php-version: + - "8.0" + + dependencies: + - "locked" + + steps: + - name: "Checkout" + uses: "actions/checkout@v3.5.2" + + - name: "Set up PHP" + uses: "shivammathur/setup-php@2.25.1" + with: + coverage: "none" + extensions: "none, ctype, dom, intl, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" + php-version: "${{ matrix.php-version }}" + + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" + + - name: "Determine composer cache directory" + uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0" + + - name: "Cache dependencies installed with composer" + uses: "actions/cache@v3.3.1" + with: + path: "${{ env.COMPOSER_CACHE_DIR }}" + key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" + restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" + + - name: "Install ${{ matrix.dependencies }} dependencies with composer" + uses: "ergebnis/.github/actions/composer/install@1.8.0" + with: + dependencies: "${{ matrix.dependencies }}" + + - name: "Create cache directory for rector/rector" + run: "mkdir -p .build/rector" + + - name: "Cache cache directory for rector/rector" + uses: "actions/cache@v3.3.1" + with: + path: ".build/rector" + key: "php-${{ matrix.php-version }}-rector-${{ github.ref_name }}" + restore-keys: | + php-${{ matrix.php-version }}-rector-main + php-${{ matrix.php-version }}-rector- + + - name: "Run automated refactoring with rector/rector" + run: "vendor/bin/rector --ansi --config=rector.php --dry-run" + + security-analysis: + name: "Security Analysis" + + runs-on: "ubuntu-latest" + + strategy: + matrix: + php-version: + - "8.0" + + dependencies: + - "locked" + + steps: + - name: "Checkout" + uses: "actions/checkout@v3.5.2" + + - name: "Set up PHP" + uses: "shivammathur/setup-php@2.25.1" + with: + coverage: "none" + extensions: "none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" + php-version: "${{ matrix.php-version }}" + + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" + + - name: "Validate composer.json and composer.lock" + run: "composer validate --ansi --strict" + + - name: "Check installed packages for security vulnerability advisories" + run: "composer audit --ansi" static-code-analysis: name: "Static Code Analysis" @@ -229,27 +341,30 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v3" + uses: "actions/checkout@v3.5.2" - - name: "Install PHP with extensions" + - name: "Set up PHP" uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" - extensions: "${{ env.PHP_EXTENSIONS }}" + extensions: "none, ctype, curl, dom, json, mbstring, opcache, pcntl, phar, posix, simplexml, tokenizer, xml, xmlwriter" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" + - name: "Determine composer cache directory" - uses: "./.github/actions/composer/composer/determine-cache-directory" + uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install ${{ matrix.dependencies }} dependencies with composer" - uses: "./.github/actions/composer/composer/install" + uses: "ergebnis/.github/actions/composer/install@1.8.0" with: dependencies: "${{ matrix.dependencies }}" @@ -263,7 +378,7 @@ jobs: run: "mkdir -p .build/psalm" - name: "Run vimeo/psalm" - run: "vendor/bin/psalm --config=psalm.xml --diff --shepherd --show-info=false --stats --threads=4" + run: "vendor/bin/psalm --config=psalm.xml --output-format=github --shepherd --show-info=false --stats --threads=4" tests: name: "Tests" @@ -273,7 +388,6 @@ jobs: strategy: matrix: php-version: - - "8.0" - "8.0" - "8.1" @@ -284,30 +398,33 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v3" + uses: "actions/checkout@v3.5.2" - - name: "Install PHP with extensions" + - name: "Set up PHP" uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" - extensions: "${{ env.PHP_EXTENSIONS }}" + extensions: "none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" + - name: "Set up problem matchers for phpunit/phpunit" run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" - name: "Determine composer cache directory" - uses: "./.github/actions/composer/composer/determine-cache-directory" + uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install ${{ matrix.dependencies }} dependencies with composer" - uses: "./.github/actions/composer/composer/install" + uses: "ergebnis/.github/actions/composer/install@1.8.0" with: dependencies: "${{ matrix.dependencies }}" diff --git a/.github/workflows/merge.yaml b/.github/workflows/merge.yaml index dc5a5b70..39279b01 100644 --- a/.github/workflows/merge.yaml +++ b/.github/workflows/merge.yaml @@ -24,71 +24,24 @@ jobs: ) steps: - - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v6" + uses: "ergebnis/.github/actions/github/pull-request/request-review@1.8.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.workflow_run.pull_requests[0] - const repository = context.repo - - const reviewers = [ - "ergebnis-bot", - ] - - await github.rest.pulls.requestReviewers({ - owner: repository.owner, - repo: repository.repo, - pull_number: pullRequest.number, - reviewers: reviewers, - }) + reviewer: "ergebnis-bot" - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v6" + uses: "ergebnis/.github/actions/github/pull-request/add-assignee@1.8.0" with: + assignee: "ergebnis-bot" github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.workflow_run.pull_requests[0] - const repository = context.repo - - const assignees = [ - "ergebnis-bot", - ] - - await github.rest.issues.addAssignees({ - owner: repository.owner, - repo: repository.repo, - assignees: assignees, - issue_number: pullRequest.number - }) - name: "Approve pull request" - uses: "actions/github-script@v6" + uses: "ergebnis/.github/actions/github/pull-request/approve@1.8.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.workflow_run.pull_requests[0] - const repository = context.repo - - await github.rest.pulls.createReview({ - event: "APPROVE", - owner: repository.owner, - repo: repository.repo, - pull_number: pullRequest.number, - }) - name: "Merge pull request" - uses: "actions/github-script@v6" + uses: "ergebnis/.github/actions/github/pull-request/merge@1.8.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.workflow_run.pull_requests[0] - const repository = context.repo - - await github.rest.pulls.merge({ - merge_method: "merge", - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - }) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 11ff85ac..c760eede 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -14,16 +14,7 @@ jobs: runs-on: "ubuntu-latest" steps: - - name: "Determine tag" - id: "determine-tag" - run: "echo \"::set-output name=tag::${GITHUB_REF#refs/tags/}\"" - - name: "Create release" - uses: "actions/create-release@v1.1.4" - env: - GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + uses: "ergebnis/.github/actions/github/release/create@1.8.0" with: - draft: false - prerelease: false - release_name: "${{ steps.determine-tag.outputs.tag }}" - tag_name: "${{ steps.determine-tag.outputs.tag }}" + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 40d16c14..efac7759 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -6,9 +6,6 @@ on: # yamllint disable-line rule:truthy schedule: - cron: "0 0 1 1 *" -env: - PHP_EXTENSIONS: "mbstring" - jobs: license: name: "License" @@ -25,32 +22,35 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v3" + uses: "actions/checkout@v3.5.2" with: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - - name: "Install PHP with extensions" + - name: "Set up PHP" uses: "shivammathur/setup-php@2.25.1" with: coverage: "none" - extensions: "${{ env.PHP_EXTENSIONS }}" + extensions: "none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" php-version: "${{ matrix.php-version }}" + - name: "Set up problem matchers for PHP" + run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" + - name: "Validate composer.json and composer.lock" - run: "composer validate --strict" + run: "composer validate --ansi --strict" - name: "Determine composer cache directory" - uses: "./.github/actions/composer/composer/determine-cache-directory" + uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: "${{ env.COMPOSER_CACHE_DIR }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - name: "Install ${{ matrix.dependencies }} dependencies with composer" - uses: "./.github/actions/composer/composer/install" + uses: "ergebnis/.github/actions/composer/install@1.8.0" with: dependencies: "${{ matrix.dependencies }}" @@ -58,14 +58,16 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v3" + uses: "actions/cache@v3.3.1" with: path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.sha }}" - restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" + key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ github.ref_name }}" + restore-keys: | + php-${{ matrix.php-version }}-php-cs-fixer-main + php-${{ matrix.php-version }}-php-cs-fixer- - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --diff --diff-format=udiff --verbose" + run: "vendor/bin/php-cs-fixer fix --ansi --config=.php-cs-fixer.php --diff --verbose" - name: "Commit modified files" uses: "stefanzweifel/git-auto-commit-action@v4.16.0" diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index 17fdf978..8f59cb6e 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -15,31 +15,6 @@ jobs: steps: - name: "Add labels based on branch name" - uses: "actions/github-script@v6" + uses: "ergebnis/.github/actions/github/pull-request/add-label-based-on-branch-name@1.8.0" with: github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const branchPrefixLabels = { - feature: "enhancement", - fix: "bug", - } - - const pullRequest = context.payload.pull_request - const repository = context.repo - - const branchName = pullRequest.head.ref - - const matches = branchName.match(new RegExp('^([^/]+)\/')); - - if (matches instanceof Array && branchPrefixLabels.hasOwnProperty(matches[1])) { - const label = branchPrefixLabels[matches[1]] - - github.rest.issues.addLabels({ - issue_number: pullRequest.number, - labels: [ - label - ], - owner: repository.owner, - repo: repository.repo, - }); - } diff --git a/.gitignore b/.gitignore index 0d234cb8..c6b4dc9c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /.build/ /.notes/ +/.phive/ /vendor/ +!/.phive/phars.xml diff --git a/.phive/composer-require-checker b/.phive/composer-require-checker deleted file mode 100755 index 3f1299e8195f3b840965a2b1b9565783f7d79b3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656991 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щI$1sFt(JX~(1SrXJ3Xe2kQxs5s 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 z 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�|=g#yH>!#)&dTy0^X4Se@lGX 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 z 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