From fe68189cd0b23ac3708a57d4a44d8748121fb13e Mon Sep 17 00:00:00 2001 From: zmitic Date: Tue, 18 May 2021 14:06:02 +0200 Subject: [PATCH] Tests --- composer.json | 19 +- composer.lock | 4054 ++++++++--------- phpunit.xml | 1 + psalm.xml | 12 +- src/Accessor/AbstractMapper.php | 8 +- src/Accessor/Accessor.php | 201 - src/DataMapper/StrictFormMapper.php | 7 +- src/Extension/FactoryExtension.php | 79 +- src/Extension/MapperExtension.php | 4 +- src/VO/SubmittedData.php | 1 - tests/AbstractTypeTestCase.php | 33 +- tests/Accessor/ReaderTest.php | 74 - tests/Accessor/WriteCollectionTest.php | 131 - tests/Accessor/WriteTest.php | 108 - tests/Extension/Factory/FactoryTest.php | 38 +- tests/Extension/Mapper/CollectionTest.php | 11 +- .../Extension/Mapper/GetterAndUpdaterTest.php | 50 - .../Mapper/NotNullConstraintsTest.php | 46 + .../Mapper/SingleValueMapperTest.php | 56 + .../Mapper/UpdateConstraintsTest.php | 53 - tests/Service/ComparatorTest.php | 28 - tests/fixtures/Entity/Movie.php | 5 +- tests/fixtures/Entity/User.php | 37 +- tests/fixtures/Factory.php | 11 +- tests/fixtures/Form/MovieType.php | 7 +- tests/fixtures/Form/UserTestType.php | 19 +- 26 files changed, 2051 insertions(+), 3042 deletions(-) delete mode 100644 src/Accessor/Accessor.php delete mode 100644 tests/Accessor/ReaderTest.php delete mode 100644 tests/Accessor/WriteCollectionTest.php delete mode 100644 tests/Accessor/WriteTest.php delete mode 100644 tests/Extension/Mapper/GetterAndUpdaterTest.php create mode 100644 tests/Extension/Mapper/NotNullConstraintsTest.php create mode 100644 tests/Extension/Mapper/SingleValueMapperTest.php delete mode 100644 tests/Extension/Mapper/UpdateConstraintsTest.php delete mode 100644 tests/Service/ComparatorTest.php diff --git a/composer.json b/composer.json index 2e01a3c..208be3f 100644 --- a/composer.json +++ b/composer.json @@ -13,17 +13,17 @@ } ], "require": { - "php": "~7.4|8.*", + "php": "8.*", "ext-json": "*", "doctrine/annotations": "^1.2", "doctrine/collections": "^1.2", "sensio/framework-extra-bundle": "^5.1", - "symfony/form": "^4.0|^5.0", - "symfony/framework-bundle": "^4.0|^5.0", - "symfony/options-resolver": "^4.0|^5.0", - "symfony/validator": "^4.0|^5.0", - "symfony/yaml": "^4.0|^5.0", - "symfony/contracts": "^1.1|^2.0", + "symfony/form": "^5.0", + "symfony/framework-bundle": "^5.0", + "symfony/options-resolver": "^5.0", + "symfony/validator": "^5.0", + "symfony/yaml": "^5.0", + "symfony/contracts": "^2.0", "doctrine/instantiator": "^1.3" }, "require-dev": { @@ -32,8 +32,9 @@ "symfony/css-selector": "^4.0", "symfony/phpunit-bridge": "^4.0", "symfony/var-dumper": "^4.0", - "symplify/easy-coding-standard": "^6.1", - "vimeo/psalm": "dev-master" + "symplify/easy-coding-standard": "^9", + "vimeo/psalm": "dev-master", + "psalm/plugin-symfony": "^2.2" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index b5f4c87..852d22c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,37 +4,36 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "08a4e838bb484cf38b718962624f2388", + "content-hash": "d0e9b7e23879aa2c9aa217d9520be1a5", "packages": [ { "name": "doctrine/annotations", - "version": "1.10.2", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "b9d758e831c70751155c698c2f7df4665314a1cb" + "reference": "03cb2123a67d4be806554fe670d0adc298199808" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/b9d758e831c70751155c698c2f7df4665314a1cb", - "reference": "b9d758e831c70751155c698c2f7df4665314a1cb", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/03cb2123a67d4be806554fe670d0adc298199808", + "reference": "03cb2123a67d4be806554fe670d0adc298199808", "shasum": "" }, "require": { "doctrine/lexer": "1.*", "ext-tokenizer": "*", - "php": "^7.1" + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { - "doctrine/cache": "1.*", - "phpunit/phpunit": "^7.5" + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^6.0 || ^8.1", + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^9.1.5", + "symfony/cache": "^4.4 || ^5.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" @@ -67,43 +66,42 @@ } ], "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-04-20T09:18:32+00:00" + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.13.0" + }, + "time": "2021-04-29T07:39:39+00:00" }, { "name": "doctrine/collections", - "version": "1.6.4", + "version": "1.6.7", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" + "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", - "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", + "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", + "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": "^7.1.3 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^6.0", "phpstan/phpstan-shim": "^0.9.2", "phpunit/phpunit": "^7.0", - "vimeo/psalm": "^3.2.2" + "vimeo/psalm": "^3.8.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" @@ -143,40 +141,39 @@ "iterators", "php" ], - "time": "2019-11-13T13:07:11+00:00" + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/1.6.7" + }, + "time": "2020-07-27T17:53:49+00:00" }, { "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/" @@ -190,7 +187,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", @@ -199,24 +196,42 @@ "constructor", "instantiate" ], - "time": "2020-05-29T17:27:14+00:00" + "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", + "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.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", - "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", "shasum": "" }, "require": { - "php": "^7.2" + "php": "^7.2 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^6.0", @@ -261,24 +276,42 @@ "parser", "php" ], - "time": "2019-10-30T14:39:59+00:00" + "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", + "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": "psr/cache", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" }, "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/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { @@ -298,7 +331,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for caching libraries", @@ -307,31 +340,29 @@ "psr", "psr-6" ], - "time": "2016-08-06T20:24:11+00:00" + "support": { + "source": "https://github.com/php-fig/cache/tree/2.0.0" + }, + "time": "2021-02-03T23:23:37+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/" @@ -344,7 +375,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)", @@ -356,20 +387,74 @@ "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/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.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": { @@ -393,7 +478,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -403,44 +488,50 @@ "psr", "psr-3" ], - "time": "2020-03-23T09:12:05+00:00" + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" }, { "name": "sensio/framework-extra-bundle", - "version": "v5.5.5", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "c76bb1c5c67840ecb6d9be8e9d8d7036e375e317" + "reference": "430d14c01836b77c28092883d195a43ce413ee32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/c76bb1c5c67840ecb6d9be8e9d8d7036e375e317", - "reference": "c76bb1c5c67840ecb6d9be8e9d8d7036e375e317", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/430d14c01836b77c28092883d195a43ce413ee32", + "reference": "430d14c01836b77c28092883d195a43ce413ee32", "shasum": "" }, "require": { "doctrine/annotations": "^1.0", - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", "symfony/framework-bundle": "^4.4|^5.0", "symfony/http-kernel": "^4.4|^5.0" }, "conflict": { - "doctrine/doctrine-cache-bundle": "<1.3.1" + "doctrine/doctrine-cache-bundle": "<1.3.1", + "doctrine/persistence": "<1.3" }, "require-dev": { + "doctrine/dbal": "^2.10|^3.0", "doctrine/doctrine-bundle": "^1.11|^2.0", "doctrine/orm": "^2.5", "nyholm/psr7": "^1.1", "symfony/browser-kit": "^4.4|^5.0", + "symfony/doctrine-bridge": "^4.4|^5.0", "symfony/dom-crawler": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/finder": "^4.4|^5.0", "symfony/monolog-bridge": "^4.0|^5.0", "symfony/monolog-bundle": "^3.2", - "symfony/phpunit-bridge": "^4.3.5|^5.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9", "symfony/psr-http-message-bridge": "^1.1", "symfony/security-bundle": "^4.4|^5.0", "symfony/twig-bundle": "^4.4|^5.0", @@ -450,7 +541,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "5.5.x-dev" + "dev-master": "5.6.x-dev" } }, "autoload": { @@ -476,57 +567,60 @@ "annotations", "controllers" ], - "time": "2020-05-06T12:12:33+00:00" + "support": { + "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", + "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v5.6.1" + }, + "time": "2020-08-25T19:10:18+00:00" }, { "name": "symfony/cache", - "version": "v4.4.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "ba0aa1738d04df338c0fabdbecf9cf5fddcdb63f" + "reference": "c13bfc6682a669e6ba592ba3305139ebf946a811" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/ba0aa1738d04df338c0fabdbecf9cf5fddcdb63f", - "reference": "ba0aa1738d04df338c0fabdbecf9cf5fddcdb63f", + "url": "https://api.github.com/repos/symfony/cache/zipball/c13bfc6682a669e6ba592ba3305139ebf946a811", + "reference": "c13bfc6682a669e6ba592ba3305139ebf946a811", "shasum": "" }, "require": { - "php": "^7.1.3", - "psr/cache": "~1.0", - "psr/log": "~1.0", + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1.1", "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.2|^5.0" + "symfony/var-exporter": "^4.4|^5.0" }, "conflict": { - "doctrine/dbal": "<2.5", - "symfony/dependency-injection": "<3.4", + "doctrine/dbal": "<2.10", + "symfony/dependency-injection": "<4.4", "symfony/http-kernel": "<4.4", "symfony/var-dumper": "<4.4" }, "provide": { - "psr/cache-implementation": "1.0", + "psr/cache-implementation": "1.0|2.0", "psr/simple-cache-implementation": "1.0", - "symfony/cache-implementation": "1.0" + "symfony/cache-implementation": "1.0|2.0" }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/cache": "~1.6", - "doctrine/dbal": "~2.5", - "predis/predis": "~1.1", + "doctrine/cache": "^1.6", + "doctrine/dbal": "^2.10|^3.0", + "predis/predis": "^1.1", "psr/simple-cache": "^1.0", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", "symfony/var-dumper": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Cache\\": "" @@ -549,12 +643,15 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Cache component with PSR-6, PSR-16, and tags", + "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", "homepage": "https://symfony.com", "keywords": [ "caching", "psr6" ], + "support": { + "source": "https://github.com/symfony/cache/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -569,46 +666,43 @@ "type": "tidelift" } ], - "time": "2020-04-28T17:55:16+00:00" + "time": "2021-05-07T13:41:16+00:00" }, { "name": "symfony/config", - "version": "v4.4.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "8ba41fe053683e1e6e3f6fa21f07ea5c4dd9e4c0" + "reference": "8dfa5f8adea9cd5155920069224beb04f11d6b7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/8ba41fe053683e1e6e3f6fa21f07ea5c4dd9e4c0", - "reference": "8ba41fe053683e1e6e3f6fa21f07ea5c4dd9e4c0", + "url": "https://api.github.com/repos/symfony/config/zipball/8dfa5f8adea9cd5155920069224beb04f11d6b7e", + "reference": "8dfa5f8adea9cd5155920069224beb04f11d6b7e", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/finder": "<3.4" + "symfony/finder": "<4.4" }, "require-dev": { - "symfony/event-dispatcher": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/messenger": "^4.1|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Config\\": "" @@ -631,8 +725,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Config Component", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -647,29 +744,31 @@ "type": "tidelift" } ], - "time": "2020-04-15T15:56:18+00:00" + "time": "2021-05-07T13:41:16+00:00" }, { "name": "symfony/contracts", - "version": "v1.1.8", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/contracts.git", - "reference": "f51bca9de06b7a25b19a4155da7bebad099a5def" + "reference": "8434102b404d119dcaf98c8fe19a2655573ac17a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/f51bca9de06b7a25b19a4155da7bebad099a5def", - "reference": "f51bca9de06b7a25b19a4155da7bebad099a5def", + "url": "https://api.github.com/repos/symfony/contracts/zipball/8434102b404d119dcaf98c8fe19a2655573ac17a", + "reference": "8434102b404d119dcaf98c8fe19a2655573ac17a", "shasum": "" }, "require": { - "php": "^7.1.3", - "psr/cache": "^1.0", - "psr/container": "^1.0" + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0", + "psr/container": "^1.1", + "psr/event-dispatcher": "^1.0" }, "replace": { "symfony/cache-contracts": "self.version", + "symfony/deprecation-contracts": "self.version", "symfony/event-dispatcher-contracts": "self.version", "symfony/http-client-contracts": "self.version", "symfony/service-contracts": "self.version", @@ -679,7 +778,6 @@ "symfony/polyfill-intl-idn": "^1.10" }, "suggest": { - "psr/event-dispatcher": "When using the EventDispatcher contracts", "symfony/cache-implementation": "", "symfony/event-dispatcher-implementation": "", "symfony/http-client-implementation": "", @@ -689,13 +787,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "2.4-dev" } }, "autoload": { "psr-4": { "Symfony\\Contracts\\": "" }, + "files": [ + "Deprecation/function.php" + ], "exclude-from-classmap": [ "**/Tests/" ] @@ -724,63 +825,9 @@ "interoperability", "standards" ], - "time": "2019-11-07T12:44:51+00:00" - }, - { - "name": "symfony/debug", - "version": "v4.4.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e", - "reference": "aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "psr/log": "~1.0", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/http-kernel": "<3.4" - }, - "require-dev": { - "symfony/http-kernel": "^3.4|^4.0|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "support": { + "source": "https://github.com/symfony/contracts/tree/v2.4.0" }, - "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 Debug Component", - "homepage": "https://symfony.com", "funding": [ { "url": "https://symfony.com/sponsor", @@ -795,41 +842,43 @@ "type": "tidelift" } ], - "time": "2020-08-10T07:47:39+00:00" + "time": "2021-04-11T23:07:08+00:00" }, { "name": "symfony/dependency-injection", - "version": "v4.4.11", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "f33a28edd42708ed579377391b3a556bcd6a626d" + "reference": "024e929da5a994cbab0ce2291d332f7edf926acf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f33a28edd42708ed579377391b3a556bcd6a626d", - "reference": "f33a28edd42708ed579377391b3a556bcd6a626d", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/024e929da5a994cbab0ce2291d332f7edf926acf", + "reference": "024e929da5a994cbab0ce2291d332f7edf926acf", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/config": "<4.3|>=5.0", - "symfony/finder": "<3.4", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" + "symfony/config": "<5.1", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4" }, "provide": { "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0" + "symfony/service-implementation": "1.0|2.0" }, "require-dev": { - "symfony/config": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/config": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "symfony/config": "", @@ -839,11 +888,6 @@ "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" @@ -866,72 +910,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony DependencyInjection Component", + "description": "Allows you to standardize and centralize the way objects are constructed in your application", "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-07-23T08:31:43+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.1.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14" + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v5.2.8" }, - "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", @@ -946,39 +929,34 @@ "type": "tidelift" } ], - "time": "2020-06-06T08:49:21+00:00" + "time": "2021-05-11T16:07:35+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.13", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "2434fb32851f252e4f27691eee0b77c16198db62" + "reference": "1416bc16317a8188aabde251afef7618bf4687ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/2434fb32851f252e4f27691eee0b77c16198db62", - "reference": "2434fb32851f252e4f27691eee0b77c16198db62", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/1416bc16317a8188aabde251afef7618bf4687ac", + "reference": "1416bc16317a8188aabde251afef7618bf4687ac", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/log": "~1.0", - "symfony/debug": "^4.4.5", + "php": ">=7.2.5", + "psr/log": "^1.0", "symfony/polyfill-php80": "^1.15", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { + "symfony/deprecation-contracts": "^2.1", "symfony/http-kernel": "^4.4|^5.0", "symfony/serializer": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\ErrorHandler\\": "" @@ -1001,8 +979,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony ErrorHandler Component", + "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1017,52 +998,50 @@ "type": "tidelift" } ], - "time": "2020-08-17T09:56:45+00:00" + "time": "2021-05-07T13:42:21+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.13", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030" + "reference": "d08d6ec121a425897951900ab692b612a61d6240" }, "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/d08d6ec121a425897951900ab692b612a61d6240", + "reference": "d08d6ec121a425897951900ab692b612a61d6240", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher-contracts": "^2", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/dependency-injection": "<3.4" + "symfony/dependency-injection": "<4.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" + "symfony/event-dispatcher-implementation": "2.0" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" + "symfony/stopwatch": "^4.4|^5.0" }, "suggest": { "symfony/dependency-injection": "", "symfony/http-kernel": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" @@ -1085,8 +1064,11 @@ "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", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1101,32 +1083,27 @@ "type": "tidelift" } ], - "time": "2020-08-13T14:18:44+00:00" + "time": "2021-02-18T17:12:37+00:00" }, { "name": "symfony/filesystem", - "version": "v5.0.8", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "7cd0dafc4353a0f62e307df90b48466379c8cc91" + "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/7cd0dafc4353a0f62e307df90b48466379c8cc91", - "reference": "7cd0dafc4353a0f62e307df90b48466379c8cc91", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0", + "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" @@ -1149,8 +1126,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Filesystem Component", + "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", @@ -1165,31 +1145,26 @@ "type": "tidelift" } ], - "time": "2020-04-12T14:40:17+00:00" + "time": "2021-04-01T10:42:13+00:00" }, { "name": "symfony/finder", - "version": "v4.4.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "5729f943f9854c5781984ed4907bbb817735776b" + "reference": "eccb8be70d7a6a2230d05f6ecede40f3fdd9e252" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", - "reference": "5729f943f9854c5781984ed4907bbb817735776b", + "url": "https://api.github.com/repos/symfony/finder/zipball/eccb8be70d7a6a2230d05f6ecede40f3fdd9e252", + "reference": "eccb8be70d7a6a2230d05f6ecede40f3fdd9e252", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.2.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" @@ -1212,8 +1187,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1228,54 +1206,59 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:54:36+00:00" + "time": "2021-05-10T14:39:23+00:00" }, { "name": "symfony/form", - "version": "v4.4.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "505299904397a7c6d515a7c03cdbc1b4a1d4a21f" + "reference": "10279a74e83eb21c4b980e5aeaeda3d30d214c16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/505299904397a7c6d515a7c03cdbc1b4a1d4a21f", - "reference": "505299904397a7c6d515a7c03cdbc1b4a1d4a21f", + "url": "https://api.github.com/repos/symfony/form/zipball/10279a74e83eb21c4b980e5aeaeda3d30d214c16", + "reference": "10279a74e83eb21c4b980e5aeaeda3d30d214c16", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/event-dispatcher": "^4.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher": "^4.4|^5.0", "symfony/intl": "^4.4|^5.0", - "symfony/options-resolver": "~4.3|^5.0", + "symfony/options-resolver": "^5.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.15", + "symfony/property-access": "^5.0.8", "symfony/service-contracts": "^1.1|^2" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<4.3", - "symfony/dependency-injection": "<3.4", - "symfony/doctrine-bridge": "<3.4", - "symfony/framework-bundle": "<3.4", + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<4.4", + "symfony/doctrine-bridge": "<4.4", + "symfony/error-handler": "<4.4.5", + "symfony/framework-bundle": "<4.4", "symfony/http-kernel": "<4.4", - "symfony/intl": "<4.3", - "symfony/translation": "<4.2", - "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0" + "symfony/intl": "<4.4", + "symfony/translation": "<4.4", + "symfony/translation-contracts": "<1.1.7", + "symfony/twig-bridge": "<4.4" }, "require-dev": { "doctrine/collections": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^4.3|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/security-csrf": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2|^5.0", - "symfony/validator": "^3.4.31|^4.3.4|^5.0", - "symfony/var-dumper": "^4.3|^5.0" + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/security-csrf": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^4.4.17|^5.1.9", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "symfony/security-csrf": "For protecting forms against CSRF attacks.", @@ -1283,11 +1266,6 @@ "symfony/validator": "For form validation." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Form\\": "" @@ -1310,8 +1288,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Form Component", + "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/form/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1326,96 +1307,102 @@ "type": "tidelift" } ], - "time": "2020-04-28T17:55:16+00:00" + "time": "2021-05-07T14:01:44+00:00" }, { "name": "symfony/framework-bundle", - "version": "v4.4.8", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "fdacdf191a71aef94e05b64319868f4d06fe509c" + "reference": "af652965c2a598e192200c6932ab9edd283ffe42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/fdacdf191a71aef94e05b64319868f4d06fe509c", - "reference": "fdacdf191a71aef94e05b64319868f4d06fe509c", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/af652965c2a598e192200c6932ab9edd283ffe42", + "reference": "af652965c2a598e192200c6932ab9edd283ffe42", "shasum": "" }, "require": { "ext-xml": "*", - "php": "^7.1.3", - "symfony/cache": "^4.4|^5.0", - "symfony/config": "^4.3.4|^5.0", - "symfony/dependency-injection": "^4.4.1|^5.0.1", + "php": ">=7.2.5", + "symfony/cache": "^5.2", + "symfony/config": "^5.0", + "symfony/dependency-injection": "^5.2", + "symfony/deprecation-contracts": "^2.1", "symfony/error-handler": "^4.4.1|^5.0.1", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/http-kernel": "^4.4", + "symfony/event-dispatcher": "^5.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-foundation": "^5.2.1", + "symfony/http-kernel": "^5.2.1", "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^4.4|^5.0" + "symfony/polyfill-php80": "^1.15", + "symfony/routing": "^5.2" }, "conflict": { "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<3.0", - "phpdocumentor/type-resolver": "<0.2.1", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/asset": "<3.4", - "symfony/browser-kit": "<4.3", - "symfony/console": "<4.3", - "symfony/dom-crawler": "<4.3", - "symfony/dotenv": "<4.3.6", - "symfony/form": "<4.3.5", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "phpunit/phpunit": "<5.4.3", + "symfony/asset": "<5.1", + "symfony/browser-kit": "<4.4", + "symfony/console": "<5.2.5", + "symfony/dom-crawler": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/form": "<5.2", "symfony/http-client": "<4.4", "symfony/lock": "<4.4", - "symfony/mailer": "<4.4", + "symfony/mailer": "<5.2", "symfony/messenger": "<4.4", "symfony/mime": "<4.4", - "symfony/property-info": "<3.4", - "symfony/security-bundle": "<4.4", - "symfony/serializer": "<4.4", - "symfony/stopwatch": "<3.4", - "symfony/translation": "<4.4", - "symfony/twig-bridge": "<4.1.1", + "symfony/property-access": "<5.2", + "symfony/property-info": "<4.4", + "symfony/serializer": "<5.2", + "symfony/stopwatch": "<4.4", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<4.4", "symfony/twig-bundle": "<4.4", - "symfony/validator": "<4.4", + "symfony/validator": "<5.2", "symfony/web-profiler-bundle": "<4.4", - "symfony/workflow": "<4.3.6" + "symfony/workflow": "<5.2" }, "require-dev": { - "doctrine/annotations": "~1.7", + "doctrine/annotations": "^1.10.4", "doctrine/cache": "~1.0", + "doctrine/persistence": "^1.3|^2.0", "paragonie/sodium_compat": "^1.8", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/asset": "^3.4|^4.0|^5.0", - "symfony/browser-kit": "^4.3|^5.0", - "symfony/console": "^4.3.4|^5.0", - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/dom-crawler": "^4.3|^5.0", - "symfony/dotenv": "^4.3.6|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/form": "^4.3.5|^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^5.1", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/console": "^5.2", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/dotenv": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/form": "^5.2", "symfony/http-client": "^4.4|^5.0", "symfony/lock": "^4.4|^5.0", - "symfony/mailer": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", + "symfony/mailer": "^5.2", + "symfony/messenger": "^5.2", "symfony/mime": "^4.4|^5.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/property-info": "^3.4|^4.0|^5.0", - "symfony/security-csrf": "^3.4|^4.0|^5.0", - "symfony/security-http": "^3.4|^4.0|^5.0", - "symfony/serializer": "^4.4|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0", - "symfony/templating": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/property-info": "^4.4|^5.0", + "symfony/security-bundle": "^5.1", + "symfony/security-core": "^4.4|^5.2", + "symfony/security-csrf": "^4.4|^5.0", + "symfony/security-http": "^4.4|^5.0", + "symfony/serializer": "^5.2", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/string": "^5.0", + "symfony/translation": "^5.0", "symfony/twig-bundle": "^4.4|^5.0", - "symfony/validator": "^4.4|^5.0", + "symfony/validator": "^5.2", "symfony/web-link": "^4.4|^5.0", - "symfony/workflow": "^4.3.6|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0", - "twig/twig": "^1.41|^2.10|^3.0" + "symfony/workflow": "^5.2", + "symfony/yaml": "^4.4|^5.0", + "twig/twig": "^2.10|^3.0" }, "suggest": { "ext-apcu": "For best performance of the system caches", @@ -1428,11 +1415,6 @@ "symfony/yaml": "For using the debug:config and lint:yaml commands" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\FrameworkBundle\\": "" @@ -1455,8 +1437,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony FrameworkBundle", + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v5.2.7" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1471,20 +1456,20 @@ "type": "tidelift" } ], - "time": "2020-04-23T20:17:53+00:00" + "time": "2021-04-16T17:21:25+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.1.5", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "41a4647f12870e9d41d9a7d72ff0614a27208558" + "reference": "e8fbbab7c4a71592985019477532629cb2e142dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/41a4647f12870e9d41d9a7d72ff0614a27208558", - "reference": "41a4647f12870e9d41d9a7d72ff0614a27208558", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8fbbab7c4a71592985019477532629cb2e142dc", + "reference": "e8fbbab7c4a71592985019477532629cb2e142dc", "shasum": "" }, "require": { @@ -1503,11 +1488,6 @@ "symfony/mime": "To use the file extension guesser" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" @@ -1530,8 +1510,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpFoundation Component", + "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1546,60 +1529,69 @@ "type": "tidelift" } ], - "time": "2020-08-17T07:48:54+00:00" + "time": "2021-05-07T13:41:16+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.13", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2bb7b90ecdc79813c0bf237b7ff20e79062b5188" + "reference": "c3cb71ee7e2d3eae5fe1001f81780d6a49b37937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2bb7b90ecdc79813c0bf237b7ff20e79062b5188", - "reference": "2bb7b90ecdc79813c0bf237b7ff20e79062b5188", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c3cb71ee7e2d3eae5fe1001f81780d6a49b37937", + "reference": "c3cb71ee7e2d3eae5fe1001f81780d6a49b37937", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/log": "~1.0", - "symfony/error-handler": "^4.4", - "symfony/event-dispatcher": "^4.4", + "symfony/deprecation-contracts": "^2.1", + "symfony/error-handler": "^4.4|^5.0", + "symfony/event-dispatcher": "^5.0", + "symfony/http-client-contracts": "^1.1|^2", "symfony/http-foundation": "^4.4|^5.0", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/browser-kit": "<4.3", - "symfony/config": "<3.4", - "symfony/console": ">=5", - "symfony/dependency-injection": "<4.3", - "symfony/translation": "<4.2", - "twig/twig": "<1.34|<2.4,>=2" + "symfony/browser-kit": "<4.4", + "symfony/cache": "<5.0", + "symfony/config": "<5.0", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<5.1.8", + "symfony/doctrine-bridge": "<5.0", + "symfony/form": "<5.0", + "symfony/http-client": "<5.0", + "symfony/mailer": "<5.0", + "symfony/messenger": "<5.0", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<5.0", + "symfony/validator": "<5.0", + "twig/twig": "<2.13" }, "provide": { "psr/log-implementation": "1.0" }, "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "^4.3|^5.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0", - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^4.3|^5.0", - "symfony/dom-crawler": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/routing": "^3.4|^4.0|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0", - "symfony/templating": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2|^5.0", + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/config": "^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dependency-injection": "^5.1.8", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/routing": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^1.34|^2.4|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "symfony/browser-kit": "", @@ -1608,11 +1600,6 @@ "symfony/dependency-injection": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\HttpKernel\\": "" @@ -1635,80 +1622,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpKernel Component", + "description": "Provides a structured process for converting a Request into a Response", "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-09-02T08:09:29+00:00" - }, - { - "name": "symfony/inflector", - "version": "v5.0.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/inflector.git", - "reference": "70c25c66427e2bb6ba0827d668366d60b0a90cbf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/inflector/zipball/70c25c66427e2bb6ba0827d668366d60b0a90cbf", - "reference": "70c25c66427e2bb6ba0827d668366d60b0a90cbf", - "shasum": "" - }, - "require": { - "php": "^7.2.5", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Inflector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v5.2.8" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Inflector Component", - "homepage": "https://symfony.com", - "keywords": [ - "inflection", - "pluralize", - "singularize", - "string", - "symfony", - "words" - ], "funding": [ { "url": "https://symfony.com/sponsor", @@ -1723,25 +1641,26 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:56:45+00:00" + "time": "2021-05-12T13:27:53+00:00" }, { "name": "symfony/intl", - "version": "v5.0.8", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "dc50ad5039ac685ca87306a346dc119cacdfea25" + "reference": "6d40be5e4331041aa14add5633986d95667ae624" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/dc50ad5039ac685ca87306a346dc119cacdfea25", - "reference": "dc50ad5039ac685ca87306a346dc119cacdfea25", + "url": "https://api.github.com/repos/symfony/intl/zipball/6d40be5e4331041aa14add5633986d95667ae624", + "reference": "6d40be5e4331041aa14add5633986d95667ae624", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/polyfill-intl-icu": "~1.0" + "php": ">=7.2.5", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "require-dev": { "symfony/filesystem": "^4.4|^5.0" @@ -1750,11 +1669,6 @@ "ext-intl": "to use the component with locales other than \"en\"" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Intl\\": "" @@ -1788,7 +1702,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A PHP replacement layer for the C intl extension that includes additional data from the ICU library.", + "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library", "homepage": "https://symfony.com", "keywords": [ "i18n", @@ -1798,6 +1712,9 @@ "l10n", "localization" ], + "support": { + "source": "https://github.com/symfony/intl/tree/v5.2.7" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1812,31 +1729,29 @@ "type": "tidelift" } ], - "time": "2020-04-12T14:40:17+00:00" + "time": "2021-04-24T14:39:13+00:00" }, { "name": "symfony/options-resolver", - "version": "v4.4.8", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "ade3d89dd3b875b83c8cff2980c9bb0daf6ef297" + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/ade3d89dd3b875b83c8cff2980c9bb0daf6ef297", - "reference": "ade3d89dd3b875b83c8cff2980c9bb0daf6ef297", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\OptionsResolver\\": "" @@ -1859,13 +1774,16 @@ "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", "configuration", "options" ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.2.4" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1880,24 +1798,24 @@ "type": "tidelift" } ], - "time": "2020-04-06T10:16:26+00:00" + "time": "2021-01-27T12:56:27+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454" + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "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/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-ctype": "For best performance" @@ -1905,7 +1823,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1942,6 +1860,9 @@ "polyfill", "portable" ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1956,25 +1877,24 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "symfony/polyfill-intl-icu", - "version": "v1.17.0", + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3", - "reference": "4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/intl": "~2.3|~3.0|~4.0|~5.0" + "php": ">=7.1" }, "suggest": { "ext-intl": "For best performance" @@ -1982,10 +1902,17 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + }, "files": [ "bootstrap.php" ] @@ -2004,16 +1931,19 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's ICU-related data and classes", + "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "icu", + "grapheme", "intl", "polyfill", "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2028,32 +1958,32 @@ "type": "tidelift" } ], - "time": "2020-05-12T16:14:59+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.18.1", + "name": "symfony/polyfill-intl-icu", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a" + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "af1842919c7e7364aaaa2798b29839e3ba168588" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/af1842919c7e7364aaaa2798b29839e3ba168588", + "reference": "af1842919c7e7364aaaa2798b29839e3ba168588", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-intl": "For best performance and support of other locales than \"en\"" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2061,11 +1991,17 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2082,15 +2018,19 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for intl's ICU-related data and classes", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "icu", + "intl", "polyfill", "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2105,29 +2045,32 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.18.1", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "639447d008615574653fb3bc60d1986d7172eaae" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae", - "reference": "639447d008615574653fb3bc60d1986d7172eaae", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2136,10 +2079,13 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, "files": [ "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2156,14 +2102,19 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "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.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2178,29 +2129,32 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.18.1", + "name": "symfony/polyfill-mbstring", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" + }, + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2209,13 +2163,10 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Polyfill\\Mbstring\\": "" }, "files": [ "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2232,14 +2183,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "mbstring", "polyfill", "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2254,29 +2209,29 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.18.1", + "name": "symfony/polyfill-php72", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "" }, "require": { - "php": ">=7.0.8" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2285,13 +2240,10 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Polyfill\\Php72\\": "" }, "files": [ "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2299,10 +2251,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -2312,7 +2260,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 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -2320,6 +2268,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2334,44 +2285,44 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "symfony/property-access", - "version": "v5.0.8", + "name": "symfony/polyfill-php73", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/property-access.git", - "reference": "259f26529231ab653fc96fb358e5e41dbb438aed" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/259f26529231ab653fc96fb358e5e41dbb438aed", - "reference": "259f26529231ab653fc96fb358e5e41dbb438aed", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/inflector": "^4.4|^5.0" - }, - "require-dev": { - "symfony/cache": "^4.4|^5.0" - }, - "suggest": { - "psr/cache-implementation": "To cache access methods." + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Component\\PropertyAccess\\": "" + "Symfony\\Polyfill\\Php73\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2380,27 +2331,25 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony PropertyAccess Component", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "access", - "array", - "extraction", - "index", - "injection", - "object", - "property", - "property path", - "reflection" - ], + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2415,58 +2364,44 @@ "type": "tidelift" } ], - "time": "2020-04-15T15:59:10+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "symfony/routing", - "version": "v4.4.8", + "name": "symfony/polyfill-php80", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c", - "reference": "67b4e1f99c050cbc310b8f3d0dbdc4b0212c052c", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { - "php": "^7.1.3" - }, - "conflict": { - "symfony/config": "<4.2", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "~1.2", - "psr/log": "~1.0", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Routing\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2475,22 +2410,29 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "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 Routing Component", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "router", - "routing", - "uri", - "url" + "compatibility", + "polyfill", + "portable", + "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2505,78 +2447,38 @@ "type": "tidelift" } ], - "time": "2020-04-21T19:59:53+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "symfony/validator", - "version": "v4.4.8", + "name": "symfony/property-access", + "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "1780dff34d756f924ed7bb4f1cd94a7f9685eb69" + "url": "https://github.com/symfony/property-access.git", + "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/1780dff34d756f924ed7bb4f1cd94a7f9685eb69", - "reference": "1780dff34d756f924ed7bb4f1cd94a7f9685eb69", + "url": "https://api.github.com/repos/symfony/property-access/zipball/3af8ed262bd3217512a13b023981fe68f36ad5f3", + "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1|^2" - }, - "conflict": { - "doctrine/lexer": "<1.0.2", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<4.4", - "symfony/intl": "<4.3", - "symfony/translation": ">=5.0", - "symfony/yaml": "<3.4" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", + "symfony/property-info": "^5.2" }, "require-dev": { - "doctrine/annotations": "~1.7", - "doctrine/cache": "~1.0", - "egulias/email-validator": "^2.1.10", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/http-foundation": "^4.1|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/intl": "^4.3|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/property-access": "^3.4|^4.0|^5.0", - "symfony/property-info": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/cache": "^4.4|^5.0" }, "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader.", - "egulias/email-validator": "Strict (RFC compliant) email validation", - "psr/cache-implementation": "For using the mapping cache.", - "symfony/config": "", - "symfony/expression-language": "For using the Expression validator", - "symfony/http-foundation": "", - "symfony/intl": "", - "symfony/property-access": "For accessing properties within comparison constraints", - "symfony/property-info": "To automatically add NotNull and Type constraints", - "symfony/translation": "For translating validation errors.", - "symfony/yaml": "" + "psr/cache-implementation": "To cache access methods." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Component\\Validator\\": "" + "Symfony\\Component\\PropertyAccess\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -2596,8 +2498,22 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Validator Component", + "description": "Provides functions to read and write from/to an object or array using a simple string notation", "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v5.2.4" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2612,57 +2528,50 @@ "type": "tidelift" } ], - "time": "2020-04-28T18:23:58+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { - "name": "symfony/var-dumper", - "version": "v4.4.8", + "name": "symfony/property-info", + "version": "v5.2.8", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "c587e04ce5d1aa62d534a038f574d9a709e814cf" + "url": "https://github.com/symfony/property-info.git", + "reference": "cc8121baf91039648d5f8feb894dc4a9d4935cc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c587e04ce5d1aa62d534a038f574d9a709e814cf", - "reference": "c587e04ce5d1aa62d534a038f574d9a709e814cf", + "url": "https://api.github.com/repos/symfony/property-info/zipball/cc8121baf91039648d5f8feb894dc4a9d4935cc0", + "reference": "cc8121baf91039648d5f8feb894dc4a9d4935cc0", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php72": "~1.5" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", + "symfony/string": "^5.1" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<3.4" + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4" }, "require-dev": { - "ext-iconv": "*", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/process": "^4.4|^5.0", - "twig/twig": "^1.34|^2.4|^3.0" + "doctrine/annotations": "^1.10.4", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/cache": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" }, "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + "phpdocumentor/reflection-docblock": "To use the PHPDoc", + "psr/cache-implementation": "To cache results", + "symfony/doctrine-bridge": "To use Doctrine metadata", + "symfony/serializer": "To use Serializer metadata" }, - "bin": [ - "Resources/bin/var-dump-server" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { - "files": [ - "Resources/functions/dump.php" - ], "psr-4": { - "Symfony\\Component\\VarDumper\\": "" + "Symfony\\Component\\PropertyInfo\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -2674,20 +2583,27 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", + "description": "Extracts information about PHP class' properties using metadata of popular sources", "homepage": "https://symfony.com", "keywords": [ - "debug", - "dump" + "doctrine", + "phpdoc", + "property", + "symfony", + "type", + "validator" ], + "support": { + "source": "https://github.com/symfony/property-info/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2702,37 +2618,51 @@ "type": "tidelift" } ], - "time": "2020-04-12T16:14:02+00:00" + "time": "2021-05-07T14:04:56+00:00" }, { - "name": "symfony/var-exporter", - "version": "v5.0.8", + "name": "symfony/routing", + "version": "v5.2.7", "source": { "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f" + "url": "https://github.com/symfony/routing.git", + "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f", - "reference": "5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f", + "url": "https://api.github.com/repos/symfony/routing/zipball/3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c", + "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c", "shasum": "" }, "require": { - "php": "^7.2.5" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/config": "<5.0", + "symfony/dependency-injection": "<4.4", + "symfony/yaml": "<4.4" }, "require-dev": { - "symfony/var-dumper": "^4.4|^5.0" + "doctrine/annotations": "^1.10.4", + "psr/log": "~1.0", + "symfony/config": "^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } + "suggest": { + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\VarExporter\\": "" + "Symfony\\Component\\Routing\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -2744,24 +2674,25 @@ ], "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 blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", + "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", "keywords": [ - "clone", - "construct", - "export", - "hydrate", - "instantiate", - "serialize" + "router", + "routing", + "uri", + "url" ], + "support": { + "source": "https://github.com/symfony/routing/tree/v5.2.7" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2776,45 +2707,44 @@ "type": "tidelift" } ], - "time": "2020-04-15T15:59:10+00:00" + "time": "2021-04-11T22:55:21+00:00" }, { - "name": "symfony/yaml", - "version": "v4.4.8", + "name": "symfony/string", + "version": "v5.2.8", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "b385dce1c0e9f839b384af90188638819433e252" + "url": "https://github.com/symfony/string.git", + "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/b385dce1c0e9f839b384af90188638819433e252", - "reference": "b385dce1c0e9f839b384af90188638819433e252", + "url": "https://api.github.com/repos/symfony/string/zipball/01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", + "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" + "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/console": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "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", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Component\\Yaml\\": "" + "Symfony\\Component\\String\\": "" }, + "files": [ + "Resources/functions.php" + ], "exclude-from-classmap": [ "/Tests/" ] @@ -2825,16 +2755,27 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "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.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2849,49 +2790,80 @@ "type": "tidelift" } ], - "time": "2020-04-28T17:55:16+00:00" - } - ], - "packages-dev": [ + "time": "2021-05-10T14:56:10+00:00" + }, { - "name": "amphp/amp", - "version": "v2.4.4", + "name": "symfony/validator", + "version": "v5.2.7", "source": { "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "1e58d53e4af390efc7813e36cd215bd82cba4b06" + "url": "https://github.com/symfony/validator.git", + "reference": "b0be0360bfbf15059308d815da7f4151bd448b37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/1e58d53e4af390efc7813e36cd215bd82cba4b06", - "reference": "1e58d53e4af390efc7813e36cd215bd82cba4b06", + "url": "https://api.github.com/repos/symfony/validator/zipball/b0be0360bfbf15059308d815da7f4151bd448b37", + "reference": "b0be0360bfbf15059308d815da7f4151bd448b37", "shasum": "" }, "require": { - "php": ">=7" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15", + "symfony/translation-contracts": "^1.1|^2" }, - "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", - "react/promise": "^2", - "vimeo/psalm": "^3.11@dev" + "conflict": { + "doctrine/lexer": "<1.0.2", + "phpunit/phpunit": "<5.4.3", + "symfony/dependency-injection": "<4.4", + "symfony/expression-language": "<5.1", + "symfony/http-kernel": "<4.4", + "symfony/intl": "<4.4", + "symfony/translation": "<4.4", + "symfony/yaml": "<4.4" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "~1.0", + "egulias/email-validator": "^2.1.10|^3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^5.1", + "symfony/finder": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/intl": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/property-access": "^4.4|^5.0", + "symfony/property-info": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, - "autoload": { - "psr-4": { - "Amp\\": "lib" - }, - "files": [ - "lib/functions.php", - "lib/Internal/functions.php" + "suggest": { + "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the mapping cache.", + "symfony/config": "", + "symfony/expression-language": "For using the Expression validator and the ExpressionLanguageSyntax constraints", + "symfony/http-foundation": "", + "symfony/intl": "", + "symfony/property-access": "For accessing properties within comparison constraints", + "symfony/property-info": "To automatically add NotNull and Type constraints", + "symfony/translation": "For translating validation errors.", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Validator\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2900,74 +2872,83 @@ ], "authors": [ { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to validate values", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/validator/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "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" - ], - "time": "2020-04-30T04:54:50+00:00" + "time": "2021-04-14T13:12:03+00:00" }, { - "name": "amphp/byte-stream", - "version": "v1.7.3", + "name": "symfony/var-dumper", + "version": "v4.4.22", "source": { "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "b867505edb79dda8f253ca3c3a2bbadae4b16592" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/b867505edb79dda8f253ca3c3a2bbadae4b16592", - "reference": "b867505edb79dda8f253ca3c3a2bbadae4b16592", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c194bcedde6295f3ec3e9eba1f5d484ea97c41a7", + "reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7", "shasum": "" }, "require": { - "amphp/amp": "^2" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "vimeo/psalm": "^3.9@dev" + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", "autoload": { + "files": [ + "Resources/functions/dump.php" + ], "psr-4": { - "Amp\\ByteStream\\": "lib" + "Symfony\\Component\\VarDumper\\": "" }, - "files": [ - "lib/functions.php" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2976,63 +2957,68 @@ ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "http://amphp.org/byte-stream", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v4.4.22" + }, + "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-04-04T16:56:54+00:00" + "time": "2021-04-19T13:36:17+00:00" }, { - "name": "composer/package-versions-deprecated", - "version": "1.8.0", + "name": "symfony/var-exporter", + "version": "v5.2.8", "source": { "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "98df7f1b293c0550bd5b1ce6b60b59bdda23aa47" + "url": "https://github.com/symfony/var-exporter.git", + "reference": "d26db2d2b2d7eb2c1adb8545179f8803998b8237" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/98df7f1b293c0550bd5b1ce6b60b59bdda23aa47", - "reference": "98df7f1b293c0550bd5b1ce6b60b59bdda23aa47", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d26db2d2b2d7eb2c1adb8545179f8803998b8237", + "reference": "d26db2d2b2d7eb2c1adb8545179f8803998b8237", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7" - }, - "replace": { - "ocramius/package-versions": "1.2 - 1.8.99" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" }, "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" - } + "symfony/var-dumper": "^4.4.9|^5.0.9" }, + "type": "library", "autoload": { "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3040,57 +3026,82 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v5.3.0-BETA3" + }, "funding": [ { - "url": "https://packagist.com", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2020-04-23T11:49:37+00:00" + "time": "2021-05-07T13:42:21+00:00" }, { - "name": "composer/semver", - "version": "1.5.1", + "name": "symfony/yaml", + "version": "v5.2.7", "source": { "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de" + "url": "https://github.com/symfony/yaml.git", + "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de", - "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "url": "https://api.github.com/repos/symfony/yaml/zipball/76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", + "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<4.4" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5" + "symfony/console": "^4.4|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", "autoload": { "psr-4": { - "Composer\\Semver\\": "src" - } + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3098,56 +3109,77 @@ ], "authors": [ { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "time": "2020-01-13T12:06:48+00:00" - }, + "time": "2021-04-29T20:47:09+00:00" + } + ], + "packages-dev": [ { - "name": "composer/xdebug-handler", - "version": "1.4.1", + "name": "amphp/amp", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7" + "url": "https://github.com/amphp/amp.git", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7", - "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "url": "https://api.github.com/repos/amphp/amp/zipball/efca2b32a7580087adb8aabbff6be1dc1bb924a9", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0" + "php": ">=7" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + "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": "2.x-dev" + } + }, "autoload": { "psr-4": { - "Composer\\XdebugHandler\\": "src" - } + "Amp\\": "lib" + }, + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3155,184 +3187,229 @@ ], "authors": [ { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" + "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": "Restarts a process without Xdebug.", + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "http://amphp.org/amp", "keywords": [ - "Xdebug", - "performance" + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "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.5.2" + }, "funding": [ { - "url": "https://packagist.com", - "type": "custom" + "url": "https://github.com/amphp", + "type": "github" } ], - "time": "2020-03-01T12:26:26+00:00" + "time": "2021-01-10T17:06:37+00:00" }, { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.1.1", + "name": "amphp/byte-stream", + "version": "v1.8.1", "source": { "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40" + "url": "https://github.com/amphp/byte-stream.git", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/0ed363f8de17d284d479ec813c9ad3f6834b5c40", - "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", "shasum": "" }, "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0", - "php": ">=7.0", - "phpdocumentor/reflection-docblock": "^4.0.0 || ^5.0.0" + "amphp/amp": "^2", + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^6.0.0" + "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" + } + }, "autoload": { "psr-4": { - "AdvancedJsonRpc\\": "lib/" - } + "Amp\\ByteStream\\": "lib" + }, + "files": [ + "lib/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "MIT" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "A more advanced JSONRPC implementation", - "time": "2020-03-11T15:21:41+00:00" + "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" + ], + "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": "felixfbecker/language-server-protocol", - "version": "v1.4.0", + "name": "composer/package-versions-deprecated", + "version": "1.11.99.1", "source": { "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "378801f6139bb74ac215d81cca1272af61df9a9f" + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/378801f6139bb74ac215d81cca1272af61df9a9f", - "reference": "378801f6139bb74ac215d81cca1272af61df9a9f", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", "shasum": "" }, "require": { - "php": "^7.0" + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" }, "require-dev": { - "phpstan/phpstan": "*", - "phpunit/phpunit": "^6.3", - "squizlabs/php_codesniffer": "^3.1" + "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" + } }, - "type": "library", "autoload": { "psr-4": { - "LanguageServerProtocol\\": "src/" + "PackageVersions\\": "src/PackageVersions" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "MIT" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } ], - "description": "PHP classes for the Language Server Protocol", - "keywords": [ - "language", - "microsoft", - "php", - "server" + "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.1" + }, + "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-06-23T21:03:50+00:00" + "time": "2020-11-11T10:22:58+00:00" }, { - "name": "friendsofphp/php-cs-fixer", - "version": "v2.16.3", + "name": "composer/semver", + "version": "3.2.4", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "83baf823a33a1cbd5416c8626935cf3f843c10b0" + "url": "https://github.com/composer/semver.git", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/83baf823a33a1cbd5416c8626935cf3f843c10b0", - "reference": "83baf823a33a1cbd5416c8626935cf3f843c10b0", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", "shasum": "" }, "require": { - "composer/semver": "^1.4", - "composer/xdebug-handler": "^1.2", - "doctrine/annotations": "^1.2", - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^5.6 || ^7.0", - "php-cs-fixer/diff": "^1.3", - "symfony/console": "^3.4.17 || ^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": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", - "justinrainbow/json-schema": "^5.0", - "keradus/cli-executor": "^1.2", - "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.1", - "php-cs-fixer/accessible-object": "^1.0", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1", - "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/yaml": "^3.0 || ^4.0 || ^5.0" + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" }, - "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.", - "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } }, - "bin": [ - "php-cs-fixer" - ], - "type": "application", "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/TestCase.php" - ] + "Composer\\Semver\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3340,53 +3417,75 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "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": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "A tool to automatically fix PHP code style", + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "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.4" + }, "funding": [ { - "url": "https://github.com/keradus", + "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-04-15T18:51:10+00:00" + "time": "2020-11-13T08:59:24+00:00" }, { - "name": "jean85/pretty-package-versions", - "version": "1.3.0", + "name": "composer/xdebug-handler", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "e3517fb11b67e798239354fe8213927d012ad8f9" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "964adcdd3a28bf9ed5d9ac6450064e0d71ed7496" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/e3517fb11b67e798239354fe8213927d012ad8f9", - "reference": "e3517fb11b67e798239354fe8213927d012ad8f9", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/964adcdd3a28bf9ed5d9ac6450064e0d71ed7496", + "reference": "964adcdd3a28bf9ed5d9ac6450064e0d71ed7496", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8.0", - "php": "^7.0" + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { "psr-4": { - "Jean85\\": "src/" + "Composer\\XdebugHandler\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3395,281 +3494,237 @@ ], "authors": [ { - "name": "Alessandro Lai", - "email": "alessandro.lai85@gmail.com" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "A wrapper for ocramius/package-versions to get pretty versions strings", + "description": "Restarts a process without Xdebug.", "keywords": [ - "composer", - "package", - "release", - "versions" + "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/2.0.1" + }, + "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-04-24T14:19:45+00:00" + "time": "2021-05-05T19:37:51+00:00" }, { - "name": "netresearch/jsonmapper", - "version": "v2.1.0", + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", "source": { "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", - "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.6" + "php": ">=5.3.2" }, "require-dev": { - "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", - "squizlabs/php_codesniffer": "~3.5" + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" }, "type": "library", "autoload": { - "psr-0": { - "JsonMapper": "src/" + "psr-4": { + "XdgBaseDir\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "OSL-3.0" + "MIT" ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" - } - ], - "description": "Map nested JSON structures onto PHP classes", - "time": "2020-04-16T18:48:43+00:00" + "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" }, { - "name": "nette/finder", - "version": "v2.5.2", + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.0", "source": { "type": "git", - "url": "https://github.com/nette/finder.git", - "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50" + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50", - "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e", "shasum": "" }, "require": { - "nette/utils": "^2.4 || ^3.0", - "php": ">=7.1" - }, - "conflict": { - "nette/nette": "<2.2" + "netresearch/jsonmapper": "^1.0 || ^2.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" }, "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "phpunit/phpunit": "^7.0 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "ISC" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Felix Becker", + "email": "felix.b@outlook.com" } ], - "description": "🔍 Nette Finder: find files and directories with an intuitive API.", - "homepage": "https://nette.org", - "keywords": [ - "filesystem", - "glob", - "iterator", - "nette" - ], - "time": "2020-01-03T20:35:40+00:00" + "description": "A more advanced JSONRPC implementation", + "support": { + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.0" + }, + "time": "2021-01-10T17:48:47+00:00" }, { - "name": "nette/robot-loader", - "version": "v3.2.3", + "name": "felixfbecker/language-server-protocol", + "version": "1.5.1", "source": { "type": "git", - "url": "https://github.com/nette/robot-loader.git", - "reference": "726c462e73e739e965ec654a667407074cfe83c0" + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/726c462e73e739e965ec654a667407074cfe83c0", - "reference": "726c462e73e739e965ec654a667407074cfe83c0", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "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" + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "LanguageServerProtocol\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "ISC" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Felix Becker", + "email": "felix.b@outlook.com" } ], - "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", - "homepage": "https://nette.org", + "description": "PHP classes for the Language Server Protocol", "keywords": [ - "autoload", - "class", - "interface", - "nette", - "trait" + "language", + "microsoft", + "php", + "server" ], - "time": "2020-02-28T13:10:07+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": "nette/utils", - "version": "v3.1.1", + "name": "netresearch/jsonmapper", + "version": "v2.1.0", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "2c17d16d8887579ae1c0898ff94a3668997fd3eb" + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/2c17d16d8887579ae1c0898ff94a3668997fd3eb", - "reference": "2c17d16d8887579ae1c0898ff94a3668997fd3eb", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.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-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" + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "squizlabs/php_codesniffer": "~3.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "JsonMapper": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "OSL-3.0" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" } ], - "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": "2020-02-09T14:10:55+00:00" + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/master" + }, + "time": "2020-04-16T18:48:43+00:00" }, { "name": "nikic/php-parser", - "version": "v4.4.0", + "version": "v4.10.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120" + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120", - "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", "shasum": "" }, "require": { @@ -3677,8 +3732,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" @@ -3686,7 +3741,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.9-dev" } }, "autoload": { @@ -3708,7 +3763,11 @@ "parser", "php" ], - "time": "2020-04-10T16:34:50+00:00" + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" + }, + "time": "2021-05-03T19:11:20+00:00" }, { "name": "openlss/lib-array2xml", @@ -3757,125 +3816,33 @@ "xml", "xml conversion" ], - "time": "2019-03-29T20:06:56+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "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": "2018-07-02T15:55:56+00:00" - }, - { - "name": "php-cs-fixer/diff", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756", - "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "symfony/process": "^3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] + "support": { + "issues": "https://github.com/nullivex/lib-array2xml/issues", + "source": "https://github.com/nullivex/lib-array2xml/tree/master" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "SpacePossum" - } - ], - "description": "sebastian/diff v2 backport support for PHP5.6", - "homepage": "https://github.com/PHP-CS-Fixer", - "keywords": [ - "diff" - ], - "time": "2018-02-15T16:58:55+00:00" + "time": "2019-03-29T20:06:56+00:00" }, { "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": { @@ -3902,32 +3869,35 @@ "reflection", "static analysis" ], - "time": "2020-04-27T09:25:28+00:00" + "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.2.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "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" }, "type": "library", "extra": { @@ -3955,34 +3925,37 @@ } ], "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/master" + }, + "time": "2020-09-03T19:13:55+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.1.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { - "php": "^7.2", + "php": "^7.2 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.2", - "mockery/mockery": "~1" + "ext-tokenizer": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { @@ -4001,81 +3974,57 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-02-18T18:59:58+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" }, { - "name": "phpstan/phpdoc-parser", - "version": "0.3.5", + "name": "psalm/plugin-symfony", + "version": "v2.3.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4" + "url": "https://github.com/psalm/psalm-plugin-symfony.git", + "reference": "497d831b07b3f87bd48183e21d4894f5ed09e4f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8c4ef2aefd9788238897b678a985e1d5c8df6db4", - "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4", + "url": "https://api.github.com/repos/psalm/psalm-plugin-symfony/zipball/497d831b07b3f87bd48183e21d4894f5ed09e4f1", + "reference": "497d831b07b3f87bd48183e21d4894f5ed09e4f1", "shasum": "" }, "require": { - "php": "~7.1" + "ext-simplexml": "*", + "php": "^7.1 || ^8.0", + "symfony/framework-bundle": "^3.0 || ^4.0 || ^5.0", + "vimeo/psalm": "^4.6.1" }, "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" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.3-dev" - } - }, - "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", - "time": "2019-06-07T19:13:52+00:00" - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + "doctrine/orm": "^2.7", + "phpunit/phpunit": "~7.5 || ~9.5", + "symfony/cache-contracts": "^1.0 || ^2.0", + "symfony/console": "*", + "symfony/form": "^4.0 || ^5.0", + "symfony/messenger": "^4.2 || ^5.0", + "symfony/security-guard": "^4.0 || ^5.0", + "symfony/serializer": "^4.0 || ^5.0", + "symfony/validator": "*", + "twig/twig": "^2.10 || ^3.0", + "weirdan/codeception-psalm-module": "^0.13.1" }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" + "suggest": { + "weirdan/doctrine-psalm-plugin": "If Doctrine is used, it is recommended install this plugin" }, - "type": "library", + "type": "psalm-plugin", "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" + "psalm": { + "pluginClass": "Psalm\\SymfonyPsalmPlugin\\Plugin" } }, "autoload": { "psr-4": { - "Psr\\SimpleCache\\": "src/" + "Psalm\\SymfonyPsalmPlugin\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4084,19 +4033,16 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Farhad Safarov", + "email": "farhad.safarov@gmail.com" } ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "time": "2017-10-23T01:57:42+00:00" + "description": "Psalm Plugin for Symfony", + "support": { + "issues": "https://github.com/psalm/psalm-plugin-symfony/issues", + "source": "https://github.com/psalm/psalm-plugin-symfony/tree/v2.3.0" + }, + "time": "2021-05-10T08:14:54+00:00" }, { "name": "roave/security-advisories", @@ -4104,12 +4050,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "697cfbd44fa43ebb5cd9d5ce6d8fc0edcbce85b8" + "reference": "5ffdb87f627ff16cc392e30515a1fe069cddc3e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/697cfbd44fa43ebb5cd9d5ce6d8fc0edcbce85b8", - "reference": "697cfbd44fa43ebb5cd9d5ce6d8fc0edcbce85b8", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/5ffdb87f627ff16cc392e30515a1fe069cddc3e2", + "reference": "5ffdb87f627ff16cc392e30515a1fe069cddc3e2", "shasum": "" }, "conflict": { @@ -4125,8 +4071,10 @@ "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", - "baserproject/basercms": ">=4,<=4.3.6", - "bolt/bolt": "<3.7.1", + "baserproject/basercms": ">=4,<=4.3.6|>=4.4,<4.4.1", + "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", + "bolt/bolt": "<3.7.2", + "bolt/core": "<4.1.13", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<5.1.2", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", @@ -4136,10 +4084,10 @@ "centreon/centreon": "<18.10.8|>=19,<19.4.5", "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeigniter/framework": "<=3.0.6", - "composer/composer": "<=1-alpha.11", + "composer/composer": "<1.10.22|>=2-alpha.1,<2.0.13", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.46|>=4.5,<4.8.6", + "contao/core-bundle": ">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", @@ -4152,105 +4100,146 @@ "doctrine/doctrine-module": "<=0.7.1", "doctrine/mongodb-odm": ">=1,<1.0.2", "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", - "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1", + "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", "dolibarr/dolibarr": "<11.0.4", "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.72|>=8,<8.8.8|>=8.9,<8.9.1|>=9,<9.0.1", - "drupal/drupal": ">=7,<7.72|>=8,<8.8.8|>=8.9,<8.9.1|>=9,<9.0.1", + "drupal/core": ">=7,<7.80|>=8,<8.9.14|>=9,<9.0.12|>=9.1,<9.1.7", + "drupal/drupal": ">=7,<7.80|>=8,<8.9.14|>=9,<9.0.12|>=9.1,<9.1.7", + "dweeves/magmi": "<=0.7.24", "endroid/qr-code-bundle": "<3.4.2", "enshrined/svg-sanitize": "<0.13.1", "erusev/parsedown": "<1.7.2", "ezsystems/demobundle": ">=5.4,<5.4.6.1", + "ezsystems/ez-support-tools": ">=2.2,<2.2.3", "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1", "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1", "ezsystems/ezplatform": ">=1.7,<1.7.9.1|>=1.13,<1.13.5.1|>=2.5,<2.5.4", "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6", - "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2", - "ezsystems/ezplatform-kernel": ">=1,<1.0.2.1", + "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", + "ezsystems/ezplatform-kernel": "<=1.2.5|>=1.3,<=1.3.1", + "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<=1.3.1", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": ">=5.3,<5.3.12.1|>=5.4,<5.4.14.2|>=6,<6.7.9.1|>=6.8,<6.13.6.3|>=7,<7.2.4.1|>=7.3,<7.3.2.1|>=7.5,<7.5.7.1", - "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.14.1|>=2011,<2017.12.7.2|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3|>=2019.3,<2019.3.4.2", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.14.2|>=2011,<2017.12.7.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3|>=2019.3,<2019.3.5.1", + "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", "ezsystems/repository-forms": ">=2.3,<2.3.2.1", "ezyang/htmlpurifier": "<4.1.1", + "facade/ignition": "<1.16.14|>=2,<2.4.2|>=2.5,<2.5.2", "firebase/php-jwt": "<2", + "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15", + "flarum/tags": "<=0.1-beta.13", + "fluidtypo3/vhs": "<5.1.1", "fooman/tcpdf": "<6.2.22", + "forkcms/forkcms": "<5.8.3", "fossar/tcpdf-parser": "<6.2.22", + "francoisjacquet/rosariosis": "<6.5.1", "friendsofsymfony/oauth2-php": "<1.3", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "fuel/core": "<1.8.1", - "getgrav/grav": "<1.7-beta.8", + "getgrav/grav": "<1.7.11", + "getkirby/cms": "<3.5.4", + "getkirby/panel": "<2.5.14", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", - "illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29|>=5.5,<=5.5.44|>=6,<6.18.34|>=7,<7.23.2", + "illuminate/database": "<6.20.26|>=7,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": ">=7,<7.1.2", + "impresscms/impresscms": "<=1.4.2", "ivankristianto/phpwhois": "<=4.3", "james-heinrich/getid3": "<1.9.9", + "joomla/archive": "<1.1.10", "joomla/session": "<1.3.1", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kitodo/presentation": "<3.1.2", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", - "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.34|>=7,<7.23.2", + "laravel/framework": "<6.20.26|>=7,<8.40", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "league/commonmark": "<0.18.3", - "librenms/librenms": "<1.53", + "lexik/jwt-authentication-bundle": ">=2,<2.10.7|>=2.11,<2.11.3", + "librenms/librenms": "<21.1", + "livewire/livewire": ">2.2.4,<2.2.6", "magento/community-edition": ">=2,<2.2.10|>=2.3,<2.3.3", "magento/magento1ce": "<1.9.4.3", "magento/magento1ee": ">=1,<1.14.4.3", "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2-p.2", "marcwillmann/turn": "<0.3.3", + "mautic/core": "<3.3.2|= 2.13.1", + "mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35", "mittwald/typo3_forum": "<1.2.1", "monolog/monolog": ">=1.8,<1.12", + "moodle/moodle": "<3.5.17|>=3.7,<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10,<3.10.2", "namshi/jose": "<2.2", + "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", + "neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", + "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nystudio107/craft-seomatic": "<3.3", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", - "october/backend": ">=1.0.319,<1.0.467", - "october/cms": ">=1.0.319,<1.0.466", + "october/backend": "<1.1.2", + "october/cms": "= 1.1.1|= 1.0.471|= 1.0.469|>=1.0.319,<1.0.469", "october/october": ">=1.0.319,<1.0.466", - "october/rain": ">=1.0.319,<1.0.468", + "october/rain": "<1.0.472|>=1.1,<1.1.2", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", - "openmage/magento-lts": "<19.4.6|>=20,<20.0.2", + "openmage/magento-lts": "<=19.4.12|>=20,<=20.0.8", + "orchid/platform": ">=9,<9.4.4", "oro/crm": ">=1.7,<1.7.4", "oro/platform": ">=1.7,<1.7.4", "padraic/humbug_get_contents": "<1.1.2", "pagarme/pagarme-php": ">=0,<3", "paragonie/random_compat": "<2", + "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", - "pear/archive_tar": "<1.4.4", + "pear/archive_tar": "<1.4.12", + "personnummer/personnummer": "<3.0.2", "phpfastcache/phpfastcache": ">=5,<5.0.13", - "phpmailer/phpmailer": "<6.1.6", + "phpmailer/phpmailer": "<6.1.6|>=6.1.8,<6.4.1", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.2", + "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", "phpoffice/phpexcel": "<1.8.2", - "phpoffice/phpspreadsheet": "<1.8", + "phpoffice/phpspreadsheet": "<1.16", + "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<6.3", + "pimcore/pimcore": "<6.8.8", + "pocketmine/pocketmine-mp": "<3.15.4", + "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", + "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", + "prestashop/productcomments": ">=4,<4.2.1", + "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", + "pterodactyl/panel": "<0.7.19|>=1-rc.0,<=1-rc.6", "pusher/pusher-php-server": "<2.2.1", + "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", + "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", "scheb/two-factor-bundle": ">=0,<3.26|>=4,<4.11", "sensiolabs/connect": "<4.2.3", "serluck/phpwhois": "<=4.2.6", - "shopware/shopware": "<5.3.7", + "shopware/core": "<=6.3.5.2", + "shopware/platform": "<=6.3.5.2", + "shopware/production": "<=6.3.5.2", + "shopware/shopware": "<5.6.9", "silverstripe/admin": ">=1.0.3,<1.0.4|>=1.1,<1.1.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", @@ -4269,8 +4258,9 @@ "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", - "smarty/smarty": "<3.1.33", + "smarty/smarty": "<3.1.39", "socalnick/scn-social-auth": "<1.15.2", + "socialiteproviders/steam": "<1.1", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", "ssddanbrown/bookstack": "<0.29.2", @@ -4282,8 +4272,9 @@ "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", "sylius/grid-bundle": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", "sylius/resource-bundle": "<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", - "sylius/sylius": "<1.3.16|>=1.4,<1.4.12|>=1.5,<1.5.9|>=1.6,<1.6.5", + "sylius/sylius": "<1.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3", "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", + "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", "symbiote/silverstripe-versionedfiles": "<=2.0.3", "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", @@ -4293,20 +4284,21 @@ "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", "symfony/http-kernel": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/maker-bundle": ">=1.27,<1.31.1", "symfony/mime": ">=4.3,<4.3.8", "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/polyfill": ">=1,<1.10", "symfony/polyfill-php55": ">=1,<1.10", "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/routing": ">=2,<2.0.19", - "symfony/security": ">=2,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", "symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", - "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", - "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", - "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", "symfony/serializer": ">=2,<2.0.11", - "symfony/symfony": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5", + "symfony/symfony": ">=2,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", "symfony/translation": ">=2,<2.0.17", "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", @@ -4320,19 +4312,25 @@ "titon/framework": ">=0,<9.9.99", "truckersmp/phpwhois": "<=4.3.1", "twig/twig": "<1.38|>=2,<2.7", - "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.30|>=9,<9.5.20|>=10,<10.4.6", - "typo3/cms-core": ">=8,<8.7.30|>=9,<9.5.20|>=10,<10.4.6", - "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5", - "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", + "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.25|>=10,<10.4.14|>=11,<11.1.1", + "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-core": ">=6.2,<=6.2.56|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.25|>=10,<10.4.14|>=11,<11.1.1", + "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", + "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", "ua-parser/uap-php": "<3.8", "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", + "vrana/adminer": "<4.7.9", "wallabag/tcpdf": "<6.2.22", + "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "yii2mod/yii2-cms": "<1.9.2", "yiisoft/yii": ">=1.1.14,<1.1.15", - "yiisoft/yii2": "<2.0.15", + "yiisoft/yii2": "<2.0.38", "yiisoft/yii2-bootstrap": "<2.0.4", "yiisoft/yii2-dev": "<2.0.15", "yiisoft/yii2-elasticsearch": "<2.0.5", @@ -4340,6 +4338,7 @@ "yiisoft/yii2-jui": "<2.0.4", "yiisoft/yii2-redis": "<2.0.8", "yourls/yourls": "<1.7.4", + "zendesk/zendesk_api_client_php": "<2.2.11", "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", @@ -4364,7 +4363,8 @@ "zetacomponents/mail": "<1.8.2", "zf-commons/zfc-user": "<1.2.2", "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", - "zfr/zfr-oauth2-server-module": "<0.1.2" + "zfr/zfr-oauth2-server-module": "<0.1.2", + "zoujingli/thinkadmin": "<6.0.22" }, "type": "metapackage", "notification-url": "https://packagist.org/downloads/", @@ -4384,6 +4384,10 @@ } ], "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, "funding": [ { "url": "https://github.com/Ocramius", @@ -4394,27 +4398,27 @@ "type": "tidelift" } ], - "time": "2020-09-02T19:02:24+00:00" + "time": "2021-05-13T21:03:10+00:00" }, { "name": "sebastian/diff", - "version": "4.0.1", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3e523c576f29dacecff309f35e4cc5a5c168e78a" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3e523c576f29dacecff309f35e4cc5a5c168e78a", - "reference": "3e523c576f29dacecff309f35e4cc5a5c168e78a", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { - "php": "^7.3" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.0", + "phpunit/phpunit": "^9.3", "symfony/process": "^4.2 || ^5" }, "type": "library", @@ -4450,452 +4454,49 @@ "unidiff", "unified diff" ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-05-08T05:01:12+00:00" - }, - { - "name": "slevomat/coding-standard", - "version": "5.0.4", - "source": { - "type": "git", - "url": "https://github.com/slevomat/coding-standard.git", - "reference": "287ac3347c47918c0bf5e10335e36197ea10894c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/287ac3347c47918c0bf5e10335e36197ea10894c", - "reference": "287ac3347c47918c0bf5e10335e36197ea10894c", - "shasum": "" - }, - "require": { - "php": "^7.1", - "phpstan/phpdoc-parser": "^0.3.1", - "squizlabs/php_codesniffer": "^3.4.1" - }, - "require-dev": { - "jakub-onderka/php-parallel-lint": "1.0.0", - "phing/phing": "2.16.1", - "phpstan/phpstan": "0.11.4", - "phpstan/phpstan-phpunit": "0.11", - "phpstan/phpstan-strict-rules": "0.11", - "phpunit/phpunit": "8.0.5" - }, - "type": "phpcodesniffer-standard", - "autoload": { - "psr-4": { - "SlevomatCodingStandard\\": "SlevomatCodingStandard" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", - "time": "2019-03-22T19:10:53+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "3.5.5", + "name": "symfony/browser-kit", + "version": "v4.4.22", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6" + "url": "https://github.com/symfony/browser-kit.git", + "reference": "4c8b42b4aae93517e8f67d68c5cbe69413e3e3c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/73e2e7f57d958e7228fce50dc0c61f58f017f9f6", - "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/4c8b42b4aae93517e8f67d68c5cbe69413e3e3c1", + "reference": "4c8b42b4aae93517e8f67d68c5cbe69413e3e3c1", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" - }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "lead" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards" - ], - "time": "2020-04-17T01:09:41+00:00" - }, - { - "name": "symfony/browser-kit", - "version": "v4.4.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "e4b0dc1b100bf75b5717c5b451397f230a618a42" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/e4b0dc1b100bf75b5717c5b451397f230a618a42", - "reference": "e4b0dc1b100bf75b5717c5b451397f230a618a42", - "shasum": "" - }, - "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/dom-crawler": "^3.4|^4.0|^5.0" }, - "require-dev": { - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/mime": "^4.3|^5.0", - "symfony/process": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "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 BrowserKit 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-28T10:15:50+00:00" - }, - { - "name": "symfony/console", - "version": "v4.4.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", - "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "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": { - "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": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "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 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-03-30T11:41:10+00:00" - }, - { - "name": "symfony/css-selector", - "version": "v4.4.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "afc26133a6fbdd4f8842e38893e0ee4685c7c94b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/afc26133a6fbdd4f8842e38893e0ee4685c7c94b", - "reference": "afc26133a6fbdd4f8842e38893e0ee4685c7c94b", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony CssSelector 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/dom-crawler", - "version": "v5.0.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "892311d23066844a267ac1a903d8a9d79968a1a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/892311d23066844a267ac1a903d8a9d79968a1a7", - "reference": "892311d23066844a267ac1a903d8a9d79968a1a7", - "shasum": "" - }, - "require": { - "php": "^7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "masterminds/html5": "<2.6" - }, - "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^4.4|^5.0" - }, - "suggest": { - "symfony/css-selector": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "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 DomCrawler 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-30T11:42:42+00:00" - }, - { - "name": "symfony/phpunit-bridge", - "version": "v4.4.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "fa585895dccc34afb32b7e7e01761e412ee7a987" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/fa585895dccc34afb32b7e7e01761e412ee7a987", - "reference": "fa585895dccc34afb32b7e7e01761e412ee7a987", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" - }, - "suggest": { - "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + "require-dev": { + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" }, - "bin": [ - "bin/simple-phpunit" - ], - "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - }, - "thanks": { - "name": "phpunit/phpunit", - "url": "https://github.com/sebastianbergmann/phpunit" - } + "suggest": { + "symfony/process": "" }, + "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Bridge\\PhpUnit\\": "" + "Symfony\\Component\\BrowserKit\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -4907,16 +4508,19 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony PHPUnit Bridge", + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v4.4.22" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -4931,41 +4535,62 @@ "type": "tidelift" } ], - "time": "2020-04-28T17:55:16+00:00" + "time": "2021-04-08T07:40:10+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.17.0", + "name": "symfony/console", + "version": "v5.2.8", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "82225c2d7d23d7e70515496d249c0152679b468e" + "url": "https://github.com/symfony/console.git", + "reference": "864568fdc0208b3eba3638b6000b69d2386e6768" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/82225c2d7d23d7e70515496d249c0152679b468e", - "reference": "82225c2d7d23d7e70515496d249c0152679b468e", + "url": "https://api.github.com/repos/symfony/console/zipball/864568fdc0208b3eba3638b6000b69d2386e6768", + "reference": "864568fdc0208b3eba3638b6000b69d2386e6768", "shasum": "" }, "require": { - "paragonie/random_compat": "~1.0|~2.0|~9.99", - "php": ">=5.3.3" + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.17-dev" - } + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "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" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" + "Symfony\\Component\\Console\\": "" }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4974,22 +4599,25 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "cli", + "command line", + "console", + "terminal" ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5004,34 +4632,29 @@ "type": "tidelift" } ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2021-05-11T15:45:21+00:00" }, { - "name": "symfony/process", - "version": "v5.0.8", + "name": "symfony/css-selector", + "version": "v4.4.22", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "3179f68dff5bad14d38c4114a1dab98030801fd7" + "url": "https://github.com/symfony/css-selector.git", + "reference": "01c77324d1d47efbfd7891f62a7c256c69330115" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3179f68dff5bad14d38c4114a1dab98030801fd7", - "reference": "3179f68dff5bad14d38c4114a1dab98030801fd7", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/01c77324d1d47efbfd7891f62a7c256c69330115", + "reference": "01c77324d1d47efbfd7891f62a7c256c69330115", "shasum": "" }, "require": { - "php": "^7.2.5" + "php": ">=7.1.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Component\\Process\\": "" + "Symfony\\Component\\CssSelector\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -5046,13 +4669,20 @@ "name": "Fabien Potencier", "email": "fabien@symfony.com" }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v4.4.22" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5067,35 +4697,42 @@ "type": "tidelift" } ], - "time": "2020-04-15T15:59:10+00:00" + "time": "2021-04-07T15:47:03+00:00" }, { - "name": "symfony/stopwatch", - "version": "v5.0.8", + "name": "symfony/dom-crawler", + "version": "v5.2.4", "source": { "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "a1d86d30d4522423afc998f32404efa34fcf5a73" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "400e265163f65aceee7e904ef532e15228de674b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/a1d86d30d4522423afc998f32404efa34fcf5a73", - "reference": "a1d86d30d4522423afc998f32404efa34fcf5a73", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/400e265163f65aceee7e904ef532e15228de674b", + "reference": "400e265163f65aceee7e904ef532e15228de674b", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/service-contracts": "^1.0|^2" + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^4.4|^5.0" + }, + "suggest": { + "symfony/css-selector": "" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" + "Symfony\\Component\\DomCrawler\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -5115,8 +4752,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Stopwatch Component", + "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v5.2.4" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5131,196 +4771,138 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:56:45+00:00" + "time": "2021-02-15T18:55:04+00:00" }, { - "name": "symplify/coding-standard", - "version": "v6.1.0", + "name": "symfony/phpunit-bridge", + "version": "v4.4.22", "source": { "type": "git", - "url": "https://github.com/symplify/coding-standard.git", - "reference": "d692701e2c74edd8c0cc7c35f47b8421b8b4885c" + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "7eab287c89dd8e7c7550cb984b4a9dead9336b14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symplify/coding-standard/zipball/d692701e2c74edd8c0cc7c35f47b8421b8b4885c", - "reference": "d692701e2c74edd8c0cc7c35f47b8421b8b4885c", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/7eab287c89dd8e7c7550cb984b4a9dead9336b14", + "reference": "7eab287c89dd8e7c7550cb984b4a9dead9336b14", "shasum": "" }, "require": { - "friendsofphp/php-cs-fixer": "^2.15", - "nette/finder": "^2.4", - "nette/utils": "^2.5|^3.0", - "php": "^7.1", - "phpstan/phpdoc-parser": "^0.3.4", - "squizlabs/php_codesniffer": "^3.4", - "symplify/package-builder": "^6.1" + "php": ">=5.5.9" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" }, "require-dev": { - "nette/application": "^3.0", - "phpunit/phpunit": "^7.5|^8.0", - "symplify/easy-coding-standard-tester": "^6.1", - "symplify/package-builder": "^6.1" + "symfony/error-handler": "^4.4|^5.0" }, - "type": "library", + "suggest": { + "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", "extra": { - "branch-alias": { - "dev-master": "6.1-dev" + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symplify\\CodingStandard\\": "src", - "Symplify\\CodingStandard\\TokenRunner\\": "packages/TokenRunner/src" - } + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Set of Symplify rules for PHP_CodeSniffer and PHP CS Fixer.", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v4.4.22" + }, "funding": [ { - "url": "https://github.com/tomasvotruba", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://www.patreon.com/rectorphp", - "type": "patreon" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2019-09-18T08:01:34+00:00" + "time": "2021-04-09T14:31:01+00:00" }, { "name": "symplify/easy-coding-standard", - "version": "v6.1.0", + "version": "v9.3.11", "source": { "type": "git", "url": "https://github.com/symplify/easy-coding-standard.git", - "reference": "94b8cf03af132d007d8a33c8dad5655cff6a74e8" + "reference": "634da6abea9e7f9b4489d8bd313227c968c94d2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symplify/easy-coding-standard/zipball/94b8cf03af132d007d8a33c8dad5655cff6a74e8", - "reference": "94b8cf03af132d007d8a33c8dad5655cff6a74e8", + "url": "https://api.github.com/repos/symplify/easy-coding-standard/zipball/634da6abea9e7f9b4489d8bd313227c968c94d2c", + "reference": "634da6abea9e7f9b4489d8bd313227c968c94d2c", "shasum": "" }, "require": { - "composer/xdebug-handler": "^1.3", - "friendsofphp/php-cs-fixer": "^2.15", - "jean85/pretty-package-versions": "^1.2", - "nette/robot-loader": "^3.1.0", - "nette/utils": "^2.5|^3.0", - "ocramius/package-versions": "^1.3", - "php": "^7.1", - "psr/simple-cache": "^1.0", - "slevomat/coding-standard": "^5.0.1", - "squizlabs/php_codesniffer": "^3.4", - "symfony/cache": "^3.4|^4.3", - "symfony/config": "^3.4|^4.3", - "symfony/console": "^3.4|^4.3", - "symfony/dependency-injection": "^3.4.10|^4.2", - "symfony/finder": "^3.4|^4.3", - "symfony/http-kernel": "^3.4|^4.3", - "symfony/yaml": "^3.4|^4.3", - "symplify/coding-standard": "^6.1", - "symplify/package-builder": "^6.1" + "php": ">=7.1" }, - "require-dev": { - "phpunit/phpunit": "^7.5|^8.0", - "symplify/easy-coding-standard-tester": "^6.1" + "conflict": { + "friendsofphp/php-cs-fixer": "<3.0", + "squizlabs/php_codesniffer": "<3.6" + }, + "replace": { + "friendsofphp/php-cs-fixer": "^3.0", + "squizlabs/php_codesniffer": "^3.6" }, "bin": [ "bin/ecs" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symplify\\EasyCodingStandard\\": "src", - "Symplify\\EasyCodingStandard\\ChangedFilesDetector\\": "packages/ChangedFilesDetector/src", - "Symplify\\EasyCodingStandard\\Configuration\\": "packages/Configuration/src", - "Symplify\\EasyCodingStandard\\FixerRunner\\": "packages/FixerRunner/src", - "Symplify\\EasyCodingStandard\\SniffRunner\\": "packages/SniffRunner/src" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Use Coding Standard with 0-knowledge of PHP-CS-Fixer and PHP_CodeSniffer.", + "description": "Prefixed scoped version of ECS package", + "support": { + "source": "https://github.com/symplify/easy-coding-standard/tree/v9.3.11" + }, "funding": [ { - "url": "https://github.com/tomasvotruba", - "type": "github" + "url": "https://www.paypal.me/rectorphp", + "type": "custom" }, - { - "url": "https://www.patreon.com/rectorphp", - "type": "patreon" - } - ], - "time": "2019-09-14T22:46:23+00:00" - }, - { - "name": "symplify/package-builder", - "version": "v6.1.0", - "source": { - "type": "git", - "url": "https://github.com/symplify/package-builder.git", - "reference": "fbdfe363a27070cfdfbc47d5f59e711ed08bb060" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symplify/package-builder/zipball/fbdfe363a27070cfdfbc47d5f59e711ed08bb060", - "reference": "fbdfe363a27070cfdfbc47d5f59e711ed08bb060", - "shasum": "" - }, - "require": { - "nette/finder": "^2.4", - "nette/utils": "^2.5|^3.0", - "php": "^7.1", - "symfony/config": "^3.4|^4.3", - "symfony/console": "^3.4|^4.3", - "symfony/debug": "^3.4|^4.3", - "symfony/dependency-injection": "^3.4.10|^4.2", - "symfony/finder": "^3.4|^4.3", - "symfony/http-kernel": "^3.4|^4.3", - "symfony/yaml": "^3.4|^4.3" - }, - "require-dev": { - "phpunit/phpunit": "^7.5|^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symplify\\PackageBuilder\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Dependency Injection, Console and Kernel toolkit for Symplify packages.", - "funding": [ { "url": "https://github.com/tomasvotruba", "type": "github" - }, - { - "url": "https://www.patreon.com/rectorphp", - "type": "patreon" } ], - "time": "2019-09-17T20:48:03+00:00" + "time": "2021-05-13T11:38:11+00:00" }, { "name": "vimeo/psalm", @@ -5328,56 +4910,60 @@ "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "dd4927a14c155b239670e2b5e95183230f8f0700" + "reference": "6501ca7b954f721adc765e1ec0ca0a011f78ca9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/dd4927a14c155b239670e2b5e95183230f8f0700", - "reference": "dd4927a14c155b239670e2b5e95183230f8f0700", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/6501ca7b954f721adc765e1ec0ca0a011f78ca9f", + "reference": "6501ca7b954f721adc765e1ec0ca0a011f78ca9f", "shasum": "" }, "require": { - "amphp/amp": "^2.1", + "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", - "composer/semver": "^1.4", - "composer/xdebug-handler": "^1.1", + "composer/package-versions-deprecated": "^1.8.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.1 || ^2.0", + "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", + "ext-mbstring": "*", "ext-simplexml": "*", "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", + "felixfbecker/language-server-protocol": "^1.5", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.10.5", "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", "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": "*", - "php-coveralls/php-coveralls": "^2.2", - "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.10", - "slevomat/coding-standard": "^5.0", + "phpunit/phpunit": "^9.0", + "psalm/plugin-phpunit": "^0.13", + "slevomat/coding-standard": "^7.0", "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3" + "symfony/process": "^4.3", + "weirdan/phpunit-appveyor-reporter": "^1.0.0", + "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "suggest": { "ext-igbinary": "^2.0.5" }, + "default-branch": true, "bin": [ "psalm", "psalm-language-server", @@ -5388,7 +4974,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" } @@ -5417,33 +5004,43 @@ "inspection", "php" ], - "time": "2020-05-16T20:44:47+00:00" + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/master" + }, + "time": "2021-05-15T11:19:18+00:00" }, { "name": "webmozart/assert", - "version": "1.8.0", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" + "url": "https://github.com/webmozarts/assert.git", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/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/" @@ -5465,54 +5062,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/webmozart/glob.git", - "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/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", @@ -5558,6 +5112,10 @@ } ], "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" + }, "time": "2015-12-17T08:42:14+00:00" } ], @@ -5570,9 +5128,9 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "~7.4", + "php": "8.*", "ext-json": "*" }, "platform-dev": [], - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.0.0" } diff --git a/phpunit.xml b/phpunit.xml index f89de3e..492d11d 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -14,6 +14,7 @@ + diff --git a/psalm.xml b/psalm.xml index 2ff18ef..298fafa 100644 --- a/psalm.xml +++ b/psalm.xml @@ -11,10 +11,10 @@ xmlns="https://getpsalm.org/schema/config" xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd" > - - - - + + + + @@ -48,4 +48,8 @@ + + + + diff --git a/src/Accessor/AbstractMapper.php b/src/Accessor/AbstractMapper.php index 2e65da2..47cadc6 100644 --- a/src/Accessor/AbstractMapper.php +++ b/src/Accessor/AbstractMapper.php @@ -13,11 +13,8 @@ abstract class AbstractMapper implements MapperInterface { - protected Comparator $comparator; - - public function __construct(Comparator $comparator) + public function __construct(protected Comparator $comparator) { - $this->comparator = $comparator; } /** @@ -75,11 +72,10 @@ protected function doCall(ReflectionFunction $reflectionFunction, ...$values) return $reflectionFunction->invoke(...$values); } catch (Error $e) { $message = $e->getMessage(); - if (strpos($message, 'must not be accessed before initialization') !== false) { + if (str_contains($message, 'must not be accessed before initialization')) { return null; } throw $e; } - } } diff --git a/src/Accessor/Accessor.php b/src/Accessor/Accessor.php deleted file mode 100644 index 810c45a..0000000 --- a/src/Accessor/Accessor.php +++ /dev/null @@ -1,201 +0,0 @@ -comparator = $comparator; - } - - /** - * @param mixed $data - * - * @return mixed - */ - public function read(Closure $getter, $data, bool $isCollection) - { - $reflection = new ReflectionFunction($getter); - $params = $reflection->getParameters(); - - $firstParam = $params[0] ?? null; - // if no first param and no data, still make a call to getter; useful with `$builder->getData()` and arrow functions. - if (null === $firstParam && null === $data) { - return $getter(); - } - - // still no data (example: factory failure) but nullable is not allowed; return default as well - if (null === $data && !$firstParam->allowsNull()) { - return $this->getDefault($isCollection); - } - - return $getter($data); - } - - /** - * @param mixed $data - * @param Closure|SubmittedData $getter - * @param mixed $submittedData - */ - public function write(callable $compare, $getter, Closure $updater, $data, $submittedData): bool - { - /** @var array|object|null $originalValue */ - $originalValue = $getter instanceof SubmittedData ? $getter->getStore() : $this->read($getter, $data, false); - - $reflection = new ReflectionFunction($updater); - if ($this->isEqual($compare, $originalValue, $submittedData)) { - return true; - } - - return $this->submit($data, $submittedData, $reflection); - } - - /** - * @param mixed $data - * @param Closure|SubmittedData $getter - * @param iterable $submittedData - * @param Closure(mixed, object|array|null): void $adder - * @param Closure(mixed, object|array|null): void $remover - */ - public function writeCollection(callable $compare, $getter, Closure $adder, Closure $remover, $data, iterable $submittedData): bool - { - /** @var iterable $originalValues */ - $originalValues = $getter instanceof SubmittedData ? $getter->getStore() : $this->read($getter, $data, true); - - $originalValues = $this->iterableToArray($originalValues); - $submittedData = $this->iterableToArray($submittedData); - - $toAdd = $this->getExtraValues($compare, $originalValues, $submittedData); - $toRemove = $this->getExtraValues($compare, $submittedData, $originalValues); - $adderReflection = new ReflectionFunction($adder); - $removerReflection = new ReflectionFunction($remover); - - foreach ($toAdd as $item) { - $this->submit($data, $item, $adderReflection); - } - foreach ($toRemove as $item) { - $this->submit($data, $item, $removerReflection); - } - - return true; - } - - /** - * @param mixed $data - * @param mixed $submittedData - */ - private function submit($data, $submittedData, ReflectionFunction $reflection): bool - { - $params = $reflection->getParameters(); - - // if there are no params, do not make a call. - if (0 === count($params)) { - return false; - } - // if closure doesn't have params, it is equivalent of mapped: false but only for writer - $firstParam = $params[0] ?? null; - if (!$firstParam) { - return false; - } - $type = $firstParam->getType(); - - // first param does not accept submitted null value; do not submit it - if (null === $submittedData && $type && !$type->allowsNull()) { - return false; - } - - $secondParam = $params[1] ?? null; - - // user doesn't need base data; form can still be submitted - if (!$secondParam) { - $reflection->invoke($submittedData); - - return true; - } - - if (null === $data && !$secondParam->allowsNull()) { - return false; - } - - $reflection->invoke($submittedData, $data); - - return true; - } - - /** - * @param array $originalValues - * @param array $submittedValues - * - * @return array - */ - private function getExtraValues(callable $compare, array $originalValues, array $submittedValues): array - { - /** @var array $extraValues */ - $extraValues = []; - foreach ($submittedValues as $key => $value) { - $searchKey = array_search($value, $originalValues, true); - - if (false === $searchKey || $key !== $searchKey || !$this->isEqual($compare, $submittedValues[$searchKey], $value)) { - $extraValues[$key] = $value; - } - } - - return $extraValues; - } - - /** - * @param mixed $first - * @param mixed $second - */ - private function isEqual(callable $compare, $first, $second): bool - { - if ($compare($first, $second) === true) { - return true; - } - - return $this->comparator->isEqual($first, $second); - } - - /** - * @return mixed - */ - private function getDefault(bool $isCollection) - { - return $isCollection ? [] : null; - } - - /** - * @template T - * - * @psalm-param iterable|null $iterable - * - * @psalm-return array - */ - private function iterableToArray($iterable): array - { - if (null === $iterable) { - return []; - } - if ($iterable instanceof Traversable) { - return iterator_to_array($iterable, true); - } - - return $iterable; - } -} diff --git a/src/DataMapper/StrictFormMapper.php b/src/DataMapper/StrictFormMapper.php index f86a008..600b0b9 100644 --- a/src/DataMapper/StrictFormMapper.php +++ b/src/DataMapper/StrictFormMapper.php @@ -6,16 +6,14 @@ use Closure; use Strictify\FormMapper\Types; -use Strictify\FormMapper\VO\SubmittedData; use Strictify\FormMapper\Service\Comparator; use Symfony\Component\Form\DataMapperInterface; use Strictify\FormMapper\Accessor\MapperInterface; use Strictify\FormMapper\Accessor\CollectionMapper; use Strictify\FormMapper\Accessor\SingleValueMapper; -use Symfony\Component\Form\Extension\Core\DataMapper\PropertyPathMapper; +use Symfony\Component\Form\Extension\Core\DataMapper\DataMapper; /** - * @see SubmittedData * * @psalm-import-type O from Types * @@ -31,8 +29,7 @@ class StrictFormMapper implements DataMapperInterface public function __construct(?DataMapperInterface $defaultMapper, Comparator $comparator) { - /** @noinspection PhpFieldAssignmentTypeMismatchInspection */ - $this->defaultMapper = $defaultMapper ?: new PropertyPathMapper(); + $this->defaultMapper = $defaultMapper ?: new DataMapper(); $this->singleValueMapper = new SingleValueMapper($comparator); $this->collectionMapper = new CollectionMapper($comparator); } diff --git a/src/Extension/FactoryExtension.php b/src/Extension/FactoryExtension.php index 51b620a..f8a501d 100644 --- a/src/Extension/FactoryExtension.php +++ b/src/Extension/FactoryExtension.php @@ -7,9 +7,7 @@ use Closure; use ReflectionFunction; use ReflectionParameter; -use Doctrine\Instantiator\Instantiator; use Symfony\Component\Form\FormInterface; -use Strictify\FormMapper\VO\SubmittedData; use Symfony\Component\OptionsResolver\Options; use Symfony\Component\Form\AbstractTypeExtension; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -38,29 +36,15 @@ public function configureOptions(OptionsResolver $resolver): void $resolver->addAllowedTypes('factory', ['null', Closure::class]); $resolver->addAllowedTypes('show_factory_error', ['bool']); - $resolver->setNormalizer('empty_data', /** @param mixed $default */ function (Options $options, $default) { + $resolver->setNormalizer('empty_data', /** @param mixed $default */ function (Options $options, mixed $default) { /** @var Closure|null $factory */ $factory = $options['factory']; - /** @var SubmittedData $store */ - - // if user hasn't defined "factory", improve existing empty_data with Instantiator component; we need to skip constructor - if (!$factory) { - /** @var string|null $class */ - $class = $options['data_class']; - if (null !== $class) { - return function (FormInterface $form) use ($class) { - return $form->isEmpty() && !$form->isRequired() ? null : (new Instantiator())->instantiate($class); - }; - } - - return $default; - } - return $this->createEmptyDataClosure($factory); + return $factory ? $this->createEmptyDataWrapper($factory) : $default; }); } - private function createEmptyDataClosure(Closure $factory): Closure + private function createEmptyDataWrapper(Closure $factory): Closure { return function (FormInterface $form) use ($factory) { // we store the value of `empty_data` result. Multiple calls will return same result, thus preventing creation of multiple entities @@ -79,7 +63,7 @@ private function createEmptyDataClosure(Closure $factory): Closure $data = $factory(...$arguments); return $data; - } catch (FactoryExceptionInterface $e) { + } catch (FactoryExceptionInterface) { return null; } }; @@ -92,7 +76,7 @@ private function getFactoryArguments(FormInterface $form, Closure $factory): arr foreach ($reflection->getParameters() as $parameter) { $arguments[] = $this->getFormValue($form, $parameter); } - + return $arguments; } @@ -106,39 +90,10 @@ private function getFormValue(FormInterface $form, ReflectionParameter $paramete if ($type && $type->implementsInterface(FormInterface::class)) { return $form; } - // special name; this will retrieve data of parent class (although technically it is grandparent) - if ($name === 'parent') { - $parent = $form->getParent(); - if (!$parent || !$grandParent = $parent->getParent()) { - throw new MissingFactoryFieldException('No parent form.'); - } - /** @var Closure $emptyData */ - $emptyData = $grandParent->getConfig()->getOption('empty_data'); - /** @psalm-var mixed $caller */ - $parentData = $emptyData($grandParent); - if (null === $parentData && !$parameter->allowsNull()) { - throw new MissingFactoryFieldException('Parent cannot be null.'); - } - - return $parentData; - } + // Factory parameter is not submitted, or there is a typo; try to find best match and throw exception. if (!$form->has($name)) { - $bestMatch = 0; - $bestName = null; - $all = array_keys($form->all()); - foreach ($all as $child) { - similar_text((string)$child, $name, $percent); - if ($percent > $bestMatch) { - $bestName = $child; - $bestMatch = $percent; - } - } - $error = sprintf('Missing field "%s".', $name); - if ($bestName) { - $error .= sprintf('Did you mean "%s"?', $bestName); - } - throw new InvalidFactorySignatureException($error); + throw $this->createInvalidFactorySignatureException($form, $name); } /** @psalm-var mixed $value */ @@ -153,4 +108,24 @@ private function getFormValue(FormInterface $form, ReflectionParameter $paramete return $value; } + + private function createInvalidFactorySignatureException(FormInterface $form, string $name): InvalidFactorySignatureException + { + $bestMatch = 0; + $bestName = null; + $all = array_keys($form->all()); + foreach ($all as $child) { + similar_text((string)$child, $name, $percent); + if ($percent > $bestMatch) { + $bestName = $child; + $bestMatch = $percent; + } + } + $error = sprintf('Missing field "%s".', $name); + if ($bestName) { + $error .= sprintf(' Did you mean "%s"?', $bestName); + } + + return new InvalidFactorySignatureException($error); + } } diff --git a/src/Extension/MapperExtension.php b/src/Extension/MapperExtension.php index ed8b1c8..c966d5e 100644 --- a/src/Extension/MapperExtension.php +++ b/src/Extension/MapperExtension.php @@ -47,9 +47,7 @@ public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'get_value' => null, - 'update_value' => /** @param mixed $data */ function ($data) { - throw new MissingOptionsException('You have to create "update_value" callback.'); - }, + 'update_value' => /** @param mixed $data */ fn ($data) => throw new MissingOptionsException('You have to create "update_value" callback.'), 'add_value' => fn() => null, 'remove_value' => fn() => null, 'compare' => diff --git a/src/VO/SubmittedData.php b/src/VO/SubmittedData.php index 3890ffa..332be84 100644 --- a/src/VO/SubmittedData.php +++ b/src/VO/SubmittedData.php @@ -9,7 +9,6 @@ */ class SubmittedData { - private bool $isSet = false; /** diff --git a/tests/AbstractTypeTestCase.php b/tests/AbstractTypeTestCase.php index ec29890..2e2587f 100644 --- a/tests/AbstractTypeTestCase.php +++ b/tests/AbstractTypeTestCase.php @@ -4,12 +4,16 @@ namespace Strictify\FormMapper\Tests; -use Strictify\FormMapper\Extension\FactoryExtension; -use Strictify\FormMapper\Extension\MapperExtension; +use Symfony\Component\Form\FormInterface; +use Symfony\Component\Validator\Validation; +use Strictify\FormMapper\Service\Comparator; +use Symfony\Component\Form\Test\TypeTestCase; use Strictify\FormMapper\Tests\Fixture\Factory; +use Strictify\FormMapper\Extension\MapperExtension; +use Strictify\FormMapper\Tests\Fixture\Entity\User; +use Strictify\FormMapper\Extension\FactoryExtension; +use Strictify\FormMapper\Tests\Fixture\Form\UserTestType; use Symfony\Component\Form\Extension\Validator\ValidatorExtension; -use Symfony\Component\Form\Test\TypeTestCase; -use Symfony\Component\Validator\Validation; abstract class AbstractTypeTestCase extends TypeTestCase { @@ -18,7 +22,7 @@ abstract class AbstractTypeTestCase extends TypeTestCase */ protected function getTypeExtensions(): array { - $comparator = Factory::createComparator(); + $comparator = new Comparator([new Comparator\DateTimeDataComparator()]); return [ new FactoryExtension(), @@ -39,4 +43,23 @@ protected function getExtensions(): array new ValidatorExtension($validator), ]; } + + /** + * @return array{0: User, 1: FormInterface} + */ + protected function createUserData() + { + $user = Factory::createUser(); + $form = $this->createUserForm($user); + + return [$user, $form]; + } + + /** + * @return FormInterface + */ + protected function createUserForm(?User $user = null): FormInterface + { + return $this->factory->createBuilder(UserTestType::class, $user)->getForm(); + } } diff --git a/tests/Accessor/ReaderTest.php b/tests/Accessor/ReaderTest.php deleted file mode 100644 index ca21df4..0000000 --- a/tests/Accessor/ReaderTest.php +++ /dev/null @@ -1,74 +0,0 @@ -user = new User('Bruce', 'Willis'); - $this->accessor = Factory::createAccessor(); - } - - /** - * Data exists; run callable. - */ - public function testSimple(): void - { - $user = $this->user; - $getter = fn (User $user) => 'abc'; - $value = $this->accessor->read($getter, $user, false); - self::assertEquals('abc', $value); - } - - /** - * No data; return default of `null` for non-collection field. - */ - public function testNullDataAndTypehintedGetter(): void - { - $getter = fn (User $user) => 'abc'; - $value = $this->accessor->read($getter, null, false); - self::assertNull($value); - } - - /** - * If missing first param, make a call. Useful when $builder->getData() is used. - */ - public function testDefaultWhenMissingFirstParam(): void - { - $getter = fn () => 'abc'; - $value = $this->accessor->read($getter, null, false); - self::assertEquals('abc', $value); - } - - /** - * Useful for setting default value when data still doesn't exist. - */ - public function testNullableTypehint(): void - { - $getter = fn (?User $user) => 'abc'; - $value = $this->accessor->read($getter, null, false); - self::assertEquals('abc', $value); - } - - public function testSimpleCollection(): void - { - $getter = fn (User $user) => 'abc'; - $value = $this->accessor->read($getter, null, true); - self::assertIsArray($value); - } -} diff --git a/tests/Accessor/WriteCollectionTest.php b/tests/Accessor/WriteCollectionTest.php deleted file mode 100644 index 355384b..0000000 --- a/tests/Accessor/WriteCollectionTest.php +++ /dev/null @@ -1,131 +0,0 @@ -accessor = Factory::createAccessor(); - - $this->dieHard = new Movie('Die hard'); - $this->pulpFiction = new Movie('Pulp fiction'); - $this->user = new User('Bruce', 'Willis', [$this->dieHard, $this->pulpFiction]); - } - - public function testSimple(): void - { - $user = $this->user; - $this->callOnMock($user, [$this->dieHard, $this->pulpFiction]); - $favoriteMovie = $user->getFavoriteMovies(); - self::assertEquals([$this->dieHard, $this->pulpFiction], $favoriteMovie); - } - - public function testRemovedOne(): void - { - $user = $this->user; - $this->callOnMock($user, new ArrayObject([$this->dieHard])); - $favoriteMovie = $user->getFavoriteMovies(); - self::assertEquals([$this->dieHard], $favoriteMovie); - } - - /** - * When same values are submitted, adder and remover must not be called. - */ - public function testAdderAndRemoverWereNotCalled(): void - { - $mock = $this->getUserMock(); - $mock->expects($this->never()) - ->method('addFavoriteMovie'); - $mock->expects($this->never()) - ->method('removeFavoriteMovie'); - - $this->callOnMock($mock, [$this->dieHard, $this->pulpFiction]); - } - - public function testSupportForTraversable(): void - { - $looper = new Movie('Looper'); - $mock = $this->getUserMock(); - $mock->expects($this->once()) - ->method('addFavoriteMovie') - ->with($looper); - - $mock->expects($this->never()) - ->method('removeFavoriteMovie'); - - $this->callOnMock($mock, new ArrayObject([$this->dieHard, $this->pulpFiction, $looper])); - } - - public function testOnlyAdderCalled(): void - { - $mock = $this->getUserMock(); - $mock->expects($this->once()) - ->method('addFavoriteMovie'); - $mock->expects($this->never()) - ->method('removeFavoriteMovie'); - - $this->callOnMock($mock, [$this->dieHard, $this->pulpFiction, new Movie('Looper')]); - } - - public function testOnlyRemoverCalled(): void - { - $mock = $this->getUserMock(); - $mock->expects($this->never()) - ->method('addFavoriteMovie'); - $mock->expects($this->once()) - ->method('removeFavoriteMovie') - ->with($this->dieHard) - ; - - $this->callOnMock($mock, [1 => $this->pulpFiction]); - } - - private function getUserMock() - { - $mock = $this->createMock(User::class); - $mock->expects($this->atMost(2)) - ->method('getFavoriteMovies') - ->willReturn(new ArrayObject([$this->dieHard, $this->pulpFiction])); - - return $mock; - } - - private function callOnMock($mock, iterable $movies): void - { - [$compare, $getter, $adder, $remover] = $this->getCallbacks(); - $this->accessor->writeCollection($compare, $getter, $adder, $remover, $mock, $movies); - } - - /** - * @return Closure[] - */ - private function getCallbacks(): array - { - return [ - fn($default, $submitted) => $default === $submitted, - fn (User $user) => $user->getFavoriteMovies(), - fn (Movie $movie, User $user) => $user->addFavoriteMovie($movie), - fn (Movie $movie, User $user) => $user->removeFavoriteMovie($movie), - ]; - } -} diff --git a/tests/Accessor/WriteTest.php b/tests/Accessor/WriteTest.php deleted file mode 100644 index cf45881..0000000 --- a/tests/Accessor/WriteTest.php +++ /dev/null @@ -1,108 +0,0 @@ -user = new User('Bruce', 'Willis'); - $this->accessor = Factory::createAccessor(); - } - - public function testSimple(): void - { - $user = $this->user; - [$compare, $getter, $updater] = $this->getterAndUpdater(); - $this->accessor->write($compare, $getter, $updater, $user, 'John'); - self::assertEquals('John', $user->getFirstName()); - } - - public function testUpdaterCalledOnce(): void - { - $user = $this->createMock(User::class); - $user->expects($this->once()) - ->method('getFirstName') - ->willReturn('Bruce'); - - $user->expects($this->once()) - ->method('changeFirstName'); - - $this->callOnMock($user, 'John'); - } - - /** - * If the original and submitted values are the same, do not call `update_value`. - */ - public function testUpdaterNotCalledForSameValue(): void - { - $user = $this->createMock(User::class); - $user->expects($this->once()) - ->method('getFirstName') - ->willReturn('Bruce'); - - $user->expects($this->never()) - ->method('changeFirstName'); - - $this->callOnMock($user, 'Bruce'); - } - - /** - * When there is no param in $writer, just ignore the call. - */ - public function testMissingParams(): void - { - $user = $this->user; - [$compare, $getter] = $this->getterAndUpdater(); - $updater = function () { - $this->fail('This should have not been called.'); - }; - $this->accessor->write($compare, $getter, $updater, $user, 'John'); - self::assertEquals('Bruce', $user->getFirstName()); - } - - /** - * When typehint is missing, still make a call but create E_USER_WARNING. - */ - public function testMissingTypehint(): void - { - $user = $this->user; - [$compare, $getter] = $this->getterAndUpdater(); - $updater = /** @param string $firstName */ fn ($firstName, User $user) => $user->changeFirstName($firstName); - $this->accessor->write($compare, $getter, $updater, $user, 'John'); - self::assertEquals('John', $user->getFirstName()); - } - - private function callOnMock($mock, $submittedData): void - { - [$compare, $getter, $updater] = $this->getterAndUpdater(); - $this->accessor->write($compare, $getter, $updater, $mock, $submittedData); - } - - /** - * @return Closure[] - */ - private function getterAndUpdater(): array - { - return [ - fn($default, $submitted) => $default === $submitted, - fn (User $user) => $user->getFirstName(), - fn (string $firstName, User $user) => $user->changeFirstName($firstName), - ]; - } -} diff --git a/tests/Extension/Factory/FactoryTest.php b/tests/Extension/Factory/FactoryTest.php index ff16f5f..321ab58 100644 --- a/tests/Extension/Factory/FactoryTest.php +++ b/tests/Extension/Factory/FactoryTest.php @@ -4,11 +4,10 @@ namespace Strictify\FormMapper\Tests\Extension\Factory; -use Closure; -use Strictify\FormMapper\Tests\AbstractTypeTestCase; +use stdClass; +use TypeError; use Strictify\FormMapper\Tests\Fixture\Entity\User; -use Symfony\Component\Form\Extension\Core\Type\FormType; -use Symfony\Component\Form\FormInterface; +use Strictify\FormMapper\Tests\AbstractTypeTestCase; class FactoryTest extends AbstractTypeTestCase { @@ -31,6 +30,7 @@ public function testInvalidLastName(): void $form = $this->createUserForm(); $form->submit(['firstName' => 'Bruce', 'lastName' => null]); self::assertFalse($form->isValid()); + self::assertNull($form->getData()); } /** @@ -43,31 +43,15 @@ public function testMissingField(): void self::assertFalse($form->isValid()); } - public function testFormInterfaceIsInjected(): void - { - $factory = fn (FormInterface $form, string $lastName) => new User($form->get('firstName')->getData(), $lastName); - $form = $this->createUserForm($factory); - $form->submit(['firstName' => 'Bruce', 'lastName' => 'Wick']); - self::assertTrue($form->isValid()); - } - /** - * This test if just for factory, accessors are irrelevant. + * Assert that incorrect type submitted will trigger TypeError exception, instead of converting it to validation error. + * + * Users have to use static analysis. */ - private function createUserForm(?Closure $factory = null): FormInterface + public function testTypeErrorException(): void { - if (!$factory) { - $factory = fn (string $firstName, string $lastName) => new User($firstName, $lastName); - } - $builder = $this->factory->createBuilder(FormType::class, null, ['factory' => $factory]); - $builder->add('firstName', null, [ - 'mapped' => false, - ]); - - $builder->add('lastName', null, [ - 'mapped' => false, - ]); - - return $builder->getForm(); + $this->expectException(TypeError::class); + $form = $this->createUserForm(); + $form->submit(['firstName' => 'Bruce', 'lastName' => new stdClass()]); } } diff --git a/tests/Extension/Mapper/CollectionTest.php b/tests/Extension/Mapper/CollectionTest.php index 695f467..066c120 100644 --- a/tests/Extension/Mapper/CollectionTest.php +++ b/tests/Extension/Mapper/CollectionTest.php @@ -4,18 +4,15 @@ namespace Strictify\FormMapper\Tests\Extension\Mapper; -use Strictify\FormMapper\Accessor\Accessor; +use Symfony\Component\Form\FormInterface; +use Strictify\FormMapper\Tests\Fixture\Entity\User; use Strictify\FormMapper\Tests\AbstractTypeTestCase; use Strictify\FormMapper\Tests\Fixture\Entity\Movie; -use Strictify\FormMapper\Tests\Fixture\Entity\User; -use Strictify\FormMapper\Tests\Fixture\Factory; -use Symfony\Component\Form\Extension\Core\Type\CollectionType; use Symfony\Component\Form\Extension\Core\Type\FormType; -use Symfony\Component\Form\FormInterface; +use Symfony\Component\Form\Extension\Core\Type\CollectionType; class CollectionTest extends AbstractTypeTestCase { - private Accessor $accessor; private Movie $dieHard; private Movie $pulpFiction; private User $user; @@ -23,8 +20,6 @@ class CollectionTest extends AbstractTypeTestCase protected function setUp(): void { parent::setUp(); - $this->accessor = Factory::createAccessor(); - $this->dieHard = new Movie('Die Hard'); $this->pulpFiction = new Movie('Pulp fiction'); $this->user = new User('Bruce', 'Willis', [$this->dieHard, $this->pulpFiction]); diff --git a/tests/Extension/Mapper/GetterAndUpdaterTest.php b/tests/Extension/Mapper/GetterAndUpdaterTest.php deleted file mode 100644 index 3be9ea7..0000000 --- a/tests/Extension/Mapper/GetterAndUpdaterTest.php +++ /dev/null @@ -1,50 +0,0 @@ -expectException(InvalidOptionsException::class); - $this->expectExceptionMessageMatches('/"update_value"/'); - - $this->factory->createBuilder() - ->add('name', null, [ - 'get_value' => fn () => 'John', - ]) - ->getForm(); - } - - public function testMissingAdder(): void - { - $this->expectException(InvalidOptionsException::class); - $this->expectExceptionMessageMatches('/"add_value"/'); - - $this->factory->createBuilder() - ->add('list', CollectionType::class, [ - 'get_value' => fn () => [], - 'remove_value' => fn () => [], - ]) - ->getForm(); - } - - public function testMissingRemover(): void - { - $this->expectException(InvalidOptionsException::class); - $this->expectExceptionMessageMatches('/"remove_value"/'); - - $this->factory->createBuilder() - ->add('list', CollectionType::class, [ - 'get_value' => fn () => [], - 'add_value' => fn () => null, - ]) - ->getForm(); - } -} diff --git a/tests/Extension/Mapper/NotNullConstraintsTest.php b/tests/Extension/Mapper/NotNullConstraintsTest.php new file mode 100644 index 0000000..87be14a --- /dev/null +++ b/tests/Extension/Mapper/NotNullConstraintsTest.php @@ -0,0 +1,46 @@ +createUserData(); + + $form->submit(['firstName' => null, 'lastName' => 'Smith']); + self::assertFalse($form->isValid()); + // updater did not trigger + self::assertEquals('Bruce', $user->getFirstName()); + + $errors = (string)$form->getErrors(true, true); + // this is default message from NotNull constraint + self::assertStringContainsString('This value should not be null.', $errors); + } + + /** + * If user added custom NotNull constraint, that one will be used instead of default. + */ + public function testCustomNotNullConstraint(): void + { + [$user, $form] = $this->createUserData(); + + $form->submit(['firstName' => 'John', 'lastName' => null]); + // updater did not trigger + self::assertEquals('Willis', $user->getLastName()); + + $errors = (string)$form->getErrors(true, true); + // this is message from custom NotNull constraint added + self::assertStringContainsString('Custom not null message.', $errors); + } +} diff --git a/tests/Extension/Mapper/SingleValueMapperTest.php b/tests/Extension/Mapper/SingleValueMapperTest.php new file mode 100644 index 0000000..c0f1666 --- /dev/null +++ b/tests/Extension/Mapper/SingleValueMapperTest.php @@ -0,0 +1,56 @@ +createUserForm($user); + + $form->submit(['firstName' => 'John', 'lastName' => 'Smith']); + self::assertEquals('John', $user->getFirstName()); + self::assertEquals('Smith', $user->getLastName()); + self::assertTrue($form->isValid()); + } + + /** + * ``update_value`` doesn't need to have second parameter. + * + * Other rules for first parameter still apply. + */ + public function testUpdateValueWithoutSecondParameter(): void + { + $user = Factory::createUser(); + $form = $this->createTestForm($user); + $form->submit(['firstName' => 'John']); + self::assertEquals('John', $user->getFirstName()); + } + + /** + * @return FormInterface + */ + private function createTestForm(User $user) + { + $builder = $this->factory->createBuilder(FormType::class, $user); + $builder->add('firstName', TextType::class, [ + 'get_value' => fn(User $user) => $user->getFirstName(), + 'update_value' => fn(string $firstName) => $user->changeFirstName($firstName), + ]); + + return $builder->getForm(); + } +} diff --git a/tests/Extension/Mapper/UpdateConstraintsTest.php b/tests/Extension/Mapper/UpdateConstraintsTest.php deleted file mode 100644 index 0750168..0000000 --- a/tests/Extension/Mapper/UpdateConstraintsTest.php +++ /dev/null @@ -1,53 +0,0 @@ -user = new User('Bruce', 'Willis'); - } - - public function testNotNullApplied(): void - { - $user = $this->user; - $form = $this->factory->create(UserTestType::class, $user); - $form->submit(['firstName' => 'John', 'lastName' => null]); - - self::assertFalse($form->isValid()); - $lastName = $form->get('lastName'); - self::assertFalse($lastName->isValid()); - $errorAsString = $lastName->getErrors()->__toString(); - self::assertStringContainsString('This value should not be null.', $errorAsString); - } - - public function testTypeApplied(): void - { - $user = $this->user; - $form = $this->factory->create(UserTestType::class, $user); - $form->submit(['firstName' => 'John', 'lastName' => new stdClass()]); - - self::assertFalse($form->isValid()); - $lastName = $form->get('lastName'); - $errorAsString = $lastName->getErrors()->__toString(); - self::assertFalse($lastName->isValid()); - self::assertStringContainsString('This value should be of type', $errorAsString); - } -} diff --git a/tests/Service/ComparatorTest.php b/tests/Service/ComparatorTest.php deleted file mode 100644 index 9ac2bbf..0000000 --- a/tests/Service/ComparatorTest.php +++ /dev/null @@ -1,28 +0,0 @@ -comparator = Factory::createComparator(); - } - - public function testEqualDates(): void - { - $first = new DateTime('2010-12-31'); - $second = new DateTime('2010-12-31'); - self::assertTrue($this->comparator->isEqual($first, $second)); - } -} diff --git a/tests/fixtures/Entity/Movie.php b/tests/fixtures/Entity/Movie.php index 2d00e6b..bbc31bb 100644 --- a/tests/fixtures/Entity/Movie.php +++ b/tests/fixtures/Entity/Movie.php @@ -6,11 +6,8 @@ class Movie { - private string $name; - - public function __construct(string $name) + public function __construct(private string $name) { - $this->name = $name; } public function __toString() diff --git a/tests/fixtures/Entity/User.php b/tests/fixtures/Entity/User.php index 960ac6e..527dcbc 100644 --- a/tests/fixtures/Entity/User.php +++ b/tests/fixtures/Entity/User.php @@ -8,18 +8,15 @@ class User { - private string $firstName; - private string $lastName; - - /** @var array */ - private array $favoriteMovies; - /** @param Movie[] $favoriteMovies */ - public function __construct(string $firstName, string $lastName, array $favoriteMovies = []) + public function __construct( + private string $firstName, + private string $lastName, + private array $favoriteMovies = [], + private bool $isActive = true, + private ?string $email = null, + ) { - $this->firstName = $firstName; - $this->lastName = $lastName; - $this->favoriteMovies = $favoriteMovies; } public function getFirstName(): string @@ -61,4 +58,24 @@ public function removeFavoriteMovie(Movie $movie): void } unset($this->favoriteMovies[$key]); } + + public function isActive(): bool + { + return $this->isActive; + } + + public function setIsActive(bool $isActive): void + { + $this->isActive = $isActive; + } + + public function getEmail(): ?string + { + return $this->email; + } + + public function setEmail(?string $email): void + { + $this->email = $email; + } } diff --git a/tests/fixtures/Factory.php b/tests/fixtures/Factory.php index 07ba849..b3e69c5 100644 --- a/tests/fixtures/Factory.php +++ b/tests/fixtures/Factory.php @@ -4,18 +4,19 @@ namespace Strictify\FormMapper\Tests\Fixture; -use Strictify\FormMapper\Accessor\Accessor; use Strictify\FormMapper\Service\Comparator; +use Strictify\FormMapper\Tests\Fixture\Entity\User; class Factory { - public static function createComparator(): Comparator + public static function createUser(): User { - return new Comparator([new Comparator\DateTimeDataComparator()]); + return new User('Bruce', 'Willis'); } - public static function createAccessor(): Accessor + public static function createComparator(): Comparator { - return new Accessor(self::createComparator()); + return new Comparator([new Comparator\DateTimeDataComparator()]); } + } diff --git a/tests/fixtures/Form/MovieType.php b/tests/fixtures/Form/MovieType.php index 62cdfbc..3459e51 100644 --- a/tests/fixtures/Form/MovieType.php +++ b/tests/fixtures/Form/MovieType.php @@ -10,6 +10,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class MovieType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void @@ -26,8 +29,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void public function configureOptions(OptionsResolver $resolver): void { - $resolver->setDefault('factory', function (string $name) { - return new Movie($name); - }); + $resolver->setDefault('factory', fn(string $name) => new Movie($name)); } } diff --git a/tests/fixtures/Form/UserTestType.php b/tests/fixtures/Form/UserTestType.php index 301aff1..e726c9d 100644 --- a/tests/fixtures/Form/UserTestType.php +++ b/tests/fixtures/Form/UserTestType.php @@ -6,29 +6,34 @@ use Strictify\FormMapper\Tests\Fixture\Entity\User; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Validator\Constraints\NotNull; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class UserTestType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('firstName', TextType::class, [ - 'get_value' => fn (User $user) => $user->getFirstName(), - 'update_value' => fn (string $firstName, User $user) => $user->changeFirstName($firstName), + 'get_value' => fn(User $user) => $user->getFirstName(), + 'update_value' => fn(string $firstName, User $user) => $user->changeFirstName($firstName), ]); $builder->add('lastName', TextType::class, [ - 'get_value' => fn (User $user) => $user->getLastName(), - 'update_value' => fn (string $lastName, User $user) => $user->changeLastName($lastName), + 'get_value' => fn(User $user) => $user->getLastName(), + 'update_value' => fn(string $lastName, User $user) => $user->changeLastName($lastName), + 'constraints' => [ + new NotNull(['message' => 'Custom not null message.']), + ], ]); } public function configureOptions(OptionsResolver $resolver): void { - $resolver->setDefault('factory', function (string $firstName, string $lastName) { - return new User($firstName, $lastName); - }); + $resolver->setDefault('factory', fn(string $firstName, string $lastName) => new User($firstName, $lastName)); } }