diff --git a/.circleci/config.yml b/.circleci/config.yml index 83029215..f99c1b19 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -59,6 +59,11 @@ jobs: command: | make phpcpd + - run: + name: Run PHP Mess Detector + command: | + make phpmd + - store_artifacts: path: reports diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 303063d1..a0824430 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,5 +56,7 @@ jobs: run: make phpinsights - name: Run php copy past detector run: make phpcpd + - name: Run php mess detector + run: make phpmd - name: Stop the docker images run: make stop-test diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 707e6130..21c94547 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,6 +42,7 @@ build: - make phpstan - make phpinsights - make phpcpd + - make phpmd - make stop-test artifacts: paths: diff --git a/Makefile b/Makefile index c6c29bf5..b73767fb 100644 --- a/Makefile +++ b/Makefile @@ -139,8 +139,8 @@ composer-update: @make exec-bash cmd="COMPOSER_MEMORY_LIMIT=-1 composer update" info: - @make exec cmd="bin/console --version" @make exec cmd="php --version" + @make exec cmd="bin/console about" logs: @docker logs -f ${COMPOSE_PROJECT_NAME}_symfony @@ -247,5 +247,5 @@ phpstan: ###> Phpinsights PHP quality checks ### phpinsights: @echo "\033[32mRunning PHP Insights\033[39m" - @make exec cmd="php -d error_reporting=0 ./vendor/bin/phpinsights analyse --no-interaction --min-quality=100 --min-complexity=85 --min-architecture=100 --min-style=100" + @make exec cmd="php -d error_reporting=0 ./vendor/bin/phpinsights analyse --no-interaction --min-quality=100 --min-complexity=84 --min-architecture=100 --min-style=100" ###< Phpinsights PHP quality checks ### diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml index dc45049b..5c46af2e 100644 --- a/bitbucket-pipelines.yml +++ b/bitbucket-pipelines.yml @@ -28,4 +28,5 @@ pipelines: - make phpstan - make phpinsights - make phpcpd + - make phpmd - make stop-test diff --git a/composer.json b/composer.json index 84f6c40e..d1dbf3ad 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,7 @@ "Elasticsearch" ], "homepage": "https://github.com/systemsdk/docker-symfony-api", - "version": "v0.1.0", + "version": "v1.0.0", "license": "MIT", "authors": [ { @@ -41,51 +41,53 @@ "ext-pdo_mysql": "*", "beberlei/doctrineextensions": "^1.3", "doctrine/annotations": "^1.13", - "doctrine/doctrine-bundle": "^2.5", + "doctrine/doctrine-bundle": "^2.6", "doctrine/doctrine-migrations-bundle": "^3.2", - "doctrine/orm": "^2.10", - "dukecity/command-scheduler-bundle": "^4.0", - "elasticsearch/elasticsearch": "^7.16", - "gedmo/doctrine-extensions": "^3.4", - "lexik/jwt-authentication-bundle": "^2.14", + "doctrine/orm": "^2.12", + "dukecity/command-scheduler-bundle": "^5.0", + "elasticsearch/elasticsearch": "^7.17", + "gedmo/doctrine-extensions": "^3.6", + "lexik/jwt-authentication-bundle": "^2.15", "mark-gerarts/automapper-plus-bundle": "^1.4", - "matomo/device-detector": "^5.0", - "matthiasnoback/symfony-console-form": "^5.1", + "matomo/device-detector": "^6.0", + "matthiasnoback/symfony-console-form": "^5.3", "nelmio/api-doc-bundle": "^4.8", "nelmio/cors-bundle": "^2.2", "phpdocumentor/reflection-docblock": "^5.3", "ramsey/uuid-doctrine": "^1.8", "sensio/framework-extra-bundle": "^6.2", - "symfony/asset": "5.4.*", - "symfony/config": "5.4.*", - "symfony/console": "5.4.*", - "symfony/dotenv": "5.4.*", - "symfony/expression-language": "5.4.*", - "symfony/flex": "^2.0", - "symfony/form": "5.4.*", - "symfony/framework-bundle": "5.4.*", - "symfony/http-client": "5.4.*", - "symfony/intl": "5.4.*", - "symfony/mailer": "5.4.*", - "symfony/messenger": "5.4.*", - "symfony/mime": "5.4.*", + "symfony/amqp-messenger": "6.0.*", + "symfony/asset": "6.0.*", + "symfony/config": "6.0.*", + "symfony/console": "6.0.*", + "symfony/doctrine-messenger": "6.0.*", + "symfony/dotenv": "6.0.*", + "symfony/expression-language": "6.0.*", + "symfony/flex": "^2.1", + "symfony/form": "6.0.*", + "symfony/framework-bundle": "6.0.*", + "symfony/http-client": "6.0.*", + "symfony/intl": "6.0.*", + "symfony/mailer": "6.0.*", + "symfony/messenger": "6.0.*", + "symfony/mime": "6.0.*", "symfony/monolog-bundle": "^3.7", - "symfony/notifier": "5.4.*", - "symfony/process": "5.4.*", - "symfony/property-access": "5.4.*", - "symfony/property-info": "5.4.*", - "symfony/proxy-manager-bridge": "5.4.*", - "symfony/runtime": "5.4.*", - "symfony/routing": "5.4.*", - "symfony/security-bundle": "5.4.*", - "symfony/serializer": "5.4.*", - "symfony/translation": "5.4.*", - "symfony/twig-bundle": "5.4.*", - "symfony/validator": "5.4.*", - "symfony/web-link": "5.4.*", - "symfony/yaml": "5.4.*", - "twig/extra-bundle": "^2.12|^3.0", - "twig/twig": "^2.12|^3.0" + "symfony/notifier": "6.0.*", + "symfony/process": "6.0.*", + "symfony/property-access": "6.0.*", + "symfony/property-info": "6.0.*", + "symfony/proxy-manager-bridge": "6.0.*", + "symfony/runtime": "6.0.*", + "symfony/routing": "6.0.*", + "symfony/security-bundle": "6.0.*", + "symfony/serializer": "6.0.*", + "symfony/string": "6.0.*", + "symfony/translation": "6.0.*", + "symfony/twig-bundle": "6.0.*", + "symfony/validator": "6.0.*", + "symfony/web-link": "6.0.*", + "symfony/yaml": "6.0.*", + "twig/extra-bundle": "^2.12|^3.0" }, "conflict": { "symfony/debug": "<3.3", @@ -93,18 +95,25 @@ "symfony/twig-bundle": "<3.3" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4", + "bamarni/composer-bin-plugin": "^1.5", "doctrine/doctrine-fixtures-bundle": "^3.4", "systemsdk/easy-log-bundle": "1.10.*", "ergebnis/composer-normalize": "^2.22", "roave/security-advisories": "dev-latest", - "symfony/browser-kit": "5.4.*", - "symfony/debug-bundle": "5.4.*", - "symfony/maker-bundle": "^1.36", + "symfony/browser-kit": "6.0.*", + "symfony/debug-bundle": "6.0.*", + "symfony/maker-bundle": "^1.40", "symfony/requirements-checker": "^2.0", - "symfony/stopwatch": "5.4.*", - "symfony/var-dumper": "5.4.*", - "symfony/web-profiler-bundle": "5.4.*" + "symfony/stopwatch": "6.0.*", + "symfony/var-dumper": "6.0.*", + "symfony/web-profiler-bundle": "6.0.*" + }, + "replace": { + "symfony/polyfill-ctype": "*", + "symfony/polyfill-mbstring": "*", + "symfony/polyfill-php72": "*", + "symfony/polyfill-php80": "*", + "symfony/polyfill-php81": "*" }, "config": { "platform": { @@ -125,11 +134,14 @@ "extra": { "allow-contrib": "true", "bamarni-bin": { + "bin-links": true, + "forward-command": true, "target-directory": "tools" }, + "projectTitle": "Docker Symfony API", "symfony": { "allow-contrib": true, - "require": "5.4.*" + "require": "6.0.*" } }, "autoload": { diff --git a/composer.lock b/composer.lock index 6f2c7636..310bf7d3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "32c4004951395919db68dc38d4654cbb", + "content-hash": "5a8c12ddd3bc16bb1879c46bc3c21266", "packages": [ { "name": "beberlei/doctrineextensions", @@ -65,30 +65,30 @@ }, { "name": "behat/transliterator", - "version": "v1.3.0", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/Behat/Transliterator.git", - "reference": "3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc" + "reference": "baac5873bac3749887d28ab68e2f74db3a4408af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Transliterator/zipball/3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc", - "reference": "3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc", + "url": "https://api.github.com/repos/Behat/Transliterator/zipball/baac5873bac3749887d28ab68e2f74db3a4408af", + "reference": "baac5873bac3749887d28ab68e2f74db3a4408af", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.2" }, "require-dev": { "chuyskywalker/rolling-curl": "^3.1", "php-yaoi/php-yaoi": "^1.0", - "phpunit/phpunit": "^4.8.36|^6.3" + "phpunit/phpunit": "^8.5.25 || ^9.5.19" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -108,9 +108,9 @@ ], "support": { "issues": "https://github.com/Behat/Transliterator/issues", - "source": "https://github.com/Behat/Transliterator/tree/v1.3.0" + "source": "https://github.com/Behat/Transliterator/tree/v1.5.0" }, - "time": "2020-01-14T16:39:13+00:00" + "time": "2022-03-30T09:27:43+00:00" }, { "name": "brick/math", @@ -172,79 +172,6 @@ ], "time": "2021-08-15T20:50:18+00:00" }, - { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.4", - "source": { - "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "b174585d1fe49ceed21928a945138948cb394600" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b174585d1fe49ceed21928a945138948cb394600", - "reference": "b174585d1fe49ceed21928a945138948cb394600", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" - }, - "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.4" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2021-09-13T08:41:34+00:00" - }, { "name": "doctrine/annotations", "version": "1.13.2", @@ -487,25 +414,25 @@ }, { "name": "doctrine/common", - "version": "3.2.1", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "e927fc2410c8723d053b8032e591cdff76587cdb" + "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/e927fc2410c8723d053b8032e591cdff76587cdb", - "reference": "e927fc2410c8723d053b8032e591cdff76587cdb", + "url": "https://api.github.com/repos/doctrine/common/zipball/c824e95d4c83b7102d8bc60595445a6f7d540f96", + "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96", "shasum": "" }, "require": { - "doctrine/persistence": "^2.0", + "doctrine/persistence": "^2.0 || ^3.0", "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.2.0", + "phpstan/phpstan": "^1.4.1", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", "squizlabs/php_codesniffer": "^3.0", @@ -557,7 +484,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.2.1" + "source": "https://github.com/doctrine/common/tree/3.3.0" }, "funding": [ { @@ -573,24 +500,24 @@ "type": "tidelift" } ], - "time": "2021-12-26T22:39:45+00:00" + "time": "2022-02-05T18:28:51+00:00" }, { "name": "doctrine/dbal", - "version": "3.2.1", + "version": "3.3.5", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "4caf37acf14b513a91dd4f087f7eda424fa25542" + "reference": "719663b15983278227669c8595151586a2ff3327" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/4caf37acf14b513a91dd4f087f7eda424fa25542", - "reference": "4caf37acf14b513a91dd4f087f7eda424fa25542", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/719663b15983278227669c8595151586a2ff3327", + "reference": "719663b15983278227669c8595151586a2ff3327", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.11.99", + "composer-runtime-api": "^2", "doctrine/cache": "^1.11|^2.0", "doctrine/deprecations": "^0.5.3", "doctrine/event-manager": "^1.0", @@ -601,14 +528,14 @@ "require-dev": { "doctrine/coding-standard": "9.0.0", "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "1.3.0", + "phpstan/phpstan": "1.5.3", "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "9.5.11", + "phpunit/phpunit": "9.5.16", "psalm/plugin-phpunit": "0.16.1", "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^5.2|^6.0", - "symfony/console": "^2.0.5|^3.0|^4.0|^5.0|^6.0", - "vimeo/psalm": "4.16.1" + "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0", + "vimeo/psalm": "4.22.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -668,7 +595,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.2.1" + "source": "https://github.com/doctrine/dbal/tree/3.3.5" }, "funding": [ { @@ -684,7 +611,7 @@ "type": "tidelift" } ], - "time": "2022-01-05T08:52:06+00:00" + "time": "2022-04-05T09:50:18+00:00" }, { "name": "doctrine/deprecations", @@ -731,23 +658,23 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.5.5", + "version": "2.6.3", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "5c086cbbe5327937dd6f90da075f7d421b0f28bc" + "reference": "527970d22b8ca6472ebd88d7c42e512550bd874e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/5c086cbbe5327937dd6f90da075f7d421b0f28bc", - "reference": "5c086cbbe5327937dd6f90da075f7d421b0f28bc", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/527970d22b8ca6472ebd88d7c42e512550bd874e", + "reference": "527970d22b8ca6472ebd88d7c42e512550bd874e", "shasum": "" }, "require": { "doctrine/annotations": "^1", "doctrine/cache": "^1.11 || ^2.0", - "doctrine/dbal": "^2.13.1|^3.1", - "doctrine/persistence": "^2.2", + "doctrine/dbal": "^2.13.1|^3.3.2", + "doctrine/persistence": "^2.2|^3", "doctrine/sql-formatter": "^1.0.1", "php": "^7.1 || ^8.0", "symfony/cache": "^4.3.3|^5.0|^6.0", @@ -760,16 +687,17 @@ "symfony/service-contracts": "^1.1.1|^2.0|^3" }, "conflict": { - "doctrine/orm": "<2.9", + "doctrine/orm": "<2.10|>=3.0", "twig/twig": "<1.34|>=2.0,<2.4" }, "require-dev": { "doctrine/coding-standard": "^9.0", - "doctrine/orm": "^2.9 || ^3.0", + "doctrine/orm": "^2.10 || ^3.0", "friendsofphp/proxy-manager-lts": "^1.0", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0", "psalm/plugin-phpunit": "^0.16.1", "psalm/plugin-symfony": "^3", + "psr/log": "^1.1.4|^2.0|^3.0", "symfony/phpunit-bridge": "^5.2|^6.0", "symfony/property-info": "^4.3.3|^5.0|^6.0", "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0|^6.0", @@ -824,7 +752,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.5.5" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.6.3" }, "funding": [ { @@ -840,20 +768,20 @@ "type": "tidelift" } ], - "time": "2022-01-06T08:56:31+00:00" + "time": "2022-04-22T09:59:53+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", - "version": "3.2.1", + "version": "3.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "c1b10bc1466e08bba82640e49c7bbcce0c9853c2" + "reference": "3393f411ba25ade21969c33f2053220044854d01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/c1b10bc1466e08bba82640e49c7bbcce0c9853c2", - "reference": "c1b10bc1466e08bba82640e49c7bbcce0c9853c2", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/3393f411ba25ade21969c33f2053220044854d01", + "reference": "3393f411ba25ade21969c33f2053220044854d01", "shasum": "" }, "require": { @@ -893,11 +821,11 @@ }, { "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org" + "homepage": "https://www.doctrine-project.org" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony DoctrineMigrationsBundle", @@ -909,7 +837,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", - "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.2.1" + "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.2.2" }, "funding": [ { @@ -925,7 +853,7 @@ "type": "tidelift" } ], - "time": "2021-11-11T11:08:52+00:00" + "time": "2022-02-01T18:08:07+00:00" }, { "name": "doctrine/event-manager", @@ -1114,29 +1042,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^9", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -1163,7 +1092,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, "funding": [ { @@ -1179,20 +1108,20 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "doctrine/lexer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { @@ -1200,7 +1129,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", + "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "vimeo/psalm": "^4.11" }, @@ -1239,7 +1168,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -1255,49 +1184,49 @@ "type": "tidelift" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "doctrine/migrations", - "version": "3.3.2", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "b6e43bb5815f4dbb88c79a0fef1c669dfba52d58" + "reference": "5713b45c933122e509d9b31c767b420c3dfed399" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/b6e43bb5815f4dbb88c79a0fef1c669dfba52d58", - "reference": "b6e43bb5815f4dbb88c79a0fef1c669dfba52d58", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/5713b45c933122e509d9b31c767b420c3dfed399", + "reference": "5713b45c933122e509d9b31c767b420c3dfed399", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8", - "doctrine/dbal": "^2.11 || ^3.0", + "composer-runtime-api": "^2", + "doctrine/dbal": "^3.3", "doctrine/deprecations": "^0.5.3", "doctrine/event-manager": "^1.0", "friendsofphp/proxy-manager-lts": "^1.0", - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "psr/log": "^1.1.3 || ^2 || ^3", - "symfony/console": "^3.4 || ^4.4.16 || ^5.0 || ^6.0", - "symfony/stopwatch": "^3.4 || ^4.0 || ^5.0 || ^6.0" + "symfony/console": "^4.4.16 || ^5.4 || ^6.0", + "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^9", "doctrine/orm": "^2.6", - "doctrine/persistence": "^1.3 || ^2.0", + "doctrine/persistence": "^2.0", "doctrine/sql-formatter": "^1.0", "ergebnis/composer-normalize": "^2.9", "ext-pdo_sqlite": "*", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-deprecation-rules": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpstan/phpstan-symfony": "^0.12", - "phpunit/phpunit": "^8.5 || ^9.4", - "symfony/cache": "^3.4.26 || ~4.1.12 || ^4.2.7 || ^5.0 || ^6.0", - "symfony/process": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0" + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan-symfony": "^1.1", + "phpunit/phpunit": "^9.4", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/process": "^4.4 || ^5.4 || ^6.0", + "symfony/yaml": "^4.4 || ^5.4 || ^6.0" }, "suggest": { "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", @@ -1345,7 +1274,7 @@ ], "support": { "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.3.2" + "source": "https://github.com/doctrine/migrations/tree/3.5.0" }, "funding": [ { @@ -1361,20 +1290,20 @@ "type": "tidelift" } ], - "time": "2021-11-12T09:03:27+00:00" + "time": "2022-04-04T20:24:11+00:00" }, { "name": "doctrine/orm", - "version": "2.11.0", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef" + "reference": "2e4a8722721b934149ff53b191522a6829b6d73b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef", - "reference": "bfed8cb6ed448f4ab1ea3fff06e4d6c44439e4ef", + "url": "https://api.github.com/repos/doctrine/orm/zipball/2e4a8722721b934149ff53b191522a6829b6d73b", + "reference": "2e4a8722721b934149ff53b191522a6829b6d73b", "shasum": "" }, "require": { @@ -1387,15 +1316,14 @@ "doctrine/event-manager": "^1.1", "doctrine/inflector": "^1.4 || ^2.0", "doctrine/instantiator": "^1.3", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^2.2", + "doctrine/lexer": "^1.2.3", + "doctrine/persistence": "^2.4 || ^3", "ext-ctype": "*", - "ext-pdo": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3", "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", "symfony/polyfill-php72": "^1.23", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "doctrine/annotations": "<1.13 || >= 2.0" @@ -1404,12 +1332,13 @@ "doctrine/annotations": "^1.13", "doctrine/coding-standard": "^9.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "1.3.3", + "phpstan/phpstan": "~1.4.10 || 1.5.0", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^4.4 || ^5.4 || ^6.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.18.1" + "vimeo/psalm": "4.22.0" }, "suggest": { "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", @@ -1458,22 +1387,22 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.11.0" + "source": "https://github.com/doctrine/orm/tree/2.12.1" }, - "time": "2022-01-12T13:20:33+00:00" + "time": "2022-04-22T17:46:03+00:00" }, { "name": "doctrine/persistence", - "version": "2.3.0", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8" + "reference": "4473480044c88f30e0e8288e7123b60c7eb9efa3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/f8af155c1e7963f3d2b4415097d55757bbaa53d8", - "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/4473480044c88f30e0e8288e7123b60c7eb9efa3", + "reference": "4473480044c88f30e0e8288e7123b60c7eb9efa3", "shasum": "" }, "require": { @@ -1486,23 +1415,23 @@ }, "conflict": { "doctrine/annotations": "<1.0 || >=2.0", - "doctrine/common": "<2.10@dev" + "doctrine/common": "<2.10" }, "require-dev": { "composer/package-versions-deprecated": "^1.11", "doctrine/annotations": "^1.0", - "doctrine/coding-standard": "^6.0 || ^9.0", + "doctrine/coding-standard": "^9.0", "doctrine/common": "^3.0", - "phpstan/phpstan": "1.2.0", - "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", - "symfony/cache": "^4.4 || ^5.0 || ^6.0", - "vimeo/psalm": "4.13.1" + "phpstan/phpstan": "~1.4.10 || 1.5.0", + "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "vimeo/psalm": "4.22.0" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common", - "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + "Doctrine\\Common\\": "src/Common", + "Doctrine\\Persistence\\": "src/Persistence" } }, "notification-url": "https://packagist.org/downloads/", @@ -1546,9 +1475,9 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/2.3.0" + "source": "https://github.com/doctrine/persistence/tree/2.5.1" }, - "time": "2022-01-09T19:58:46+00:00" + "time": "2022-04-14T21:47:17+00:00" }, { "name": "doctrine/sql-formatter", @@ -1604,16 +1533,16 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.0", + "version": "v3.3.1", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "63f2a76a045bac6ec93cc2daf2b534b412aa0313" + "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/63f2a76a045bac6ec93cc2daf2b534b412aa0313", - "reference": "63f2a76a045bac6ec93cc2daf2b534b412aa0313", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/be85b3f05b46c39bbc0d95f6c071ddff669510fa", + "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa", "shasum": "" }, "require": { @@ -1653,7 +1582,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.0" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.1" }, "funding": [ { @@ -1661,65 +1590,79 @@ "type": "github" } ], - "time": "2022-01-14T16:02:05+00:00" + "time": "2022-01-18T15:43:28+00:00" }, { "name": "dukecity/command-scheduler-bundle", - "version": "v4.0.7", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/Dukecity/CommandSchedulerBundle.git", - "reference": "11d500a6faaf1403f3dc887bab3300c4da223eb8" + "reference": "e4e98e918948cb7c56b02253f82f6969c411e8ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Dukecity/CommandSchedulerBundle/zipball/11d500a6faaf1403f3dc887bab3300c4da223eb8", - "reference": "11d500a6faaf1403f3dc887bab3300c4da223eb8", + "url": "https://api.github.com/repos/Dukecity/CommandSchedulerBundle/zipball/e4e98e918948cb7c56b02253f82f6969c411e8ea", + "reference": "e4e98e918948cb7c56b02253f82f6969c411e8ea", "shasum": "" }, "require": { - "doctrine/doctrine-bundle": "^2.4", + "doctrine/collections": "^1.6.8", + "doctrine/dbal": "^2.13.3 || ^3.0", + "doctrine/doctrine-bundle": "^2.4.2", "doctrine/orm": "^2.9", + "doctrine/persistence": "^2.2.2", "dragonmantank/cron-expression": "^3.1", - "lorisleiva/cron-translator": "^0.2", - "nesbot/carbon": "^2.43", - "php": "^8.0", - "sensio/framework-extra-bundle": "^6.1", - "symfony/asset": "^4.4.20|^5.3", - "symfony/config": "^4.4.20|^5.3", - "symfony/console": "^4.4.20|^5.3", - "symfony/dependency-injection": "^4.4.20|^5.3", - "symfony/dotenv": "^4.4.20|^5.3", - "symfony/form": "^4.4.20|^5.3", - "symfony/framework-bundle": "^4.4.20|^5.3", - "symfony/http-kernel": "^4.4.20|^5.3", - "symfony/lock": "^4.4.20|^5.3", - "symfony/property-access": "^4.4.20|^5.3", - "symfony/translation": "^4.4.20|^5.3", - "symfony/twig-bundle": "^4.4.20|^5.3", - "symfony/validator": "^4.4.20|^5.3", - "symfony/yaml": "^4.4.20|^5.3" + "laminas/laminas-code": "^4.4", + "lorisleiva/cron-translator": "^0.3", + "nesbot/carbon": "^2.53", + "php": ">=8.0.2", + "sensio/framework-extra-bundle": "^6.2", + "symfony/asset": "^5.4 || ^6.0", + "symfony/config": "^5.4 || ^6.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/dependency-injection": "^5.4 || ^6.0", + "symfony/dotenv": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/form": "^5.4 || ^6.0", + "symfony/framework-bundle": "^5.4 || ^6.0", + "symfony/http-kernel": "^5.4 || ^6.0", + "symfony/lock": "^5.4 || ^6.0", + "symfony/property-access": "^5.4 || ^6.0", + "symfony/routing": "^5.4 || ^6.0", + "symfony/translation": "^5.4 || ^6.0", + "symfony/twig-bundle": "^5.4 || ^6.0", + "symfony/validator": "^5.4 || ^6.0", + "symfony/var-dumper": "^5.4 || ^6.0", + "symfony/yaml": "^5.4 || ^6.0", + "twig/twig": "^3.3" }, "require-dev": { "doctrine/doctrine-fixtures-bundle": "^3.4.0", - "ext-pcntl": "*", "jetbrains/phpstorm-attributes": "^1.0", "liip/test-fixtures-bundle": "^2.1.0", - "phpunit/phpunit": "^8.0|^9.3", - "symfony/browser-kit": "^4.4.20|^5.3", - "symfony/css-selector": "^4.4.20|^5.3", - "symfony/debug-bundle": "^4.4.20|^5.3", - "symfony/dom-crawler": "^4.4.20|^5.3", - "symfony/maker-bundle": "^1.31" + "phpunit/phpunit": "^9.5.9", + "symfony/browser-kit": "^5.4 || ^6.0", + "symfony/css-selector": "^5.4 || ^6.0", + "symfony/debug-bundle": "^5.4 || ^6.0", + "symfony/dom-crawler": "^5.4 || ^6.0", + "symfony/maker-bundle": "^1.33", + "symfony/phpunit-bridge": "^5.4 || ^6.0" }, "suggest": { "ext-pcntl": "For using the scheduler daemon", "ext-posix": "*", - "symfony/notifier": "Send Notifications (E-Mails) ^5.3", + "symfony/notifier": "Send Notifications (E-Mails) ^5.4 || ^6.0", "twig/cssinliner-extra": "Needed for E-Mail Notification ^3.0", "twig/inky-extra": "Needed for E-Mail Notification ^3.0" }, "type": "symfony-bundle", + "extra": { + "symfony": { + "allow-contrib": false, + "require": "^5.4 || ^6.0" + } + }, "autoload": { "psr-4": { "Dukecity\\CommandSchedulerBundle\\": "" @@ -1750,9 +1693,9 @@ ], "support": { "issues": "https://github.com/Dukecity/CommandSchedulerBundle/issues", - "source": "https://github.com/Dukecity/CommandSchedulerBundle/tree/v4.0.7" + "source": "https://github.com/Dukecity/CommandSchedulerBundle/tree/v5.0.0" }, - "time": "2021-11-17T21:21:43+00:00" + "time": "2022-01-30T15:08:19+00:00" }, { "name": "egulias/email-validator", @@ -1824,23 +1767,23 @@ }, { "name": "elasticsearch/elasticsearch", - "version": "v7.16.0", + "version": "v7.17.0", "source": { "type": "git", "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "f87f93f71f564d4bbdc5f008d296d1c37d828e10" + "reference": "1890f9d7fde076b5a3ddcf579a802af05b2e781b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/f87f93f71f564d4bbdc5f008d296d1c37d828e10", - "reference": "f87f93f71f564d4bbdc5f008d296d1c37d828e10", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/1890f9d7fde076b5a3ddcf579a802af05b2e781b", + "reference": "1890f9d7fde076b5a3ddcf579a802af05b2e781b", "shasum": "" }, "require": { "ext-json": ">=1.3.7", "ezimuel/ringphp": "^1.1.2", "php": "^7.3 || ^8.0", - "psr/log": "^1|^2" + "psr/log": "^1|^2|^3" }, "require-dev": { "ext-yaml": "*", @@ -1885,9 +1828,9 @@ ], "support": { "issues": "https://github.com/elastic/elasticsearch-php/issues", - "source": "https://github.com/elastic/elasticsearch-php/tree/v7.16.0" + "source": "https://github.com/elastic/elasticsearch-php/tree/v7.17.0" }, - "time": "2021-12-09T20:04:01+00:00" + "time": "2022-02-03T13:40:04+00:00" }, { "name": "ezimuel/guzzlestreams", @@ -2001,16 +1944,16 @@ }, { "name": "friendsofphp/proxy-manager-lts", - "version": "v1.0.5", + "version": "v1.0.8", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", - "reference": "006aa5d32f887a4db4353b13b5b5095613e0611f" + "reference": "581ab35f83ce2135057e0afae892fbf1c583bfb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/006aa5d32f887a4db4353b13b5b5095613e0611f", - "reference": "006aa5d32f887a4db4353b13b5b5095613e0611f", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/581ab35f83ce2135057e0afae892fbf1c583bfb9", + "reference": "581ab35f83ce2135057e0afae892fbf1c583bfb9", "shasum": "" }, "require": { @@ -2027,7 +1970,7 @@ }, "require-dev": { "ext-phar": "*", - "symfony/phpunit-bridge": "^5.2|^6.0" + "symfony/phpunit-bridge": "^5.4|^6.0" }, "type": "library", "extra": { @@ -2049,7 +1992,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.io/" + "homepage": "https://ocramius.github.io/" }, { "name": "Nicolas Grekas", @@ -2067,7 +2010,7 @@ ], "support": { "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", - "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.5" + "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.8" }, "funding": [ { @@ -2079,20 +2022,20 @@ "type": "tidelift" } ], - "time": "2021-05-22T16:11:15+00:00" + "time": "2022-04-28T20:30:12+00:00" }, { "name": "gedmo/doctrine-extensions", - "version": "v3.5.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/doctrine-extensions/DoctrineExtensions.git", - "reference": "dd1a1438a10e92910e5c510f631a568c19e6c00e" + "reference": "20e682c5c376faa4c88421453707741e1dd1f131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/dd1a1438a10e92910e5c510f631a568c19e6c00e", - "reference": "dd1a1438a10e92910e5c510f631a568c19e6c00e", + "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/20e682c5c376faa4c88421453707741e1dd1f131", + "reference": "20e682c5c376faa4c88421453707741e1dd1f131", "shasum": "" }, "require": { @@ -2102,7 +2045,7 @@ "doctrine/collections": "^1.0", "doctrine/common": "^2.13 || ^3.0", "doctrine/event-manager": "^1.0", - "doctrine/persistence": "^1.3.3 || ^2.0", + "doctrine/persistence": "^2.2", "php": "^7.2 || ^8.0", "psr/cache": "^1 || ^2 || ^3", "symfony/cache": "^4.4 || ^5.3 || ^6.0" @@ -2120,7 +2063,7 @@ "doctrine/doctrine-bundle": "^2.3", "doctrine/mongodb-odm": "^2.2", "doctrine/orm": "^2.10.2", - "friendsofphp/php-cs-fixer": "^3.0", + "friendsofphp/php-cs-fixer": "~3.4.0", "nesbot/carbon": "^2.55", "phpstan/phpstan": "^1.1", "phpstan/phpstan-doctrine": "^1.0", @@ -2138,7 +2081,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -2184,10 +2127,10 @@ "support": { "email": "gediminas.morkevicius@gmail.com", "issues": "https://github.com/doctrine-extensions/DoctrineExtensions/issues", - "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.5.0", + "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.6.0", "wiki": "https://github.com/Atlantic18/DoctrineExtensions/tree/main/doc" }, - "time": "2022-01-10T21:29:33+00:00" + "time": "2022-03-19T10:22:38+00:00" }, { "name": "laminas/laminas-code", @@ -2221,12 +2164,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Laminas\\Code\\": "src/" - }, "files": [ "polyfill/ReflectionEnumPolyfill.php" - ] + ], + "psr-4": { + "Laminas\\Code\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2257,23 +2200,24 @@ }, { "name": "lcobucci/clock", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/lcobucci/clock.git", - "reference": "903513d28e85376a33385ebc601afd2ee69e5653" + "reference": "fb533e093fd61321bfcbac08b131ce805fe183d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/903513d28e85376a33385ebc601afd2ee69e5653", - "reference": "903513d28e85376a33385ebc601afd2ee69e5653", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/fb533e093fd61321bfcbac08b131ce805fe183d3", + "reference": "fb533e093fd61321bfcbac08b131ce805fe183d3", "shasum": "" }, "require": { - "php": "^8.0" + "php": "^8.0", + "stella-maris/clock": "^0.1.4" }, "require-dev": { - "infection/infection": "^0.25", + "infection/infection": "^0.26", "lcobucci/coding-standard": "^8.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^0.12", @@ -2301,7 +2245,7 @@ "description": "Yet another clock abstraction", "support": { "issues": "https://github.com/lcobucci/clock/issues", - "source": "https://github.com/lcobucci/clock/tree/2.1.0" + "source": "https://github.com/lcobucci/clock/tree/2.2.0" }, "funding": [ { @@ -2313,7 +2257,7 @@ "type": "patreon" } ], - "time": "2021-10-31T21:32:07+00:00" + "time": "2022-04-19T19:34:17+00:00" }, { "name": "lcobucci/jwt", @@ -2391,16 +2335,16 @@ }, { "name": "lexik/jwt-authentication-bundle", - "version": "v2.14.4", + "version": "v2.15.1", "source": { "type": "git", "url": "https://github.com/lexik/LexikJWTAuthenticationBundle.git", - "reference": "b08d174fc979e12f609ad075e49b46a9e30ecfac" + "reference": "b7a640b135fc572d69375d97e4a87524a5e886d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/zipball/b08d174fc979e12f609ad075e49b46a9e30ecfac", - "reference": "b08d174fc979e12f609ad075e49b46a9e30ecfac", + "url": "https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/zipball/b7a640b135fc572d69375d97e4a87524a5e886d0", + "reference": "b7a640b135fc572d69375d97e4a87524a5e886d0", "shasum": "" }, "require": { @@ -2417,7 +2361,8 @@ "symfony/property-access": "^4.4|^5.3|^6.0", "symfony/security-bundle": "^4.4|^5.3|^6.0", "symfony/security-core": "^4.4|^5.3|^6.0", - "symfony/security-http": "^4.4|^5.3|^6.0" + "symfony/security-http": "^4.4|^5.3|^6.0", + "symfony/translation-contracts": "^1.0|^2.0|^3.0" }, "conflict": { "symfony/console": "<4.4" @@ -2494,7 +2439,7 @@ ], "support": { "issues": "https://github.com/lexik/LexikJWTAuthenticationBundle/issues", - "source": "https://github.com/lexik/LexikJWTAuthenticationBundle/tree/v2.14.4" + "source": "https://github.com/lexik/LexikJWTAuthenticationBundle/tree/v2.15.1" }, "funding": [ { @@ -2506,27 +2451,27 @@ "type": "tidelift" } ], - "time": "2022-01-04T23:33:23+00:00" + "time": "2022-04-08T12:31:19+00:00" }, { "name": "lorisleiva/cron-translator", - "version": "v0.2.1", + "version": "v0.3.1", "source": { "type": "git", "url": "https://github.com/lorisleiva/cron-translator.git", - "reference": "49dc8dc551fd6e11242f170459438470174af308" + "reference": "bb83769fdc7858f843bdd7331fac9b945e271f4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lorisleiva/cron-translator/zipball/49dc8dc551fd6e11242f170459438470174af308", - "reference": "49dc8dc551fd6e11242f170459438470174af308", + "url": "https://api.github.com/repos/lorisleiva/cron-translator/zipball/bb83769fdc7858f843bdd7331fac9b945e271f4a", + "reference": "bb83769fdc7858f843bdd7331fac9b945e271f4a", "shasum": "" }, "require": { - "php": "^7.3 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^8.5.21 || ^9.5" }, "type": "library", "autoload": { @@ -2554,7 +2499,7 @@ ], "support": { "issues": "https://github.com/lorisleiva/cron-translator/issues", - "source": "https://github.com/lorisleiva/cron-translator/tree/v0.2.1" + "source": "https://github.com/lorisleiva/cron-translator/tree/v0.3.1" }, "funding": [ { @@ -2562,7 +2507,7 @@ "type": "github" } ], - "time": "2021-07-28T10:20:21+00:00" + "time": "2022-02-08T09:29:16+00:00" }, { "name": "mark-gerarts/auto-mapper-plus", @@ -2674,16 +2619,16 @@ }, { "name": "matomo/device-detector", - "version": "5.0.3", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/matomo-org/device-detector.git", - "reference": "42c06b9031048b90f7bc6c9d530dbe135bc3e381" + "reference": "7fc2af3af62bd69e6e3404d561e371a83c112be9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matomo-org/device-detector/zipball/42c06b9031048b90f7bc6c9d530dbe135bc3e381", - "reference": "42c06b9031048b90f7bc6c9d530dbe135bc3e381", + "url": "https://api.github.com/repos/matomo-org/device-detector/zipball/7fc2af3af62bd69e6e3404d561e371a83c112be9", + "reference": "7fc2af3af62bd69e6e3404d561e371a83c112be9", "shasum": "" }, "require": { @@ -2695,7 +2640,7 @@ }, "require-dev": { "matthiasmullie/scrapbook": "^1.4.7", - "mayflower/mo4-coding-standard": "dev-master#275cb9d", + "mayflower/mo4-coding-standard": "^v8.0.0", "phpstan/phpstan": "^0.12.52", "phpunit/phpunit": "^8.5.8", "psr/cache": "^1.0.1", @@ -2739,20 +2684,20 @@ "source": "https://github.com/matomo-org/matomo", "wiki": "https://dev.matomo.org/" }, - "time": "2022-01-13T19:22:57+00:00" + "time": "2022-04-11T09:58:17+00:00" }, { "name": "matthiasnoback/symfony-console-form", - "version": "v5.1.1", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/matthiasnoback/symfony-console-form.git", - "reference": "a9ad35e3d6841496680334da3ae81988c0936b30" + "reference": "4a68a18f8818709125dc337d2158f396edf722aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasnoback/symfony-console-form/zipball/a9ad35e3d6841496680334da3ae81988c0936b30", - "reference": "a9ad35e3d6841496680334da3ae81988c0936b30", + "url": "https://api.github.com/repos/matthiasnoback/symfony-console-form/zipball/4a68a18f8818709125dc337d2158f396edf722aa", + "reference": "4a68a18f8818709125dc337d2158f396edf722aa", "shasum": "" }, "require": { @@ -2799,22 +2744,22 @@ ], "support": { "issues": "https://github.com/matthiasnoback/symfony-console-form/issues", - "source": "https://github.com/matthiasnoback/symfony-console-form/tree/v5.1.1" + "source": "https://github.com/matthiasnoback/symfony-console-form/tree/v5.3.0" }, - "time": "2021-12-17T15:05:42+00:00" + "time": "2022-03-30T15:01:15+00:00" }, { "name": "monolog/monolog", - "version": "2.3.5", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" + "reference": "4192345e260f1d51b365536199744b987e160edc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", - "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4192345e260f1d51b365536199744b987e160edc", + "reference": "4192345e260f1d51b365536199744b987e160edc", "shasum": "" }, "require": { @@ -2836,7 +2781,7 @@ "phpstan/phpstan": "^0.12.91", "phpunit/phpunit": "^8.5", "predis/predis": "^1.1", - "rollbar/rollbar": "^1.3", + "rollbar/rollbar": "^1.3 || ^2 || ^3", "ruflin/elastica": ">=0.90@dev", "swiftmailer/swiftmailer": "^5.3|^6.0" }, @@ -2888,7 +2833,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.3.5" + "source": "https://github.com/Seldaek/monolog/tree/2.5.0" }, "funding": [ { @@ -2900,7 +2845,7 @@ "type": "tidelift" } ], - "time": "2021-10-01T21:08:31+00:00" + "time": "2022-04-08T15:43:54+00:00" }, { "name": "mustangostang/spyc", @@ -3021,16 +2966,16 @@ }, { "name": "nelmio/api-doc-bundle", - "version": "v4.8.2", + "version": "v4.9.0", "source": { "type": "git", "url": "https://github.com/nelmio/NelmioApiDocBundle.git", - "reference": "1885d25cd95810b376b670e7f5f23a33c0dda068" + "reference": "da02f3ad339437b939a6d309e9c98b62afe53c6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/1885d25cd95810b376b670e7f5f23a33c0dda068", - "reference": "1885d25cd95810b376b670e7f5f23a33c0dda068", + "url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/da02f3ad339437b939a6d309e9c98b62afe53c6c", + "reference": "da02f3ad339437b939a6d309e9c98b62afe53c6c", "shasum": "" }, "require": { @@ -3056,7 +3001,7 @@ "symfony/framework-bundle": "4.2.7" }, "require-dev": { - "api-platform/core": "^2.4", + "api-platform/core": "^2.6.8", "composer/package-versions-deprecated": "1.11.99.1", "friendsofsymfony/rest-bundle": "^2.8|^3.0", "jms/serializer": "^1.14|^3.0", @@ -3126,9 +3071,9 @@ ], "support": { "issues": "https://github.com/nelmio/NelmioApiDocBundle/issues", - "source": "https://github.com/nelmio/NelmioApiDocBundle/tree/v4.8.2" + "source": "https://github.com/nelmio/NelmioApiDocBundle/tree/v4.9.0" }, - "time": "2022-01-10T16:10:58+00:00" + "time": "2022-04-30T18:28:05+00:00" }, { "name": "nelmio/cors-bundle", @@ -3193,16 +3138,16 @@ }, { "name": "nesbot/carbon", - "version": "2.55.2", + "version": "2.57.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "8c2a18ce3e67c34efc1b29f64fe61304368259a2" + "reference": "4a54375c21eea4811dbd1149fe6b246517554e78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8c2a18ce3e67c34efc1b29f64fe61304368259a2", - "reference": "8c2a18ce3e67c34efc1b29f64fe61304368259a2", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4a54375c21eea4811dbd1149fe6b246517554e78", + "reference": "4a54375c21eea4811dbd1149fe6b246517554e78", "shasum": "" }, "require": { @@ -3219,7 +3164,7 @@ "kylekatarnls/multi-tester": "^2.0", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.54", + "phpstan/phpstan": "^0.12.54 || ^1.0", "phpunit/phpunit": "^7.5.20 || ^8.5.14", "squizlabs/php_codesniffer": "^3.4" }, @@ -3285,7 +3230,7 @@ "type": "tidelift" } ], - "time": "2021-12-03T14:59:52+00:00" + "time": "2022-02-13T18:13:33+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -3399,16 +3344,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" + "reference": "77a32518733312af16a44300404e945338981de3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", + "reference": "77a32518733312af16a44300404e945338981de3", "shasum": "" }, "require": { @@ -3443,22 +3388,22 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" }, - "time": "2022-01-04T19:58:01+00:00" + "time": "2022-03-15T21:29:03+00:00" }, { "name": "psr/cache", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", - "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", - "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", "shasum": "" }, "require": { @@ -3492,28 +3437,33 @@ "psr-6" ], "support": { - "source": "https://github.com/php-fig/cache/tree/2.0.0" + "source": "https://github.com/php-fig/cache/tree/3.0.0" }, - "time": "2021-02-03T23:23:37+00:00" + "time": "2021-02-03T23:26:27+00:00" }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -3540,9 +3490,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/event-dispatcher", @@ -3596,25 +3546,28 @@ }, { "name": "psr/link", - "version": "1.1.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/link.git", - "reference": "846c25f58a1f02b93a00f2404e3626b6bf9b7807" + "reference": "84b159194ecfd7eaa472280213976e96415433f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/link/zipball/846c25f58a1f02b93a00f2404e3626b6bf9b7807", - "reference": "846c25f58a1f02b93a00f2404e3626b6bf9b7807", + "url": "https://api.github.com/repos/php-fig/link/zipball/84b159194ecfd7eaa472280213976e96415433f7", + "reference": "84b159194ecfd7eaa472280213976e96415433f7", "shasum": "" }, "require": { "php": ">=8.0.0" }, + "suggest": { + "fig/link-util": "Provides some useful PSR-13 utilities" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3643,22 +3596,22 @@ "rest" ], "support": { - "source": "https://github.com/php-fig/link/tree/1.1.1" + "source": "https://github.com/php-fig/link/tree/2.0.1" }, - "time": "2021-03-11T22:59:13+00:00" + "time": "2021-03-11T23:00:27+00:00" }, { "name": "psr/log", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { @@ -3667,7 +3620,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { @@ -3693,9 +3646,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "time": "2021-07-14T16:41:46+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { "name": "ramsey/collection", @@ -3778,25 +3731,24 @@ }, { "name": "ramsey/uuid", - "version": "4.2.3", + "version": "4.3.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df" + "reference": "8505afd4fea63b81a85d3b7b53ac3cb8dc347c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", - "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/8505afd4fea63b81a85d3b7b53ac3cb8dc347c28", + "reference": "8505afd4fea63b81a85d3b7b53ac3cb8dc347c28", "shasum": "" }, "require": { "brick/math": "^0.8 || ^0.9", + "ext-ctype": "*", "ext-json": "*", - "php": "^7.2 || ^8.0", - "ramsey/collection": "^1.0", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php80": "^1.14" + "php": "^8.0", + "ramsey/collection": "^1.0" }, "replace": { "rhumsaa/uuid": "self.version" @@ -3833,20 +3785,17 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "4.x-dev" - }, "captainhook": { "force-install": true } }, "autoload": { - "psr-4": { - "Ramsey\\Uuid\\": "src/" - }, "files": [ "src/functions.php" - ] + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3860,7 +3809,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.2.3" + "source": "https://github.com/ramsey/uuid/tree/4.3.1" }, "funding": [ { @@ -3872,20 +3821,20 @@ "type": "tidelift" } ], - "time": "2021-09-25T23:10:38+00:00" + "time": "2022-03-27T21:42:02+00:00" }, { "name": "ramsey/uuid-doctrine", - "version": "1.8.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid-doctrine.git", - "reference": "135fadb32d91a2d7c0ee12bfd21631d2035cfa0c" + "reference": "1a6f235ba3faf1cd9ba18daf5b54d8dc9d3bc7d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid-doctrine/zipball/135fadb32d91a2d7c0ee12bfd21631d2035cfa0c", - "reference": "135fadb32d91a2d7c0ee12bfd21631d2035cfa0c", + "url": "https://api.github.com/repos/ramsey/uuid-doctrine/zipball/1a6f235ba3faf1cd9ba18daf5b54d8dc9d3bc7d0", + "reference": "1a6f235ba3faf1cd9ba18daf5b54d8dc9d3bc7d0", "shasum": "" }, "require": { @@ -3927,7 +3876,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid-doctrine/issues", - "source": "https://github.com/ramsey/uuid-doctrine/tree/1.8.0" + "source": "https://github.com/ramsey/uuid-doctrine/tree/1.8.1" }, "funding": [ { @@ -3939,36 +3888,36 @@ "type": "tidelift" } ], - "time": "2021-11-08T03:04:18+00:00" + "time": "2022-01-15T23:54:44+00:00" }, { "name": "react/promise", - "version": "v2.8.0", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4" + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910", + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910", "shasum": "" }, "require": { "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { - "psr-4": { - "React\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "React\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3977,7 +3926,23 @@ "authors": [ { "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com" + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], "description": "A lightweight implementation of CommonJS Promises/A for PHP", @@ -3987,9 +3952,19 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.8.0" + "source": "https://github.com/reactphp/promise/tree/v2.9.0" }, - "time": "2020-05-12T15:16:56+00:00" + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-02-11T10:27:51+00:00" }, { "name": "sensio/framework-extra-bundle", @@ -4069,30 +4044,77 @@ }, "time": "2022-01-14T11:51:13+00:00" }, + { + "name": "stella-maris/clock", + "version": "0.1.4", + "source": { + "type": "git", + "url": "https://gitlab.com/stella-maris/clock.git", + "reference": "8a0a967896df4c63417385dc69328a0aec84d9cf" + }, + "dist": { + "type": "zip", + "url": "https://gitlab.com/api/v4/projects/stella-maris%2Fclock/repository/archive.zip?sha=8a0a967896df4c63417385dc69328a0aec84d9cf", + "reference": "8a0a967896df4c63417385dc69328a0aec84d9cf", + "shasum": "" + }, + "require": { + "php": "^7.0|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "StellaMaris\\Clock\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andreas Heigl", + "role": "Maintainer" + } + ], + "description": "A pre-release of the proposed PSR-20 Clock-Interface", + "homepage": "https://gitlab.com/stella-maris/clock", + "keywords": [ + "clock", + "datetime", + "point in time", + "psr20" + ], + "support": { + "issues": "https://gitlab.com/stella-maris/clock/-/issues", + "source": "https://gitlab.com/stella-maris/clock/-/tree/0.1.4" + }, + "time": "2022-04-17T14:12:26+00:00" + }, { "name": "symfony/amqp-messenger", - "version": "v5.4.0", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/amqp-messenger.git", - "reference": "0755d69e70be3f35f83b1ad496be4d3c6a87558c" + "reference": "ea0266d00badb571266e9b3debc5d1df0f1a9f7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/0755d69e70be3f35f83b1ad496be4d3c6a87558c", - "reference": "0755d69e70be3f35f83b1ad496be4d3c6a87558c", + "url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/ea0266d00badb571266e9b3debc5d1df0f1a9f7b", + "reference": "ea0266d00badb571266e9b3debc5d1df0f1a9f7b", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/messenger": "^5.3|^6.0" + "ext-amqp": "*", + "php": ">=8.0.2", + "symfony/messenger": "^5.4|^6.0" }, "require-dev": { - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "type": "symfony-messenger-bridge", "autoload": { @@ -4120,7 +4142,7 @@ "description": "Symfony AMQP extension Messenger Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/amqp-messenger/tree/v5.4.0" + "source": "https://github.com/symfony/amqp-messenger/tree/v6.0.7" }, "funding": [ { @@ -4136,34 +4158,32 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-03-31T17:22:53+00:00" }, { "name": "symfony/asset", - "version": "v5.4.0", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "49e355b57b4b6a5cef1d2dbc4e36cee49369cf7d" + "reference": "ccbcf5cdc864929e64f2ca138a61bb6afb0fb710" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/49e355b57b4b6a5cef1d2dbc4e36cee49369cf7d", - "reference": "49e355b57b4b6a5cef1d2dbc4e36cee49369cf7d", + "url": "https://api.github.com/repos/symfony/asset/zipball/ccbcf5cdc864929e64f2ca138a61bb6afb0fb710", + "reference": "ccbcf5cdc864929e64f2ca138a61bb6afb0fb710", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "conflict": { - "symfony/http-foundation": "<5.3" + "symfony/http-foundation": "<5.4" }, "require-dev": { - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^5.3|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0" + "symfony/http-client": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0" }, "suggest": { "symfony/http-foundation": "" @@ -4194,7 +4214,7 @@ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset/tree/v5.4.0" + "source": "https://github.com/symfony/asset/tree/v6.0.7" }, "funding": [ { @@ -4210,56 +4230,52 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-03-18T16:06:28+00:00" }, { "name": "symfony/cache", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "8aad4b69a10c5c51ab54672e78995860f5e447ec" + "reference": "e9a4e9229f078d93f2c492ea30c3f010373312b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/8aad4b69a10c5c51ab54672e78995860f5e447ec", - "reference": "8aad4b69a10c5c51ab54672e78995860f5e447ec", + "url": "https://api.github.com/repos/symfony/cache/zipball/e9a4e9229f078d93f2c492ea30c3f010373312b7", + "reference": "e9a4e9229f078d93f2c492ea30c3f010373312b7", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/cache": "^1.0|^2.0", + "php": ">=8.0.2", + "psr/cache": "^2.0|^3.0", "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^1.1.7|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", + "symfony/cache-contracts": "^1.1.7|^2|^3", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "symfony/var-exporter": "^5.4|^6.0" }, "conflict": { "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<4.4", - "symfony/http-kernel": "<4.4", - "symfony/var-dumper": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/var-dumper": "<5.4" }, "provide": { - "psr/cache-implementation": "1.0|2.0", - "psr/simple-cache-implementation": "1.0|2.0", - "symfony/cache-implementation": "1.0|2.0" + "psr/cache-implementation": "2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0", + "symfony/cache-implementation": "1.1|2.0|3.0" }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/cache": "^1.6|^2.0", "doctrine/dbal": "^2.13.1|^3.0", "predis/predis": "^1.1", - "psr/simple-cache": "^1.0|^2.0", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/simple-cache": "^1.0|^2.0|^3.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -4291,7 +4307,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.2" + "source": "https://github.com/symfony/cache/tree/v6.0.8" }, "funding": [ { @@ -4307,25 +4323,25 @@ "type": "tidelift" } ], - "time": "2021-12-28T17:15:56+00:00" + "time": "2022-04-26T13:22:23+00:00" }, { "name": "symfony/cache-contracts", - "version": "v2.5.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "ac2e168102a2e06a2624f0379bde94cd5854ced2" + "reference": "1c0a181c9ee221afe4fa55b2d13fc63c5ae14348" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ac2e168102a2e06a2624f0379bde94cd5854ced2", - "reference": "ac2e168102a2e06a2624f0379bde94cd5854ced2", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/1c0a181c9ee221afe4fa55b2d13fc63c5ae14348", + "reference": "1c0a181c9ee221afe4fa55b2d13fc63c5ae14348", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/cache": "^1.0|^2.0|^3.0" + "php": ">=8.0.2", + "psr/cache": "^3.0" }, "suggest": { "symfony/cache-implementation": "" @@ -4333,7 +4349,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -4370,7 +4386,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.0.1" }, "funding": [ { @@ -4386,39 +4402,38 @@ "type": "tidelift" } ], - "time": "2021-08-17T14:20:01+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/config", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "2e082dae50da563c639119b7b52347a2a3db4ba5" + "reference": "6ac50d559aa64c8e7b5b17640c46241e4accb487" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/2e082dae50da563c639119b7b52347a2a3db4ba5", - "reference": "2e082dae50da563c639119b7b52347a2a3db4ba5", + "url": "https://api.github.com/repos/symfony/config/zipball/6ac50d559aa64c8e7b5b17640c46241e4accb487", + "reference": "6ac50d559aa64c8e7b5b17640c46241e4accb487", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^5.4|^6.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16", "symfony/polyfill-php81": "^1.22" }, "conflict": { "symfony/finder": "<4.4" }, "require-dev": { - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" @@ -4449,7 +4464,7 @@ "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.4.2" + "source": "https://github.com/symfony/config/tree/v6.0.8" }, "funding": [ { @@ -4465,50 +4480,46 @@ "type": "tidelift" } ], - "time": "2021-12-15T11:06:13+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/console", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e" + "reference": "0d00aa289215353aa8746a31d101f8e60826285c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e", - "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e", + "url": "https://api.github.com/repos/symfony/console/zipball/0d00aa289215353aa8746a31d101f8e60826285c", + "reference": "0d00aa289215353aa8746a31d101f8e60826285c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "symfony/string": "^5.4|^6.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -4548,7 +4559,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.2" + "source": "https://github.com/symfony/console/tree/v6.0.8" }, "funding": [ { @@ -4564,45 +4575,44 @@ "type": "tidelift" } ], - "time": "2021-12-20T16:11:12+00:00" + "time": "2022-04-20T15:01:42+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "ba94559be9738d77cd29e24b5d81cf3b89b7d628" + "reference": "571041cd7e765664cc527b461ee41be3013aa08e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ba94559be9738d77cd29e24b5d81cf3b89b7d628", - "reference": "ba94559be9738d77cd29e24b5d81cf3b89b7d628", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/571041cd7e765664cc527b461ee41be3013aa08e", + "reference": "571041cd7e765664cc527b461ee41be3013aa08e", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1.1", + "php": ">=8.0.2", + "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16", "symfony/polyfill-php81": "^1.22", - "symfony/service-contracts": "^1.1.6|^2" + "symfony/service-contracts": "^1.1.6|^2.0|^3.0" }, "conflict": { "ext-psr": "<1.1|>=2", - "symfony/config": "<5.3", - "symfony/finder": "<4.4", - "symfony/proxy-manager-bridge": "<4.4", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/finder": "<5.4", + "symfony/proxy-manager-bridge": "<5.4", + "symfony/yaml": "<5.4" }, "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0|2.0" + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" }, "require-dev": { - "symfony/config": "^5.3|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/config": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "symfony/config": "", @@ -4637,7 +4647,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.2" + "source": "https://github.com/symfony/dependency-injection/tree/v6.0.8" }, "funding": [ { @@ -4653,20 +4663,20 @@ "type": "tidelift" } ], - "time": "2021-12-29T10:10:35+00:00" + "time": "2022-04-26T13:22:23+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", "shasum": "" }, "require": { @@ -4704,7 +4714,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.1" }, "funding": [ { @@ -4720,30 +4730,29 @@ "type": "tidelift" } ], - "time": "2021-11-01T23:48:49+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/doctrine-bridge", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "1afa4465ead0d1f59decc8cb6111b89848e819d3" + "reference": "0f5320648511f7bdb65e3986dd8a0546144eefbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/1afa4465ead0d1f59decc8cb6111b89848e819d3", - "reference": "1afa4465ead0d1f59decc8cb6111b89848e819d3", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/0f5320648511f7bdb65e3986dd8a0546144eefbb", + "reference": "0f5320648511f7bdb65e3986dd8a0546144eefbb", "shasum": "" }, "require": { "doctrine/event-manager": "~1.0", - "doctrine/persistence": "^2", - "php": ">=7.2.5", + "doctrine/persistence": "^2|^3", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2|^3" }, "conflict": { @@ -4752,15 +4761,14 @@ "doctrine/orm": "<2.7.4", "phpunit/phpunit": "<5.4.3", "symfony/cache": "<5.4", - "symfony/dependency-injection": "<4.4", - "symfony/form": "<5.1", - "symfony/http-kernel": "<5", - "symfony/messenger": "<4.4", - "symfony/property-info": "<5", - "symfony/proxy-manager-bridge": "<4.4.19", - "symfony/security-bundle": "<5", - "symfony/security-core": "<5.3", - "symfony/validator": "<5.2" + "symfony/dependency-injection": "<5.4", + "symfony/form": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<5.4", + "symfony/property-info": "<5.4", + "symfony/security-bundle": "<5.4", + "symfony/security-core": "<6.0", + "symfony/validator": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.10.4", @@ -4770,22 +4778,22 @@ "doctrine/orm": "^2.7.4", "psr/log": "^1|^2|^3", "symfony/cache": "^5.4|^6.0", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/doctrine-messenger": "^5.1|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/form": "^5.1.3|^6.0", - "symfony/http-kernel": "^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.0|^6.0", - "symfony/property-info": "^5.0|^6.0", - "symfony/proxy-manager-bridge": "^4.4|^5.0|^6.0", - "symfony/security-core": "^5.3|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", - "symfony/validator": "^5.2|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/doctrine-messenger": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/proxy-manager-bridge": "^5.4|^6.0", + "symfony/security-core": "^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "doctrine/data-fixtures": "", @@ -4821,7 +4829,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v5.4.2" + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.0.8" }, "funding": [ { @@ -4837,36 +4845,35 @@ "type": "tidelift" } ], - "time": "2021-12-25T19:46:58+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/doctrine-messenger", - "version": "v5.4.0", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-messenger.git", - "reference": "62897fdc6bce5106405faa9ddfa005c6dced6ffc" + "reference": "6a18673b06953120a42d034388be401cb113b687" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/62897fdc6bce5106405faa9ddfa005c6dced6ffc", - "reference": "62897fdc6bce5106405faa9ddfa005c6dced6ffc", + "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/6a18673b06953120a42d034388be401cb113b687", + "reference": "6a18673b06953120a42d034388be401cb113b687", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/messenger": "^5.1|^6.0", + "doctrine/dbal": "^2.13|^3.0", + "php": ">=8.0.2", + "symfony/messenger": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3" }, "conflict": { - "doctrine/dbal": "<2.13", "doctrine/persistence": "<1.3" }, "require-dev": { - "doctrine/dbal": "^2.13|^3.0", - "doctrine/persistence": "^1.3|^2", - "symfony/property-access": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "doctrine/persistence": "^1.3|^2|^3", + "symfony/property-access": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "type": "symfony-messenger-bridge", "autoload": { @@ -4894,7 +4901,7 @@ "description": "Symfony Doctrine Messenger Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-messenger/tree/v5.4.0" + "source": "https://github.com/symfony/doctrine-messenger/tree/v6.0.8" }, "funding": [ { @@ -4910,29 +4917,28 @@ "type": "tidelift" } ], - "time": "2021-11-29T15:30:56+00:00" + "time": "2022-04-27T17:10:30+00:00" }, { "name": "symfony/dotenv", - "version": "v5.4.2", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "1f28b9b3edf9da7e2c4b295dcd1df291ccb498d3" + "reference": "1c2288fdfd0787288cd04b9868f879f2212159c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/1f28b9b3edf9da7e2c4b295dcd1df291ccb498d3", - "reference": "1f28b9b3edf9da7e2c4b295dcd1df291ccb498d3", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/1c2288fdfd0787288cd04b9868f879f2212159c4", + "reference": "1c2288fdfd0787288cd04b9868f879f2212159c4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.0.2" }, "require-dev": { - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0" + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -4965,7 +4971,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.4.2" + "source": "https://github.com/symfony/dotenv/tree/v6.0.5" }, "funding": [ { @@ -4981,31 +4987,31 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:52:00+00:00" + "time": "2022-02-21T17:15:17+00:00" }, { "name": "symfony/error-handler", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "e0c0dd0f9d4120a20158fc9aec2367d07d38bc56" + "reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/e0c0dd0f9d4120a20158fc9aec2367d07d38bc56", - "reference": "e0c0dd0f9d4120a20158fc9aec2367d07d38bc56", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/5e2795163acbd13b3cd46835c9f8f6c5d0a3a280", + "reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "symfony/var-dumper": "^5.4|^6.0" }, "require-dev": { "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/http-kernel": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -5036,7 +5042,7 @@ "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.4.2" + "source": "https://github.com/symfony/error-handler/tree/v6.0.8" }, "funding": [ { @@ -5052,44 +5058,42 @@ "type": "tidelift" } ], - "time": "2021-12-19T20:02:00+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.0", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb" + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/27d39ae126352b9fa3be5e196ccf4617897be3eb", - "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934", + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher-contracts": "^2|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/event-dispatcher-contracts": "^2|^3" }, "conflict": { - "symfony/dependency-injection": "<4.4" + "symfony/dependency-injection": "<5.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^4.4|^5.0|^6.0" + "symfony/stopwatch": "^5.4|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -5121,7 +5125,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.3" }, "funding": [ { @@ -5137,20 +5141,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "aa5422287b75594b90ee9cd807caf8f0df491385" + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/aa5422287b75594b90ee9cd807caf8f0df491385", - "reference": "aa5422287b75594b90ee9cd807caf8f0df491385", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", "shasum": "" }, "require": { @@ -5200,7 +5204,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.1" }, "funding": [ { @@ -5216,25 +5220,25 @@ "type": "tidelift" } ], - "time": "2021-07-15T12:33:35+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/expression-language", - "version": "v5.4.0", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "aff6ee3cf4ac1f37f5c7dad3f89f439dbe0893f2" + "reference": "7affe5d5e579cd89c664b364f74ce2d01d57cf29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/aff6ee3cf4ac1f37f5c7dad3f89f439dbe0893f2", - "reference": "aff6ee3cf4ac1f37f5c7dad3f89f439dbe0893f2", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/7affe5d5e579cd89c664b364f74ce2d01d57cf29", + "reference": "7affe5d5e579cd89c664b364f74ce2d01d57cf29", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/cache": "^4.4|^5.0|^6.0", + "php": ">=8.0.2", + "symfony/cache": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3" }, "type": "library", @@ -5263,7 +5267,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v5.4.0" + "source": "https://github.com/symfony/expression-language/tree/v6.0.8" }, "funding": [ { @@ -5279,27 +5283,26 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.0", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01" + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/731f917dc31edcffec2c6a777f3698c33bea8f01", - "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.8" }, "type": "library", "autoload": { @@ -5327,7 +5330,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.0" + "source": "https://github.com/symfony/filesystem/tree/v6.0.7" }, "funding": [ { @@ -5343,26 +5346,24 @@ "type": "tidelift" } ], - "time": "2021-10-28T13:39:27+00:00" + "time": "2022-04-01T12:54:51+00:00" }, { "name": "symfony/finder", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "e77046c252be48c48a40816187ed527703c8f76c" + "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/e77046c252be48c48a40816187ed527703c8f76c", - "reference": "e77046c252be48c48a40816187ed527703c8f76c", + "url": "https://api.github.com/repos/symfony/finder/zipball/af7edab28d17caecd1f40a9219fc646ae751c21f", + "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -5390,7 +5391,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.2" + "source": "https://github.com/symfony/finder/tree/v6.0.8" }, "funding": [ { @@ -5406,20 +5407,20 @@ "type": "tidelift" } ], - "time": "2021-12-15T11:06:13+00:00" + "time": "2022-04-15T08:07:58+00:00" }, { "name": "symfony/flex", - "version": "v2.0.1", + "version": "v2.1.7", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "3dbfa5c4e3308fd9def9a2006a20fa0c272a30a2" + "reference": "3eb57ba4b5d3f14cdaafe030936421c22e9f98a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/3dbfa5c4e3308fd9def9a2006a20fa0c272a30a2", - "reference": "3dbfa5c4e3308fd9def9a2006a20fa0c272a30a2", + "url": "https://api.github.com/repos/symfony/flex/zipball/3eb57ba4b5d3f14cdaafe030936421c22e9f98a2", + "reference": "3eb57ba4b5d3f14cdaafe030936421c22e9f98a2", "shasum": "" }, "require": { @@ -5455,7 +5456,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.0.1" + "source": "https://github.com/symfony/flex/tree/v2.1.7" }, "funding": [ { @@ -5471,61 +5472,60 @@ "type": "tidelift" } ], - "time": "2021-11-29T15:40:20+00:00" + "time": "2022-04-15T08:20:43+00:00" }, { "name": "symfony/form", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "2083142efa11a2e32c71a78c8f8cce0c1210fa10" + "reference": "fcc661f2eef31f556306c74829c02d8ca724495f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/2083142efa11a2e32c71a78c8f8cce0c1210fa10", - "reference": "2083142efa11a2e32c71a78c8f8cce0c1210fa10", + "url": "https://api.github.com/repos/symfony/form/zipball/fcc661f2eef31f556306c74829c02d8ca724495f", + "reference": "fcc661f2eef31f556306c74829c02d8ca724495f", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/options-resolver": "^5.1|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/options-resolver": "^5.4|^6.0", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-icu": "^1.21", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", "symfony/polyfill-php81": "^1.23", - "symfony/property-access": "^5.0.8|^6.0", + "symfony/property-access": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3" }, "conflict": { "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/translation": "<4.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/error-handler": "<5.4", + "symfony/framework-bundle": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/translation": "<5.4", "symfony/translation-contracts": "<1.1.7", - "symfony/twig-bridge": "<4.4" + "symfony/twig-bridge": "<5.4" }, "require-dev": { "doctrine/collections": "~1.0", - "symfony/config": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/intl": "^4.4|^5.0|^6.0", - "symfony/security-csrf": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", - "symfony/validator": "^4.4.17|^5.1.9|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/security-csrf": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "symfony/security-csrf": "For protecting forms against CSRF attacks.", @@ -5558,7 +5558,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v5.4.2" + "source": "https://github.com/symfony/form/tree/v6.0.8" }, "funding": [ { @@ -5574,105 +5574,100 @@ "type": "tidelift" } ], - "time": "2021-12-22T13:15:36+00:00" + "time": "2022-04-23T15:25:26+00:00" }, { "name": "symfony/framework-bundle", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "2e6b8b208a998a08a94be407498f21bae62a8a4a" + "reference": "94b0bde3cb679a683203864f02a3149e8c0cc54f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/2e6b8b208a998a08a94be407498f21bae62a8a4a", - "reference": "2e6b8b208a998a08a94be407498f21bae62a8a4a", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/94b0bde3cb679a683203864f02a3149e8c0cc54f", + "reference": "94b0bde3cb679a683203864f02a3149e8c0cc54f", "shasum": "" }, "require": { + "composer-runtime-api": ">=2.1", "ext-xml": "*", - "php": ">=7.2.5", - "symfony/cache": "^5.2|^6.0", - "symfony/config": "^5.3|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^4.4.1|^5.0.1|^6.0", - "symfony/event-dispatcher": "^5.1|^6.0", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^5.3|^6.0", + "php": ">=8.0.2", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4.5|^6.0.5", + "symfony/error-handler": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", "symfony/http-kernel": "^5.4|^6.0", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", "symfony/polyfill-php81": "^1.22", - "symfony/routing": "^5.3|^6.0" + "symfony/routing": "^5.4|^6.0" }, "conflict": { "doctrine/annotations": "<1.13.1", - "doctrine/cache": "<1.11", "doctrine/persistence": "<1.3", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "phpunit/phpunit": "<5.4.3", - "symfony/asset": "<5.3", - "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": "<5.2", + "symfony/asset": "<5.4", + "symfony/console": "<5.4", + "symfony/dom-crawler": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/lock": "<5.4", + "symfony/mailer": "<5.4", "symfony/messenger": "<5.4", - "symfony/mime": "<4.4", - "symfony/property-access": "<5.3", - "symfony/property-info": "<4.4", - "symfony/security-csrf": "<5.3", - "symfony/serializer": "<5.2", - "symfony/service-contracts": ">=3.0", - "symfony/stopwatch": "<4.4", - "symfony/translation": "<5.3", - "symfony/twig-bridge": "<4.4", - "symfony/twig-bundle": "<4.4", - "symfony/validator": "<5.2", - "symfony/web-profiler-bundle": "<4.4", - "symfony/workflow": "<5.2" + "symfony/mime": "<5.4", + "symfony/property-access": "<5.4", + "symfony/property-info": "<5.4", + "symfony/security-core": "<5.4", + "symfony/security-csrf": "<5.4", + "symfony/serializer": "<5.4", + "symfony/stopwatch": "<5.4", + "symfony/translation": "<5.4", + "symfony/twig-bridge": "<5.4", + "symfony/twig-bundle": "<5.4", + "symfony/validator": "<5.4", + "symfony/web-profiler-bundle": "<5.4", + "symfony/workflow": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.13.1", - "doctrine/cache": "^1.11|^2.0", - "doctrine/persistence": "^1.3|^2.0", - "paragonie/sodium_compat": "^1.8", + "doctrine/persistence": "^1.3|^2|^3", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^5.3|^6.0", + "symfony/asset": "^5.4|^6.0", "symfony/browser-kit": "^5.4|^6.0", "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/dom-crawler": "^4.4.30|^5.3.7|^6.0", - "symfony/dotenv": "^5.1|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/form": "^5.2|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/mailer": "^5.2|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/dotenv": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/mailer": "^5.4|^6.0", "symfony/messenger": "^5.4|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.4|^6.0", "symfony/notifier": "^5.4|^6.0", - "symfony/phpunit-bridge": "^5.3|^6.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/property-info": "^4.4|^5.0|^6.0", - "symfony/rate-limiter": "^5.2|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/rate-limiter": "^5.4|^6.0", "symfony/security-bundle": "^5.4|^6.0", "symfony/serializer": "^5.4|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/string": "^5.0|^6.0", - "symfony/translation": "^5.3|^6.0", - "symfony/twig-bundle": "^4.4|^5.0|^6.0", - "symfony/validator": "^5.2|^6.0", - "symfony/web-link": "^4.4|^5.0|^6.0", - "symfony/workflow": "^5.2|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/string": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/twig-bundle": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/web-link": "^5.4|^6.0", + "symfony/workflow": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0", "twig/twig": "^2.10|^3.0" }, "suggest": { @@ -5711,7 +5706,7 @@ "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.4.2" + "source": "https://github.com/symfony/framework-bundle/tree/v6.0.8" }, "funding": [ { @@ -5727,36 +5722,33 @@ "type": "tidelift" } ], - "time": "2021-12-22T00:01:28+00:00" + "time": "2022-04-26T13:36:14+00:00" }, { "name": "symfony/http-client", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "5e344f1402584a56631c81a24ec9403e3159c790" + "reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/5e344f1402584a56631c81a24ec9403e3159c790", - "reference": "5e344f1402584a56631c81a24ec9403e3159c790", + "url": "https://api.github.com/repos/symfony/http-client/zipball/d347895193283e08b4c3ebf2f2974a1df3e1f670", + "reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-client-contracts": "^2.4", - "symfony/polyfill-php73": "^1.11", - "symfony/polyfill-php80": "^1.16", + "symfony/http-client-contracts": "^3", "symfony/service-contracts": "^1.0|^2|^3" }, "provide": { "php-http/async-client-implementation": "*", "php-http/client-implementation": "*", "psr/http-client-implementation": "1.0", - "symfony/http-client-implementation": "2.4" + "symfony/http-client-implementation": "3.0" }, "require-dev": { "amphp/amp": "^2.5", @@ -5767,10 +5759,10 @@ "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0" + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -5798,7 +5790,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.2" + "source": "https://github.com/symfony/http-client/tree/v6.0.8" }, "funding": [ { @@ -5814,24 +5806,24 @@ "type": "tidelift" } ], - "time": "2021-12-29T10:10:35+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v2.5.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "ec82e57b5b714dbb69300d348bd840b345e24166" + "reference": "f7525778c712be78ad5b6ca31f47fdcfd404c280" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ec82e57b5b714dbb69300d348bd840b345e24166", - "reference": "ec82e57b5b714dbb69300d348bd840b345e24166", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/f7525778c712be78ad5b6ca31f47fdcfd404c280", + "reference": "f7525778c712be78ad5b6ca31f47fdcfd404c280", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=8.0.2" }, "suggest": { "symfony/http-client-implementation": "" @@ -5839,7 +5831,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -5876,7 +5868,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.0.1" }, "funding": [ { @@ -5892,33 +5884,32 @@ "type": "tidelift" } ], - "time": "2021-11-03T09:24:47+00:00" + "time": "2022-03-13T20:10:05+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ce952af52877eaf3eab5d0c08cc0ea865ed37313" + "reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce952af52877eaf3eab5d0c08cc0ea865ed37313", - "reference": "ce952af52877eaf3eab5d0c08cc0ea865ed37313", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c9c86b02d7ef6f44f3154acc7de42831518afe7c", + "reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0" + "symfony/cache": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -5949,7 +5940,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.2" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.8" }, "funding": [ { @@ -5965,67 +5956,64 @@ "type": "tidelift" } ], - "time": "2021-12-28T17:15:56+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "35b7e9868953e0d1df84320bb063543369e43ef5" + "reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/35b7e9868953e0d1df84320bb063543369e43ef5", - "reference": "35b7e9868953e0d1df84320bb063543369e43ef5", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7aaf1cdc9cc2ad47e926f624efcb679883a39ca7", + "reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^5.0|^6.0", - "symfony/http-foundation": "^5.3.7|^6.0", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "psr/log": "^1|^2|^3", + "symfony/error-handler": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.0", - "symfony/config": "<5.0", - "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.3", - "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", + "symfony/cache": "<5.4", + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<5.4", "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", "symfony/browser-kit": "^5.4|^6.0", - "symfony/config": "^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, @@ -6061,7 +6049,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.2" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.8" }, "funding": [ { @@ -6077,41 +6065,33 @@ "type": "tidelift" } ], - "time": "2021-12-29T13:20:26+00:00" + "time": "2022-04-27T17:26:02+00:00" }, { "name": "symfony/intl", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "ee6512e06b1307ed61b32d292ecd8ee9c10e034c" + "reference": "2ef7cb9af5ad4c3e2d7674326982366ad9dfef86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/ee6512e06b1307ed61b32d292ecd8ee9c10e034c", - "reference": "ee6512e06b1307ed61b32d292ecd8ee9c10e034c", + "url": "https://api.github.com/repos/symfony/intl/zipball/2ef7cb9af5ad4c3e2d7674326982366ad9dfef86", + "reference": "2ef7cb9af5ad4c3e2d7674326982366ad9dfef86", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "require-dev": { - "symfony/filesystem": "^4.4|^5.0|^6.0" + "symfony/filesystem": "^5.4|^6.0" }, "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Intl\\": "" }, - "classmap": [ - "Resources/stubs" - ], - "files": [ - "Resources/functions.php" - ], "exclude-from-classmap": [ "/Tests/" ] @@ -6149,7 +6129,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v5.4.2" + "source": "https://github.com/symfony/intl/tree/v6.0.8" }, "funding": [ { @@ -6165,27 +6145,25 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:58:21+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/lock", - "version": "v5.4.2", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "5e1d6adfff3b2586f2854188dd2fc35afe42dd59" + "reference": "dcbb2a00ddf90f0ea8d370c354e0cde1303bf4a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/5e1d6adfff3b2586f2854188dd2fc35afe42dd59", - "reference": "5e1d6adfff3b2586f2854188dd2fc35afe42dd59", + "url": "https://api.github.com/repos/symfony/lock/zipball/dcbb2a00ddf90f0ea8d370c354e0cde1303bf4a5", + "reference": "dcbb2a00ddf90f0ea8d370c354e0cde1303bf4a5", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "psr/log": "^1|^2|^3" }, "conflict": { "doctrine/dbal": "<2.13" @@ -6228,7 +6206,7 @@ "semaphore" ], "support": { - "source": "https://github.com/symfony/lock/tree/v5.4.2" + "source": "https://github.com/symfony/lock/tree/v6.0.7" }, "funding": [ { @@ -6244,39 +6222,37 @@ "type": "tidelift" } ], - "time": "2021-12-29T10:12:08+00:00" + "time": "2022-03-22T16:12:04+00:00" }, { "name": "symfony/mailer", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "309ba427654351dcad9691bef817b96920ebd2cf" + "reference": "706af6b3e99ebcbc639c9c664f5579aaa869409b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/309ba427654351dcad9691bef817b96920ebd2cf", - "reference": "309ba427654351dcad9691bef817b96920ebd2cf", + "url": "https://api.github.com/repos/symfony/mailer/zipball/706af6b3e99ebcbc639c9c664f5579aaa869409b", + "reference": "706af6b3e99ebcbc639c9c664f5579aaa869409b", "shasum": "" }, "require": { "egulias/email-validator": "^2.1.10|^3", - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/mime": "^5.2.6|^6.0", - "symfony/polyfill-php80": "^1.16", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3" }, "conflict": { - "symfony/http-kernel": "<4.4" + "symfony/http-kernel": "<5.4" }, "require-dev": { "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/messenger": "^4.4|^5.0|^6.0" + "symfony/messenger": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -6304,7 +6280,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v5.4.2" + "source": "https://github.com/symfony/mailer/tree/v6.0.8" }, "funding": [ { @@ -6320,50 +6296,45 @@ "type": "tidelift" } ], - "time": "2021-12-11T16:33:38+00:00" + "time": "2022-04-27T17:10:30+00:00" }, { "name": "symfony/messenger", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/messenger.git", - "reference": "c35f9937b3bde678377ec0d5879760ad007cb500" + "reference": "8ba92cff412af800ac9232728f0f659f2261a230" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/c35f9937b3bde678377ec0d5879760ad007cb500", - "reference": "c35f9937b3bde678377ec0d5879760ad007cb500", + "url": "https://api.github.com/repos/symfony/messenger/zipball/8ba92cff412af800ac9232728f0f659f2261a230", + "reference": "8ba92cff412af800ac9232728f0f659f2261a230", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2|^3", - "symfony/amqp-messenger": "^5.1|^6.0", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/doctrine-messenger": "^5.1|^6.0", - "symfony/polyfill-php80": "^1.16", - "symfony/redis-messenger": "^5.1|^6.0" + "php": ">=8.0.2", + "psr/log": "^1|^2|^3" }, "conflict": { - "symfony/event-dispatcher": "<4.4", - "symfony/framework-bundle": "<4.4", - "symfony/http-kernel": "<4.4", - "symfony/serializer": "<5.0" + "symfony/event-dispatcher": "<5.4", + "symfony/framework-bundle": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/serializer": "<5.4" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/serializer": "^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/validator": "^4.4|^5.0|^6.0" + "symfony/stopwatch": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0" }, "suggest": { "enqueue/messenger-adapter": "For using the php-enqueue library as a transport." @@ -6394,7 +6365,7 @@ "description": "Helps applications send and receive messages to/from other applications or via message queues", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/messenger/tree/v5.4.2" + "source": "https://github.com/symfony/messenger/tree/v6.0.8" }, "funding": [ { @@ -6410,42 +6381,40 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:52:00+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/mime", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "1bfd938cf9562822c05c4d00e8f92134d3c8e42d" + "reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/1bfd938cf9562822c05c4d00e8f92134d3c8e42d", - "reference": "1bfd938cf9562822c05c4d00e8f92134d3c8e42d", + "url": "https://api.github.com/repos/symfony/mime/zipball/c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1", + "reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" + "symfony/mailer": "<5.4" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.1|^6.0", - "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.2|^6.0" + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -6477,7 +6446,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.2" + "source": "https://github.com/symfony/mime/tree/v6.0.8" }, "funding": [ { @@ -6493,42 +6462,41 @@ "type": "tidelift" } ], - "time": "2021-12-28T17:15:56+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v5.4.0", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "6ce6f39536a718ec2ece37eae81c6899030fc571" + "reference": "10d90ee25c6a76c12d4bbe8721e354c287e177da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/6ce6f39536a718ec2ece37eae81c6899030fc571", - "reference": "6ce6f39536a718ec2ece37eae81c6899030fc571", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/10d90ee25c6a76c12d4bbe8721e354c287e177da", + "reference": "10d90ee25c6a76c12d4bbe8721e354c287e177da", "shasum": "" }, "require": { "monolog/monolog": "^1.25.1|^2", - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^5.3|^6.0", - "symfony/polyfill-php80": "^1.16", + "php": ">=8.0.2", + "symfony/http-kernel": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3" }, "conflict": { - "symfony/console": "<4.4", - "symfony/http-foundation": "<5.3" + "symfony/console": "<5.4", + "symfony/http-foundation": "<5.4", + "symfony/security-core": "<6.0" }, "require-dev": { - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/mailer": "^4.4|^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/security-core": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "symfony/console": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/mailer": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/security-core": "^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", @@ -6561,7 +6529,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.0" + "source": "https://github.com/symfony/monolog-bridge/tree/v6.0.3" }, "funding": [ { @@ -6577,7 +6545,7 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/monolog-bundle", @@ -6662,50 +6630,30 @@ }, { "name": "symfony/notifier", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/notifier.git", - "reference": "f44110146319fb062e0450a80c70e2cc840bbb3a" + "reference": "1b81b376728538cdacbe3be6f750501f8c974451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/notifier/zipball/f44110146319fb062e0450a80c70e2cc840bbb3a", - "reference": "f44110146319fb062e0450a80c70e2cc840bbb3a", + "url": "https://api.github.com/repos/symfony/notifier/zipball/1b81b376728538cdacbe3be6f750501f8c974451", + "reference": "1b81b376728538cdacbe3be6f750501f8c974451", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2|^3", - "symfony/polyfill-php80": "^1.15" + "php": ">=8.0.2", + "psr/log": "^1|^2|^3" }, "conflict": { - "symfony/discord-notifier": "<5.3", - "symfony/esendex-notifier": "<5.3", - "symfony/firebase-notifier": "<5.3", - "symfony/free-mobile-notifier": "<5.3", - "symfony/google-chat-notifier": "<5.3", - "symfony/http-kernel": "<4.4", - "symfony/infobip-notifier": "<5.3", - "symfony/linked-in-notifier": "<5.3", - "symfony/mattermost-notifier": "<5.3", - "symfony/mobyt-notifier": "<5.3", - "symfony/nexmo-notifier": "<5.3", - "symfony/ovh-cloud-notifier": "<5.3", - "symfony/rocket-chat-notifier": "<5.3", - "symfony/sendinblue-notifier": "<5.3", - "symfony/sinch-notifier": "<5.3", - "symfony/slack-notifier": "<5.3", - "symfony/sms77-notifier": "<5.3", - "symfony/smsapi-notifier": "<5.3", - "symfony/telegram-notifier": "<5.3", - "symfony/twilio-notifier": "<5.3", - "symfony/zulip-notifier": "<5.3" + "symfony/event-dispatcher": "<5.4", + "symfony/http-kernel": "<5.4" }, "require-dev": { "symfony/event-dispatcher-contracts": "^2|^3", "symfony/http-client-contracts": "^2|^3", - "symfony/messenger": "^4.4|^5.0|^6.0" + "symfony/messenger": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -6737,7 +6685,7 @@ "notifier" ], "support": { - "source": "https://github.com/symfony/notifier/tree/v5.4.2" + "source": "https://github.com/symfony/notifier/tree/v6.0.8" }, "funding": [ { @@ -6753,27 +6701,25 @@ "type": "tidelift" } ], - "time": "2021-12-25T19:45:36+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.4.0", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "b0fb78576487af19c500aaddb269fd36701d4847" + "reference": "51f7006670febe4cbcbae177cbffe93ff833250d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b0fb78576487af19c500aaddb269fd36701d4847", - "reference": "b0fb78576487af19c500aaddb269fd36701d4847", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/51f7006670febe4cbcbae177cbffe93ff833250d", + "reference": "51f7006670febe4cbcbae177cbffe93ff833250d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php73": "~1.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.1|^3" }, "type": "library", "autoload": { @@ -6806,7 +6752,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.4.0" + "source": "https://github.com/symfony/options-resolver/tree/v6.0.3" }, "funding": [ { @@ -6822,32 +6768,31 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/password-hasher", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "62748882f339e2a00751af8375258cf1b66a1c57" + "reference": "b51d2155aafd5b03af0391e9e602538f6dc44f15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/62748882f339e2a00751af8375258cf1b66a1c57", - "reference": "62748882f339e2a00751af8375258cf1b66a1c57", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/b51d2155aafd5b03af0391e9e602538f6dc44f15", + "reference": "b51d2155aafd5b03af0391e9e602538f6dc44f15", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "php": ">=8.0.2" }, "conflict": { - "symfony/security-core": "<5.3" + "symfony/security-core": "<5.4" }, "require-dev": { - "symfony/console": "^5", - "symfony/security-core": "^5.3|^6.0" + "symfony/console": "^5.4|^6.0", + "symfony/security-core": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -6879,89 +6824,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v5.4.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-12-16T21:58:21+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", - "reference": "30885182c981ab175d4d034db0f6f469898070ab", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/password-hasher/tree/v6.0.8" }, "funding": [ { @@ -6977,11 +6840,11 @@ "type": "tidelift" } ], - "time": "2021-10-20T20:35:02+00:00" + "time": "2022-04-15T14:20:13+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -7010,12 +6873,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7042,7 +6905,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" }, "funding": [ { @@ -7062,7 +6925,7 @@ }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", @@ -7129,7 +6992,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.25.0" }, "funding": [ { @@ -7149,7 +7012,7 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", @@ -7180,12 +7043,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7216,7 +7079,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0" }, "funding": [ { @@ -7236,7 +7099,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -7265,12 +7128,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -7300,7 +7163,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -7319,46 +7182,32 @@ "time": "2021-02-19T12:13:01+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "name": "symfony/polyfill-php56", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", + "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", "shasum": "" }, "require": { "php": ">=7.1" }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", + "type": "metapackage", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -7373,17 +7222,16 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php56/tree/v1.20.0" }, "funding": [ { @@ -7399,410 +7247,24 @@ "type": "tidelift" } ], - "time": "2021-11-30T18:21:41+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/polyfill-php56", - "version": "v1.20.0", + "name": "symfony/process", + "version": "v6.0.8", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675" + "url": "https://github.com/symfony/process.git", + "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", - "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", + "url": "https://api.github.com/repos/symfony/process/zipball/d074154ea8b1443a96391f6e39f9e547b2dd01b9", + "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php56/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-27T09:17:38+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-06-05T21:20:04+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-09-13T13:58:33+00:00" - }, - { - "name": "symfony/polyfill-php81", - "version": "v1.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-09-13T13:58:11+00:00" - }, - { - "name": "symfony/process", - "version": "v5.4.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/2b3ba8722c4aaf3e88011be5e7f48710088fb5e4", - "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -7830,7 +7292,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.2" + "source": "https://github.com/symfony/process/tree/v6.0.8" }, "funding": [ { @@ -7846,30 +7308,28 @@ "type": "tidelift" } ], - "time": "2021-12-27T21:01:00+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/property-access", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "133c62a1be8a868134c4cced928568568d6b26f8" + "reference": "e5ac708a97933e9680b81b92eb90a5e301490d72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/133c62a1be8a868134c4cced928568568d6b26f8", - "reference": "133c62a1be8a868134c4cced928568568d6b26f8", + "url": "https://api.github.com/repos/symfony/property-access/zipball/e5ac708a97933e9680b81b92eb90a5e301490d72", + "reference": "e5ac708a97933e9680b81b92eb90a5e301490d72", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16", - "symfony/property-info": "^5.2|^6.0" + "php": ">=8.0.2", + "symfony/property-info": "^5.4|^6.0" }, "require-dev": { - "symfony/cache": "^4.4|^5.0|^6.0" + "symfony/cache": "^5.4|^6.0" }, "suggest": { "psr/cache-implementation": "To cache access methods." @@ -7911,7 +7371,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v5.4.2" + "source": "https://github.com/symfony/property-access/tree/v6.0.8" }, "funding": [ { @@ -7927,40 +7387,38 @@ "type": "tidelift" } ], - "time": "2021-12-11T16:33:38+00:00" + "time": "2022-04-20T15:01:42+00:00" }, { "name": "symfony/property-info", - "version": "v5.4.2", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "a32f813896ffb3b4710fca5af5b05bef600cf4f0" + "reference": "0f26f0870f05d65d5c06681ecbf36e546204f4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/a32f813896ffb3b4710fca5af5b05bef600cf4f0", - "reference": "a32f813896ffb3b4710fca5af5b05bef600cf4f0", + "url": "https://api.github.com/repos/symfony/property-info/zipball/0f26f0870f05d65d5c06681ecbf36e546204f4b5", + "reference": "0f26f0870f05d65d5c06681ecbf36e546204f4b5", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16", - "symfony/string": "^5.1|^6.0" + "php": ">=8.0.2", + "symfony/string": "^5.4|^6.0" }, "conflict": { - "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/dependency-injection": "<4.4" + "symfony/dependency-injection": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.10.4", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpdocumentor/reflection-docblock": "^5.2", "phpstan/phpdoc-parser": "^1.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/cache": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "suggest": { "phpdocumentor/reflection-docblock": "To use the PHPDoc", @@ -8002,7 +7460,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v5.4.2" + "source": "https://github.com/symfony/property-info/tree/v6.0.7" }, "funding": [ { @@ -8018,102 +7476,34 @@ "type": "tidelift" } ], - "time": "2021-12-26T13:30:54+00:00" + "time": "2022-03-31T17:18:25+00:00" }, { "name": "symfony/proxy-manager-bridge", - "version": "v5.4.2", + "version": "v6.0.6", "source": { "type": "git", "url": "https://github.com/symfony/proxy-manager-bridge.git", - "reference": "50aa8ac8012d414f2aed26be760e0654abec2d76" + "reference": "aa68a86bc7df5ee9ff39107f122ebf1931d98ff8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/50aa8ac8012d414f2aed26be760e0654abec2d76", - "reference": "50aa8ac8012d414f2aed26be760e0654abec2d76", + "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/aa68a86bc7df5ee9ff39107f122ebf1931d98ff8", + "reference": "aa68a86bc7df5ee9ff39107f122ebf1931d98ff8", "shasum": "" }, "require": { "friendsofphp/proxy-manager-lts": "^1.0.2", - "php": ">=7.2.5", - "symfony/dependency-injection": "^5.0|^6.0", - "symfony/polyfill-php80": "^1.16" - }, - "require-dev": { - "symfony/config": "^4.4|^5.0|^6.0" - }, - "type": "symfony-bridge", - "autoload": { - "psr-4": { - "Symfony\\Bridge\\ProxyManager\\": "" - }, - "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": "Provides integration for ProxyManager with various Symfony components", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/proxy-manager-bridge/tree/v5.4.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-12-25T19:45:36+00:00" - }, - { - "name": "symfony/redis-messenger", - "version": "v5.4.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/redis-messenger.git", - "reference": "b4bf15c6b735eeb52fbbe3c402aa4428d83f9794" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/redis-messenger/zipball/b4bf15c6b735eeb52fbbe3c402aa4428d83f9794", - "reference": "b4bf15c6b735eeb52fbbe3c402aa4428d83f9794", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/messenger": "^5.1|^6.0" + "php": ">=8.0.2", + "symfony/dependency-injection": "^5.4|^6.0" }, "require-dev": { - "symfony/property-access": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/config": "^5.4|^6.0" }, - "type": "symfony-messenger-bridge", + "type": "symfony-bridge", "autoload": { "psr-4": { - "Symfony\\Component\\Messenger\\Bridge\\Redis\\": "" + "Symfony\\Bridge\\ProxyManager\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -8133,10 +7523,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Redis extension Messenger Bridge", + "description": "Provides integration for ProxyManager with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/redis-messenger/tree/v5.4.2" + "source": "https://github.com/symfony/proxy-manager-bridge/tree/v6.0.6" }, "funding": [ { @@ -8152,41 +7542,39 @@ "type": "tidelift" } ], - "time": "2021-12-28T17:15:56+00:00" + "time": "2022-03-02T12:58:14+00:00" }, { "name": "symfony/routing", - "version": "v5.4.0", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "9eeae93c32ca86746e5d38f3679e9569981038b1" + "reference": "74c40c9fc334acc601a32fcf4274e74fb3bac11e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/9eeae93c32ca86746e5d38f3679e9569981038b1", - "reference": "9eeae93c32ca86746e5d38f3679e9569981038b1", + "url": "https://api.github.com/repos/symfony/routing/zipball/74c40c9fc334acc601a32fcf4274e74fb3bac11e", + "reference": "74c40c9fc334acc601a32fcf4274e74fb3bac11e", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "conflict": { "doctrine/annotations": "<1.12", - "symfony/config": "<5.3", - "symfony/dependency-injection": "<4.4", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12", "psr/log": "^1|^2|^3", - "symfony/config": "^5.3|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -8226,7 +7614,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.0" + "source": "https://github.com/symfony/routing/tree/v6.0.8" }, "funding": [ { @@ -8242,36 +7630,35 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/runtime", - "version": "v5.4.1", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "f7a8403ae0e6847e56881c3c106e4ea2ec4ef8c9" + "reference": "841d3f303349b2f4fbc25c3bd6349a901fb8e0dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/f7a8403ae0e6847e56881c3c106e4ea2ec4ef8c9", - "reference": "f7a8403ae0e6847e56881c3c106e4ea2ec4ef8c9", + "url": "https://api.github.com/repos/symfony/runtime/zipball/841d3f303349b2f4fbc25c3bd6349a901fb8e0dc", + "reference": "841d3f303349b2f4fbc25c3bd6349a901fb8e0dc", "shasum": "" }, "require": { "composer-plugin-api": "^1.0|^2.0", - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "php": ">=8.0.2" }, "conflict": { - "symfony/dotenv": "<5.1" + "symfony/dotenv": "<5.4" }, "require-dev": { "composer/composer": "^1.0.2|^2.0", - "symfony/console": "^4.4.30|^5.3.7|^6.0", - "symfony/dotenv": "^5.1|^6.0", - "symfony/http-foundation": "^4.4.30|^5.3.7|^6.0", - "symfony/http-kernel": "^4.4.30|^5.3.7|^6.0" + "symfony/console": "^5.4|^6.0", + "symfony/dotenv": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0" }, "type": "composer-plugin", "extra": { @@ -8303,7 +7690,7 @@ "description": "Enables decoupling PHP applications from global state", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/runtime/tree/v5.4.1" + "source": "https://github.com/symfony/runtime/tree/v6.0.8" }, "funding": [ { @@ -8319,64 +7706,62 @@ "type": "tidelift" } ], - "time": "2021-12-01T15:47:38+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/security-bundle", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "4da15c5a30ec90acb4dd2d27b2e046385212192e" + "reference": "56a9b0991479bef39bac12c69efe8c0fada91809" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/4da15c5a30ec90acb4dd2d27b2e046385212192e", - "reference": "4da15c5a30ec90acb4dd2d27b2e046385212192e", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/56a9b0991479bef39bac12c69efe8c0fada91809", + "reference": "56a9b0991479bef39bac12c69efe8c0fada91809", "shasum": "" }, "require": { + "composer-runtime-api": ">=2.1", "ext-xml": "*", - "php": ">=7.2.5", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher": "^5.1|^6.0", - "symfony/http-foundation": "^5.3|^6.0", - "symfony/http-kernel": "^5.3|^6.0", - "symfony/password-hasher": "^5.3|^6.0", - "symfony/polyfill-php80": "^1.16", + "php": ">=8.0.2", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/password-hasher": "^5.4|^6.0", "symfony/security-core": "^5.4|^6.0", - "symfony/security-csrf": "^4.4|^5.0|^6.0", - "symfony/security-guard": "^5.3", + "symfony/security-csrf": "^5.4|^6.0", "symfony/security-http": "^5.4|^6.0" }, "conflict": { - "symfony/browser-kit": "<4.4", - "symfony/console": "<4.4", - "symfony/framework-bundle": "<4.4", - "symfony/ldap": "<5.1", - "symfony/twig-bundle": "<4.4" + "symfony/browser-kit": "<5.4", + "symfony/console": "<5.4", + "symfony/framework-bundle": "<5.4", + "symfony/ldap": "<5.4", + "symfony/twig-bundle": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.10.4", - "symfony/asset": "^4.4|^5.0|^6.0", - "symfony/browser-kit": "^4.4|^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/form": "^4.4|^5.0|^6.0", - "symfony/framework-bundle": "^5.3|^6.0", - "symfony/ldap": "^5.3|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/rate-limiter": "^5.2|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", - "symfony/twig-bridge": "^4.4|^5.0|^6.0", - "symfony/twig-bundle": "^4.4|^5.0|^6.0", - "symfony/validator": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0", + "symfony/asset": "^5.4|^6.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/framework-bundle": "^5.4|^6.0", + "symfony/ldap": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/rate-limiter": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/twig-bridge": "^5.4|^6.0", + "symfony/twig-bundle": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" }, "type": "symfony-bundle", @@ -8405,7 +7790,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v5.4.2" + "source": "https://github.com/symfony/security-bundle/tree/v6.0.8" }, "funding": [ { @@ -8421,48 +7806,46 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:58:21+00:00" + "time": "2022-04-20T15:35:19+00:00" }, { "name": "symfony/security-core", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "11d87d17650a5b8b21da8b6df208bfc8a9b918c7" + "reference": "36d56362f990e3327130af868a9bed608c6e08f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/11d87d17650a5b8b21da8b6df208bfc8a9b918c7", - "reference": "11d87d17650a5b8b21da8b6df208bfc8a9b918c7", + "url": "https://api.github.com/repos/symfony/security-core/zipball/36d56362f990e3327130af868a9bed608c6e08f9", + "reference": "36d56362f990e3327130af868a9bed608c6e08f9", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/event-dispatcher-contracts": "^1.1|^2|^3", - "symfony/password-hasher": "^5.3|^6.0", - "symfony/polyfill-php80": "^1.16", + "symfony/password-hasher": "^5.4|^6.0", "symfony/service-contracts": "^1.1.6|^2|^3" }, "conflict": { - "symfony/event-dispatcher": "<4.4", - "symfony/http-foundation": "<5.3", - "symfony/ldap": "<4.4", - "symfony/security-guard": "<4.4", - "symfony/validator": "<5.2" + "symfony/event-dispatcher": "<5.4", + "symfony/http-foundation": "<5.4", + "symfony/ldap": "<5.4", + "symfony/security-guard": "<5.4", + "symfony/validator": "<5.4" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "psr/container": "^1.0|^2.0", + "psr/container": "^1.1|^2.0", "psr/log": "^1|^2|^3", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^5.3|^6.0", - "symfony/ldap": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", - "symfony/validator": "^5.2|^6.0" + "symfony/cache": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/ldap": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0" }, "suggest": { "psr/container-implementation": "To instantiate the Security class", @@ -8498,7 +7881,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v5.4.2" + "source": "https://github.com/symfony/security-core/tree/v6.0.8" }, "funding": [ { @@ -8514,32 +7897,31 @@ "type": "tidelift" } ], - "time": "2021-12-28T17:15:56+00:00" + "time": "2022-04-15T08:07:58+00:00" }, { "name": "symfony/security-csrf", - "version": "v5.4.0", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "a6bfeedc3fcaafd2eb9ce61f0eb6a95e0316a3e2" + "reference": "fcf01e56fba0e7843da3205b9d05e4e86d3ef1f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/a6bfeedc3fcaafd2eb9ce61f0eb6a95e0316a3e2", - "reference": "a6bfeedc3fcaafd2eb9ce61f0eb6a95e0316a3e2", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/fcf01e56fba0e7843da3205b9d05e4e86d3ef1f9", + "reference": "fcf01e56fba0e7843da3205b9d05e4e86d3ef1f9", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16", - "symfony/security-core": "^4.4|^5.0|^6.0" + "php": ">=8.0.2", + "symfony/security-core": "^5.4|^6.0" }, "conflict": { - "symfony/http-foundation": "<5.3" + "symfony/http-foundation": "<5.4" }, "require-dev": { - "symfony/http-foundation": "^5.3|^6.0" + "symfony/http-foundation": "^5.4|^6.0" }, "suggest": { "symfony/http-foundation": "For using the class SessionTokenStorage." @@ -8570,74 +7952,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v5.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-11-23T19:07:08+00:00" - }, - { - "name": "symfony/security-guard", - "version": "v5.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-guard.git", - "reference": "5ebbe00731ce0773108116875083a82098ddddcf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-guard/zipball/5ebbe00731ce0773108116875083a82098ddddcf", - "reference": "5ebbe00731ce0773108116875083a82098ddddcf", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15", - "symfony/security-core": "^5.0", - "symfony/security-http": "^5.3" - }, - "require-dev": { - "psr/log": "^1|^2|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Security\\Guard\\": "" - }, - "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 Security Component - Guard", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-guard/tree/v5.4.0" + "source": "https://github.com/symfony/security-csrf/tree/v6.0.3" }, "funding": [ { @@ -8653,44 +7968,42 @@ "type": "tidelift" } ], - "time": "2021-11-23T19:07:08+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/security-http", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "3682db42fc542ad4b42a2e0d064cb25e13df494a" + "reference": "d45240c9acffb9562e9194ffaeac679b6c8af589" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/3682db42fc542ad4b42a2e0d064cb25e13df494a", - "reference": "3682db42fc542ad4b42a2e0d064cb25e13df494a", + "url": "https://api.github.com/repos/symfony/security-http/zipball/d45240c9acffb9562e9194ffaeac679b6c8af589", + "reference": "d45240c9acffb9562e9194ffaeac679b6c8af589", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-foundation": "^5.3|^6.0", - "symfony/http-kernel": "^5.3|^6.0", + "php": ">=8.0.2", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/property-access": "^5.4|^6.0", "symfony/security-core": "^5.4|^6.0" }, "conflict": { - "symfony/event-dispatcher": "<4.3", - "symfony/security-bundle": "<5.3", - "symfony/security-csrf": "<4.4" + "symfony/event-dispatcher": "<5.4", + "symfony/security-bundle": "<5.4", + "symfony/security-csrf": "<5.4" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/rate-limiter": "^5.2|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/security-csrf": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0" + "symfony/cache": "^5.4|^6.0", + "symfony/rate-limiter": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/security-csrf": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0" }, "suggest": { "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", @@ -8722,7 +8035,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v5.4.2" + "source": "https://github.com/symfony/security-http/tree/v6.0.8" }, "funding": [ { @@ -8738,57 +8051,55 @@ "type": "tidelift" } ], - "time": "2021-12-29T10:10:35+00:00" + "time": "2022-04-17T11:31:42+00:00" }, { "name": "symfony/serializer", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "2dba9731463e0bb4fa9568ce67887ed6fa08e9bc" + "reference": "76b9a43c4295ced6d5f43208ba858325d8f61f30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/2dba9731463e0bb4fa9568ce67887ed6fa08e9bc", - "reference": "2dba9731463e0bb4fa9568ce67887ed6fa08e9bc", + "url": "https://api.github.com/repos/symfony/serializer/zipball/76b9a43c4295ced6d5f43208ba858325d8f61f30", + "reference": "76b9a43c4295ced6d5f43208ba858325d8f61f30", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/dependency-injection": "<4.4", + "symfony/dependency-injection": "<5.4", "symfony/property-access": "<5.4", - "symfony/property-info": "<5.3", - "symfony/uid": "<5.3", - "symfony/yaml": "<4.4" + "symfony/property-info": "<5.4", + "symfony/uid": "<5.4", + "symfony/yaml": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12", "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/form": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.3|^6.0", - "symfony/uid": "^5.3|^6.0", - "symfony/validator": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0", - "symfony/var-exporter": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/property-info": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0", + "symfony/var-exporter": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "psr/cache-implementation": "For using the metadata cache.", @@ -8825,7 +8136,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v5.4.2" + "source": "https://github.com/symfony/serializer/tree/v6.0.8" }, "funding": [ { @@ -8841,25 +8152,25 @@ "type": "tidelift" } ], - "time": "2021-12-25T19:17:31+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.4.1", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d664541b99d6fb0247ec5ff32e87238582236204" + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d664541b99d6fb0247ec5ff32e87238582236204", - "reference": "d664541b99d6fb0247ec5ff32e87238582236204", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e517458f278c2131ca9f262f8fbaf01410f2c65c", + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1" + "php": ">=8.0.2", + "psr/container": "^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -8870,7 +8181,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -8907,7 +8218,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.0.1" }, "funding": [ { @@ -8923,24 +8234,24 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2022-03-13T20:10:05+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.4.0", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe" + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/208ef96122bfed82a8f3a61458a07113a08bdcfe", - "reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f2c1780607ec6502f2121d9729fd8150a655d337", + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/service-contracts": "^1|^2|^3" }, "type": "library", @@ -8969,7 +8280,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.0" + "source": "https://github.com/symfony/stopwatch/tree/v6.0.5" }, "funding": [ { @@ -8985,47 +8296,46 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-02-21T17:15:17+00:00" }, { "name": "symfony/string", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d" + "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d", - "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d", + "url": "https://api.github.com/repos/symfony/string/zipball/ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", + "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": ">=3.0" + "symfony/translation-contracts": "<2.0" }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -9055,7 +8365,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.2" + "source": "https://github.com/symfony/string/tree/v6.0.8" }, "funding": [ { @@ -9071,52 +8381,50 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:52:00+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/translation", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca" + "reference": "3d38cf8f8834148c4457681d539bc204de701501" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca", - "reference": "ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca", + "url": "https://api.github.com/repos/symfony/translation/zipball/3d38cf8f8834148c4457681d539bc204de701501", + "reference": "3d38cf8f8834148c4457681d539bc204de701501", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation-contracts": "^2.3" + "symfony/translation-contracts": "^2.3|^3.0" }, "conflict": { - "symfony/config": "<4.4", - "symfony/console": "<5.3", - "symfony/dependency-injection": "<5.0", - "symfony/http-kernel": "<5.0", - "symfony/twig-bundle": "<5.0", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" }, "provide": { - "symfony/translation-implementation": "2.3" + "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", "symfony/http-client-contracts": "^1.1|^2.0|^3.0", - "symfony/http-kernel": "^5.0|^6.0", - "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", "symfony/polyfill-intl-icu": "^1.21", "symfony/service-contracts": "^1.1.2|^2|^3", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -9152,7 +8460,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.4.2" + "source": "https://github.com/symfony/translation/tree/v6.0.8" }, "funding": [ { @@ -9168,24 +8476,24 @@ "type": "tidelift" } ], - "time": "2021-12-25T19:45:36+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.5.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e" + "reference": "c4183fc3ef0f0510893cbeedc7718fb5cafc9ac9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/d28150f0f44ce854e942b671fc2620a98aae1b1e", - "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/c4183fc3ef0f0510893cbeedc7718fb5cafc9ac9", + "reference": "c4183fc3ef0f0510893cbeedc7718fb5cafc9ac9", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=8.0.2" }, "suggest": { "symfony/translation-implementation": "" @@ -9193,7 +8501,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -9230,7 +8538,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.0.1" }, "funding": [ { @@ -9246,65 +8554,64 @@ "type": "tidelift" } ], - "time": "2021-08-17T14:20:01+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/twig-bridge", - "version": "v5.4.0", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "faed6ad85a2f8e675820422a74c4e0d5858a6821" + "reference": "c0dc7766aaa59b9191930f722532454e5df4d203" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/faed6ad85a2f8e675820422a74c4e0d5858a6821", - "reference": "faed6ad85a2f8e675820422a74c4e0d5858a6821", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/c0dc7766aaa59b9191930f722532454e5df4d203", + "reference": "c0dc7766aaa59b9191930f722532454e5df4d203", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16", + "php": ">=8.0.2", "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, "conflict": { "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/console": "<5.3", - "symfony/form": "<5.3", - "symfony/http-foundation": "<5.3", - "symfony/http-kernel": "<4.4", - "symfony/translation": "<5.2", - "symfony/workflow": "<5.2" + "symfony/console": "<5.4", + "symfony/form": "<5.4", + "symfony/http-foundation": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/translation": "<5.4", + "symfony/workflow": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12", "egulias/email-validator": "^2.1.10|^3", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^4.4|^5.0|^6.0", - "symfony/console": "^5.3|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/form": "^5.3|^6.0", - "symfony/http-foundation": "^5.3|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/intl": "^4.4|^5.0|^6.0", - "symfony/mime": "^5.2|^6.0", + "symfony/asset": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", "symfony/security-acl": "^2.8|^3.0", - "symfony/security-core": "^4.4|^5.0|^6.0", - "symfony/security-csrf": "^4.4|^5.0|^6.0", - "symfony/security-http": "^4.4|^5.0|^6.0", - "symfony/serializer": "^5.2|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^5.2|^6.0", - "symfony/web-link": "^4.4|^5.0|^6.0", - "symfony/workflow": "^5.2|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0", + "symfony/security-core": "^5.4|^6.0", + "symfony/security-csrf": "^5.4|^6.0", + "symfony/security-http": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/web-link": "^5.4|^6.0", + "symfony/workflow": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0", "twig/cssinliner-extra": "^2.12|^3", "twig/inky-extra": "^2.12|^3", "twig/markdown-extra": "^2.12|^3" @@ -9351,7 +8658,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v5.4.0" + "source": "https://github.com/symfony/twig-bridge/tree/v6.0.8" }, "funding": [ { @@ -9367,52 +8674,50 @@ "type": "tidelift" } ], - "time": "2021-11-29T15:30:56+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/twig-bundle", - "version": "v5.4.0", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "de8634b8c604a42277c6cc7e4f0d1e9e30c5ec7f" + "reference": "0c5bb02150d08fa3174d8cd7600496a51702360a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/de8634b8c604a42277c6cc7e4f0d1e9e30c5ec7f", - "reference": "de8634b8c604a42277c6cc7e4f0d1e9e30c5ec7f", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/0c5bb02150d08fa3174d8cd7600496a51702360a", + "reference": "0c5bb02150d08fa3174d8cd7600496a51702360a", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^5.0|^6.0", + "composer-runtime-api": ">=2.1", + "php": ">=8.0.2", + "symfony/config": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16", - "symfony/twig-bridge": "^5.3|^6.0", + "symfony/twig-bridge": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" }, "conflict": { - "symfony/dependency-injection": "<5.3", - "symfony/framework-bundle": "<5.0", - "symfony/service-contracts": ">=3.0", - "symfony/translation": "<5.0" + "symfony/dependency-injection": "<5.4", + "symfony/framework-bundle": "<5.4", + "symfony/translation": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.10.4", - "doctrine/cache": "^1.0|^2.0", - "symfony/asset": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/form": "^4.4|^5.0|^6.0", - "symfony/framework-bundle": "^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^5.0|^6.0", - "symfony/web-link": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/asset": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/framework-bundle": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/web-link": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "type": "symfony-bundle", "autoload": { @@ -9440,7 +8745,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v5.4.0" + "source": "https://github.com/symfony/twig-bundle/tree/v6.0.8" }, "funding": [ { @@ -9456,63 +8761,59 @@ "type": "tidelift" } ], - "time": "2021-11-23T21:36:27+00:00" + "time": "2022-04-03T13:04:20+00:00" }, { "name": "symfony/validator", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "6ad607e0bb8f3a8b04bf56fecb9a95ac55cea9a3" + "reference": "d8f47eea936014e9e9d1cd3248f8c73d57dc248b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/6ad607e0bb8f3a8b04bf56fecb9a95ac55cea9a3", - "reference": "6ad607e0bb8f3a8b04bf56fecb9a95ac55cea9a3", + "url": "https://api.github.com/repos/symfony/validator/zipball/d8f47eea936014e9e9d1cd3248f8c73d57dc248b", + "reference": "d8f47eea936014e9e9d1cd3248f8c73d57dc248b", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "~1.0", - "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", "symfony/translation-contracts": "^1.1|^2|^3" }, "conflict": { "doctrine/annotations": "<1.13", - "doctrine/cache": "<1.11", "doctrine/lexer": "<1.1", "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/property-info": "<5.3", - "symfony/translation": "<4.4", - "symfony/yaml": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/expression-language": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/intl": "<5.4", + "symfony/property-info": "<5.4", + "symfony/translation": "<5.4", + "symfony/yaml": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.13", - "doctrine/cache": "^1.11|^2.0", "egulias/email-validator": "^2.1.10|^3", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^5.1|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/intl": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.0|^6.0", - "symfony/property-info": "^5.3|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "egulias/email-validator": "Strict (RFC compliant) email validation", @@ -9552,7 +8853,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v5.4.2" + "source": "https://github.com/symfony/validator/tree/v6.0.8" }, "funding": [ { @@ -9568,36 +8869,35 @@ "type": "tidelift" } ], - "time": "2021-12-21T11:59:32+00:00" + "time": "2022-04-15T08:07:58+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "1b56c32c3679002b3a42384a580e16e2600f41c1" + "reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1b56c32c3679002b3a42384a580e16e2600f41c1", - "reference": "1b56c32c3679002b3a42384a580e16e2600f41c1", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/fa61dfb4bd3068df2492013dc65f3190e9f550c0", + "reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" + "symfony/console": "<5.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -9641,7 +8941,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.2" + "source": "https://github.com/symfony/var-dumper/tree/v6.0.8" }, "funding": [ { @@ -9657,28 +8957,27 @@ "type": "tidelift" } ], - "time": "2021-12-29T10:10:35+00:00" + "time": "2022-04-26T13:22:23+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "2360c8525815b8535caac27cbc1994e2fa8644ba" + "reference": "74b272979a490747c6775b0228d06cf246306a99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/2360c8525815b8535caac27cbc1994e2fa8644ba", - "reference": "2360c8525815b8535caac27cbc1994e2fa8644ba", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/74b272979a490747c6775b0228d06cf246306a99", + "reference": "74b272979a490747c6775b0228d06cf246306a99", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "require-dev": { - "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0" + "symfony/var-dumper": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -9714,7 +9013,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.2" + "source": "https://github.com/symfony/var-exporter/tree/v6.0.8" }, "funding": [ { @@ -9730,35 +9029,34 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:58:21+00:00" + "time": "2022-04-26T13:22:23+00:00" }, { "name": "symfony/web-link", - "version": "v5.4.0", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/web-link.git", - "reference": "de535b46002214d976c5b092f33f46de5e0c1d05" + "reference": "52d6af6c4476c8ebdef968cb39030826253eb5e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-link/zipball/de535b46002214d976c5b092f33f46de5e0c1d05", - "reference": "de535b46002214d976c5b092f33f46de5e0c1d05", + "url": "https://api.github.com/repos/symfony/web-link/zipball/52d6af6c4476c8ebdef968cb39030826253eb5e4", + "reference": "52d6af6c4476c8ebdef968cb39030826253eb5e4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/link": "^1.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "psr/link": "^1.1|^2.0" }, "conflict": { - "symfony/http-kernel": "<5.3" + "symfony/http-kernel": "<5.4" }, "provide": { - "psr/link-implementation": "1.0" + "psr/link-implementation": "1.0|2.0" }, "require-dev": { - "symfony/http-kernel": "^5.3|^6.0" + "symfony/http-kernel": "^5.4|^6.0" }, "suggest": { "symfony/http-kernel": "" @@ -9801,7 +9099,7 @@ "push" ], "support": { - "source": "https://github.com/symfony/web-link/tree/v5.4.0" + "source": "https://github.com/symfony/web-link/tree/v6.0.3" }, "funding": [ { @@ -9817,32 +9115,31 @@ "type": "tidelift" } ], - "time": "2021-07-21T12:43:48+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.2", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "b9eb163846a61bb32dfc147f7859e274fab38b58" + "reference": "e77f3ea0b21141d771d4a5655faa54f692b34af5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/b9eb163846a61bb32dfc147f7859e274fab38b58", - "reference": "b9eb163846a61bb32dfc147f7859e274fab38b58", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e77f3ea0b21141d771d4a5655faa54f692b34af5", + "reference": "e77f3ea0b21141d771d4a5655faa54f692b34af5", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.3" + "symfony/console": "<5.4" }, "require-dev": { - "symfony/console": "^5.3|^6.0" + "symfony/console": "^5.4|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -9876,7 +9173,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.2" + "source": "https://github.com/symfony/yaml/tree/v6.0.3" }, "funding": [ { @@ -9892,20 +9189,20 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:58:21+00:00" + "time": "2022-01-26T17:23:29+00:00" }, { "name": "twig/extra-bundle", - "version": "v3.3.7", + "version": "v3.3.8", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "e0cc9c35a0650006b0da232a3f749cc060c65d3b" + "reference": "2e58256b0e9fe52f30149347c0547e4633304765" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/e0cc9c35a0650006b0da232a3f749cc060c65d3b", - "reference": "e0cc9c35a0650006b0da232a3f749cc060c65d3b", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/2e58256b0e9fe52f30149347c0547e4633304765", + "reference": "2e58256b0e9fe52f30149347c0547e4633304765", "shasum": "" }, "require": { @@ -9959,7 +9256,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.3.7" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.3.8" }, "funding": [ { @@ -9971,20 +9268,20 @@ "type": "tidelift" } ], - "time": "2022-01-03T21:04:59+00:00" + "time": "2022-01-04T13:58:53+00:00" }, { "name": "twig/twig", - "version": "v3.3.7", + "version": "v3.3.10", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "8f168c6ffa3ce76d1786b3cd52275424a3fc675b" + "reference": "8442df056c51b706793adf80a9fd363406dd3674" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/8f168c6ffa3ce76d1786b3cd52275424a3fc675b", - "reference": "8f168c6ffa3ce76d1786b3cd52275424a3fc675b", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/8442df056c51b706793adf80a9fd363406dd3674", + "reference": "8442df056c51b706793adf80a9fd363406dd3674", "shasum": "" }, "require": { @@ -10035,7 +9332,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.3.7" + "source": "https://github.com/twigphp/Twig/tree/v3.3.10" }, "funding": [ { @@ -10047,7 +9344,7 @@ "type": "tidelift" } ], - "time": "2022-01-03T21:15:37+00:00" + "time": "2022-04-06T06:47:41+00:00" }, { "name": "webmozart/assert", @@ -10109,16 +9406,16 @@ }, { "name": "zircote/swagger-php", - "version": "4.2.1", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/zircote/swagger-php.git", - "reference": "8f53ded4c90ec7cccb18333c1d7d8a4c16f0c3c8" + "reference": "24b23371ee962ac201fac33292034ae099c8d4a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zircote/swagger-php/zipball/8f53ded4c90ec7cccb18333c1d7d8a4c16f0c3c8", - "reference": "8f53ded4c90ec7cccb18333c1d7d8a4c16f0c3c8", + "url": "https://api.github.com/repos/zircote/swagger-php/zipball/24b23371ee962ac201fac33292034ae099c8d4a0", + "reference": "24b23371ee962ac201fac33292034ae099c8d4a0", "shasum": "" }, "require": { @@ -10178,24 +9475,24 @@ ], "support": { "issues": "https://github.com/zircote/swagger-php/issues", - "source": "https://github.com/zircote/swagger-php/tree/4.2.1" + "source": "https://github.com/zircote/swagger-php/tree/4.3.0" }, - "time": "2022-01-10T22:04:03+00:00" + "time": "2022-04-17T01:42:30+00:00" } ], "packages-dev": [ { "name": "bamarni/composer-bin-plugin", - "version": "1.4.1", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/bamarni/composer-bin-plugin.git", - "reference": "9329fb0fbe29e0e1b2db8f4639a193e4f5406225" + "reference": "49934ffea764864788334c1485fbb08a4b852031" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/9329fb0fbe29e0e1b2db8f4639a193e4f5406225", - "reference": "9329fb0fbe29e0e1b2db8f4639a193e4f5406225", + "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/49934ffea764864788334c1485fbb08a4b852031", + "reference": "49934ffea764864788334c1485fbb08a4b852031", "shasum": "" }, "require": { @@ -10230,39 +9527,44 @@ ], "support": { "issues": "https://github.com/bamarni/composer-bin-plugin/issues", - "source": "https://github.com/bamarni/composer-bin-plugin/tree/master" + "source": "https://github.com/bamarni/composer-bin-plugin/tree/v1.5.0" }, - "time": "2020-05-03T08:27:20+00:00" + "time": "2022-02-22T21:01:25+00:00" }, { "name": "doctrine/data-fixtures", - "version": "1.5.1", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "f18adf13f6c81c67a88360dca359ad474523f8e3" + "reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/f18adf13f6c81c67a88360dca359ad474523f8e3", - "reference": "f18adf13f6c81c67a88360dca359ad474523f8e3", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/ba37bfb776de763c5bf04a36d074cd5f5a083c42", + "reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42", "shasum": "" }, "require": { "doctrine/common": "^2.13|^3.0", - "doctrine/persistence": "^1.3.3|^2.0", + "doctrine/persistence": "^1.3.3|^2.0|^3.0", "php": "^7.2 || ^8.0" }, "conflict": { + "doctrine/dbal": "<2.13", "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { "doctrine/coding-standard": "^9.0", - "doctrine/dbal": "^2.5.4 || ^3.0", + "doctrine/dbal": "^2.13 || ^3.0", "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", "doctrine/orm": "^2.7.0", "ext-sqlite3": "*", - "phpunit/phpunit": "^8.0" + "jangregor/phpstan-prophecy": "^1", + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/cache": "^5.0 || ^6.0", + "vimeo/psalm": "^4.10" }, "suggest": { "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", @@ -10287,13 +9589,13 @@ } ], "description": "Data Fixtures for all Doctrine Object Managers", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org", "keywords": [ "database" ], "support": { "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.5.1" + "source": "https://github.com/doctrine/data-fixtures/tree/1.5.3" }, "funding": [ { @@ -10309,27 +9611,27 @@ "type": "tidelift" } ], - "time": "2021-09-20T21:51:43+00:00" + "time": "2022-04-19T10:01:44+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", - "version": "3.4.1", + "version": "3.4.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", - "reference": "31ba202bebce0b66fe830f49f96228dcdc1503e7" + "reference": "601988c5b46dbd20a0f886f967210aba378a6fd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/31ba202bebce0b66fe830f49f96228dcdc1503e7", - "reference": "31ba202bebce0b66fe830f49f96228dcdc1503e7", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/601988c5b46dbd20a0f886f967210aba378a6fd5", + "reference": "601988c5b46dbd20a0f886f967210aba378a6fd5", "shasum": "" }, "require": { "doctrine/data-fixtures": "^1.3", "doctrine/doctrine-bundle": "^1.11|^2.0", "doctrine/orm": "^2.6.0", - "doctrine/persistence": "^1.3.7|^2.0", + "doctrine/persistence": "^1.3.7|^2.0|^3.0", "php": "^7.1 || ^8.0", "symfony/config": "^3.4|^4.3|^5.0|^6.0", "symfony/console": "^3.4|^4.3|^5.0|^6.0", @@ -10338,11 +9640,11 @@ "symfony/http-kernel": "^3.4|^4.3|^5.0|^6.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", - "phpstan/phpstan": "^0.12.99", - "phpunit/phpunit": "^7.4 || ^8.0 || ^9.2", - "symfony/phpunit-bridge": "^4.1|^5.0|^6.0", - "vimeo/psalm": "^4.10" + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "^1.4.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "symfony/phpunit-bridge": "^6.0.8", + "vimeo/psalm": "^4.22" }, "type": "symfony-bundle", "autoload": { @@ -10361,22 +9663,22 @@ }, { "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org" + "homepage": "https://www.doctrine-project.org" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony DoctrineFixturesBundle", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org", "keywords": [ "Fixture", "persistence" ], "support": { "issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues", - "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.1" + "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.2" }, "funding": [ { @@ -10392,39 +9694,39 @@ "type": "tidelift" } ], - "time": "2021-10-28T05:46:28+00:00" + "time": "2022-04-28T17:58:29+00:00" }, { "name": "ergebnis/composer-normalize", - "version": "2.23.0", + "version": "2.25.2", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "8139e8efbdb481e8907e03fca09c2507fe560751" + "reference": "854ca6746fbc23e285da01aa963b9c61266d56eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/8139e8efbdb481e8907e03fca09c2507fe560751", - "reference": "8139e8efbdb481e8907e03fca09c2507fe560751", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/854ca6746fbc23e285da01aa963b9c61266d56eb", + "reference": "854ca6746fbc23e285da01aa963b9c61266d56eb", "shasum": "" }, "require": { "composer-plugin-api": "^2.0.0", - "ergebnis/json-normalizer": "^2.1.0", + "ergebnis/json-normalizer": "~2.1.0", "ergebnis/json-printer": "^3.2.0", - "justinrainbow/json-schema": "^5.2.11", + "justinrainbow/json-schema": "^5.2.12", "localheinz/diff": "^1.1.1", "php": "^7.4 || ^8.0" }, "require-dev": { - "composer/composer": "^2.2.3", + "composer/composer": "^2.3.5", "ergebnis/license": "^1.2.0", - "ergebnis/php-cs-fixer-config": "^3.4.0", - "fakerphp/faker": "^1.17.0", - "phpunit/phpunit": "^9.5.11", + "ergebnis/php-cs-fixer-config": "^4.4.0", + "fakerphp/faker": "^1.19.0", + "phpunit/phpunit": "^9.5.20", "psalm/plugin-phpunit": "~0.16.1", - "symfony/filesystem": "^5.4.0", - "vimeo/psalm": "^4.17.0" + "symfony/filesystem": "^5.4.7", + "vimeo/psalm": "^4.22.0" }, "type": "composer-plugin", "extra": { @@ -10467,7 +9769,7 @@ "type": "github" } ], - "time": "2022-01-04T11:37:51+00:00" + "time": "2022-04-20T07:53:13+00:00" }, { "name": "ergebnis/json-normalizer", @@ -10670,16 +9972,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.2.11", + "version": "5.2.12", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa" + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ab6744b7296ded80f8cc4f9509abbff393399aa", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", "shasum": "" }, "require": { @@ -10734,9 +10036,9 @@ ], "support": { "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.11" + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" }, - "time": "2021-07-22T09:24:00+00:00" + "time": "2022-04-13T08:02:27+00:00" }, { "name": "localheinz/diff", @@ -10860,42 +10162,49 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199" + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/38da7ef14348ff26d7c415c4ed18b82db07fe199", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e5a0abdd695cd45870e442647ef03a70f2ec1e5", + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", + "admidio/admidio": "<4.1.9", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "akaunting/akaunting": "<2.1.13", + "alextselegidis/easyappointments": "<1.4.3", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", "baserproject/basercms": "<4.5.4", "billz/raspap-webgui": "<=2.6.6", "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", + "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", - "bolt/core": "<4.1.13", + "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<7.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cakephp/cakephp": "<4.0.6", "cardgate/magento2": "<2.0.33", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", @@ -10904,17 +10213,21 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.1.6", + "codeigniter4/framework": "<4.1.9", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.23|>=2-alpha.1,<2.1.9", - "concrete5/concrete5": "<8.5.5", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<9", "concrete5/core": "<8.5.7", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|= 4.10.0", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", - "craftcms/cms": "<3.7.14", + "contao/managed-edition": "<=1.5", + "craftcms/cms": "<3.7.29", "croogo/croogo": "<3.0.7", + "cuyz/valinor": ">=0.5,<0.7", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", @@ -10928,15 +10241,16 @@ "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|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<=14.0.4|>= 3.3.beta1, < 13.0.2", - "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<1.2.1", + "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", - "enshrined/svg-sanitize": "<0.13.1", + "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", "ezsystems/demobundle": ">=5.4,<5.4.6.1", @@ -10944,27 +10258,29 @@ "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.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<=1.5.25", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.27", "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-kernel": "<=1.2.5|>=1.3,<1.3.17", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.28", "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=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.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<2022.6", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=0.1.3", + "fenom/fenom": "<=2.12.1", "firebase/php-jwt": "<2", "flarum/core": ">=1,<=1.0.1", "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.9.2", + "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", "francoisjacquet/rosariosis": "<8.1.1", "friendsofsymfony/oauth2-php": "<1.3", @@ -10972,37 +10288,47 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<=0.10.22", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", - "getgrav/grav": "<=1.7.24", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<1.7.31", "getkirby/cms": "<3.5.8", "getkirby/panel": "<2.5.14", "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", + "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/core": ">=4,<4.0.5|>=4.1,<4.1.2", "ibexa/post-install": "<=1.0.4", - "icecoder/icecoder": "<=8", + "icecoder/icecoder": "<=8.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": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "impresscms/impresscms": "<=1.4.2", + "impresscms/impresscms": "<=1.4.3", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "joomla/archive": "<1.1.10", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/input": ">=2,<2.0.2", "joomla/session": "<1.3.1", + "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kevinpapst/kimai2": "<1.16.7", @@ -11010,8 +10336,11 @@ "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/laravel": "<=5.8.38", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -11019,8 +10348,9 @@ "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "librenms/librenms": "<=21.11", + "librenms/librenms": "<22.2.2", "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", @@ -11029,14 +10359,16 @@ "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": "<4|= 2.13.1", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.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", - "microweber/microweber": "<1.2.8", + "microweber/microweber": "<1.3", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", - "modx/revolution": "<2.8", + "modx/revolution": "<= 2.8.3-pl|<2.8", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10-beta,<3.10.2", + "moodle/moodle": "<3.9.13|>=3.10-beta,<3.10.10|>=3.11,<3.11.6", + "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", "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", @@ -11048,15 +10380,16 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", "nukeviet/nukeviet": "<4.3.4", - "nystudio107/craft-seomatic": "<3.3", + "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "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|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.473|>=1.1,<1.1.6|>=2.1,<2.1.12", + "october/system": "<1.0.475|>=1.1,<1.1.11|>=2,<2.1.27", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<19.4.15|>=20,<20.0.13", @@ -11070,58 +10403,65 @@ "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", - "phpoffice/phpexcel": "<1.8.2", + "phpmyadmin/phpmyadmin": "<5.1.3", + "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpservermon/phpservermon": "<=3.5.2", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.2.7", - "pocketmine/pocketmine-mp": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/pimcore": "<10.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<4.2.9", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", + "prestashop/prestashop": ">=1.7,<=1.7.8.2", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "privatebin/privatebin": "<1.4", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.6.6", + "pterodactyl/panel": "<1.7", + "ptrofimov/beanstalk_console": "<1.7.14", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", - "remdex/livehelperchat": "<3.91", + "remdex/livehelperchat": "<3.96", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "rudloff/alltube": "<3.0.3", + "s-cart/s-cart": "<6.7.2", "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/core": "<=6.4.6", - "shopware/platform": "<=6.4.6", + "shopware/core": "<=6.4.9", + "shopware/platform": "<=6.4.9", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.7.7", - "showdoc/showdoc": "<2.10", + "shopware/shopware": "<5.7.9", + "shopware/storefront": "<=6.4.8.1", + "showdoc/showdoc": "<2.10.4", "silverstripe/admin": ">=1,<1.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.7.4", - "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2", + "silverstripe/framework": "<4.10.1", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|= 4.0.0-alpha1", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -11134,12 +10474,14 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.43|>=4,<4.0.3", - "snipe/snipe-it": "<5.3.5", + "snipe/snipe-it": "<5.4.3|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.12.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", @@ -11147,10 +10489,10 @@ "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "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/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.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.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3|>=1.9,<1.9.5", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", "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", @@ -11159,7 +10501,7 @@ "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", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "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|>=5.2,<5.3.12", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -11175,9 +10517,9 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "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,<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|>=5.3,<5.3.2", + "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|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", "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", @@ -11185,7 +10527,9 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", @@ -11194,9 +10538,9 @@ "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", - "tribalsystems/zenario": "<8.8.53370", + "tribalsystems/zenario": "<9.2.55826", "truckersmp/phpwhois": "<=4.3.1", - "twig/twig": "<1.38|>=2,<2.7", + "twig/twig": "<1.38|>=2,<2.14.11|>=3,<3.3.8", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", "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.52|>=8,<=8.7.41|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", @@ -11212,7 +10556,7 @@ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", - "vrana/adminer": "<4.7.9", + "vrana/adminer": "<4.8.1", "wallabag/tcpdf": "<6.2.22", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", @@ -11220,6 +10564,9 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wwbn/avideo": "<=11.6", + "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -11239,10 +10586,10 @@ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": ">=1,<1.8.4", - "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -11294,32 +10641,31 @@ "type": "tidelift" } ], - "time": "2022-01-14T21:13:43+00:00" + "time": "2022-04-29T21:04:00+00:00" }, { "name": "symfony/browser-kit", - "version": "v5.4.2", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "1fb93b0aab42392aa0a742db205173b49afaf80f" + "reference": "0ec66df981406fd2c9e41acbb526249bd18a0123" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/1fb93b0aab42392aa0a742db205173b49afaf80f", - "reference": "1fb93b0aab42392aa0a742db205173b49afaf80f", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/0ec66df981406fd2c9e41acbb526249bd18a0123", + "reference": "0ec66df981406fd2c9e41acbb526249bd18a0123", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/dom-crawler": "^5.4|^6.0" }, "require-dev": { - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0" + "symfony/css-selector": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" }, "suggest": { "symfony/process": "" @@ -11350,7 +10696,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.4.2" + "source": "https://github.com/symfony/browser-kit/tree/v6.0.3" }, "funding": [ { @@ -11366,38 +10712,37 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:58:21+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/debug-bundle", - "version": "v5.4.2", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/debug-bundle.git", - "reference": "3f3e9c9f77c9b1813d07181975a8c154fb4eb215" + "reference": "880317aa3b2962cc2e7af67b8a6ed69db84ed848" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/3f3e9c9f77c9b1813d07181975a8c154fb4eb215", - "reference": "3f3e9c9f77c9b1813d07181975a8c154fb4eb215", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/880317aa3b2962cc2e7af67b8a6ed69db84ed848", + "reference": "880317aa3b2962cc2e7af67b8a6ed69db84ed848", "shasum": "" }, "require": { "ext-xml": "*", - "php": ">=7.2.5", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/polyfill-php80": "^1.16", - "symfony/twig-bridge": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "php": ">=8.0.2", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/twig-bridge": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "conflict": { - "symfony/config": "<4.4", - "symfony/dependency-injection": "<5.2" + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4" }, "require-dev": { - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/web-profiler-bundle": "^4.4|^5.0|^6.0" + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/web-profiler-bundle": "^5.4|^6.0" }, "suggest": { "symfony/config": "For service container configuration", @@ -11429,7 +10774,7 @@ "description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/debug-bundle/tree/v5.4.2" + "source": "https://github.com/symfony/debug-bundle/tree/v6.0.3" }, "funding": [ { @@ -11445,35 +10790,33 @@ "type": "tidelift" } ], - "time": "2021-12-11T13:33:37+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.4.2", + "version": "v6.0.6", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "bb3bc3699779fc6d9646270789026a7e2cec7ec7" + "reference": "9b4126901a6146c151d95af3868b1e0e30519ea6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/bb3bc3699779fc6d9646270789026a7e2cec7ec7", - "reference": "bb3bc3699779fc6d9646270789026a7e2cec7ec7", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/9b4126901a6146c151d95af3868b1e0e30519ea6", + "reference": "9b4126901a6146c151d95af3868b1e0e30519ea6", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { "masterminds/html5": "<2.6" }, "require-dev": { "masterminds/html5": "^2.6", - "symfony/css-selector": "^4.4|^5.0|^6.0" + "symfony/css-selector": "^5.4|^6.0" }, "suggest": { "symfony/css-selector": "" @@ -11504,7 +10847,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.2" + "source": "https://github.com/symfony/dom-crawler/tree/v6.0.6" }, "funding": [ { @@ -11520,45 +10863,45 @@ "type": "tidelift" } ], - "time": "2021-12-28T17:15:56+00:00" + "time": "2022-03-02T12:58:14+00:00" }, { "name": "symfony/maker-bundle", - "version": "v1.36.4", + "version": "v1.40.1", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "716eee9c8b10b33e682df1b7d80b9061887e9691" + "reference": "adc846e4f852e3aa2cd84a433cd05ba23dd19c3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/716eee9c8b10b33e682df1b7d80b9061887e9691", - "reference": "716eee9c8b10b33e682df1b7d80b9061887e9691", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/adc846e4f852e3aa2cd84a433cd05ba23dd19c3f", + "reference": "adc846e4f852e3aa2cd84a433cd05ba23dd19c3f", "shasum": "" }, "require": { - "doctrine/inflector": "^1.2|^2.0", + "doctrine/inflector": "^2.0", "nikic/php-parser": "^4.11", - "php": ">=7.1.3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "php": ">=7.2.5", + "symfony/config": "^5.4.7|^6.0", + "symfony/console": "^5.4.7|^6.0", + "symfony/dependency-injection": "^5.4.7|^6.0", "symfony/deprecation-contracts": "^2.2|^3", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/framework-bundle": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0" + "symfony/filesystem": "^5.4.7|^6.0", + "symfony/finder": "^5.4.3|^6.0", + "symfony/framework-bundle": "^5.4.7|^6.0", + "symfony/http-kernel": "^5.4.7|^6.0" }, "require-dev": { "composer/semver": "^3.0", - "doctrine/doctrine-bundle": "^1.12.3|^2.0", + "doctrine/doctrine-bundle": "^2.4", "doctrine/orm": "^2.3", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/phpunit-bridge": "^4.4|^5.0|^6.0", + "symfony/http-client": "^5.4.7|^6.0", + "symfony/phpunit-bridge": "^5.4.7|^6.0", "symfony/polyfill-php80": "^1.16.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/security-core": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0", + "symfony/process": "^5.4.7|^6.0", + "symfony/security-core": "^5.4.7|^6.0", + "symfony/yaml": "^5.4.3|^6.0", "twig/twig": "^2.0|^3.0" }, "type": "symfony-bundle", @@ -11592,7 +10935,7 @@ ], "support": { "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.36.4" + "source": "https://github.com/symfony/maker-bundle/tree/v1.40.1" }, "funding": [ { @@ -11608,7 +10951,7 @@ "type": "tidelift" } ], - "time": "2021-12-01T00:27:38+00:00" + "time": "2022-04-23T19:42:13+00:00" }, { "name": "symfony/requirements-checker", @@ -11678,39 +11021,38 @@ }, { "name": "symfony/web-profiler-bundle", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "c779222d5a87b7d947e56ac09b02adb34cf8b610" + "reference": "72c103c3aa0aad379bcd1c78b0ab8793496f668a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/c779222d5a87b7d947e56ac09b02adb34cf8b610", - "reference": "c779222d5a87b7d947e56ac09b02adb34cf8b610", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/72c103c3aa0aad379bcd1c78b0ab8793496f668a", + "reference": "72c103c3aa0aad379bcd1c78b0ab8793496f668a", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/framework-bundle": "^5.3|^6.0", - "symfony/http-kernel": "^5.3|^6.0", - "symfony/polyfill-php80": "^1.16", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "php": ">=8.0.2", + "symfony/config": "^5.4|^6.0", + "symfony/framework-bundle": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/twig-bundle": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" }, "conflict": { - "symfony/dependency-injection": "<5.2", - "symfony/form": "<4.4", + "symfony/dependency-injection": "<5.4", + "symfony/form": "<5.4", "symfony/mailer": "<5.4", - "symfony/messenger": "<4.4" + "symfony/messenger": "<5.4" }, "require-dev": { - "symfony/browser-kit": "^4.4|^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0" + "symfony/browser-kit": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0" }, "type": "symfony-bundle", "autoload": { @@ -11738,7 +11080,7 @@ "description": "Provides a development tool that gives detailed information about the execution of any request", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.2" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.0.8" }, "funding": [ { @@ -11754,34 +11096,31 @@ "type": "tidelift" } ], - "time": "2021-12-21T21:22:06+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "systemsdk/easy-log-bundle", - "version": "v1.10.1", + "version": "v1.10.2", "source": { "type": "git", "url": "https://github.com/systemsdk/easy-log-bundle.git", - "reference": "fa1fa9fe48d994f6b3a564e85d7f34d83174fa3c" + "reference": "eb9430996beb98dc0f54c914cca2c3aeeddca960" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/systemsdk/easy-log-bundle/zipball/fa1fa9fe48d994f6b3a564e85d7f34d83174fa3c", - "reference": "fa1fa9fe48d994f6b3a564e85d7f34d83174fa3c", + "url": "https://api.github.com/repos/systemsdk/easy-log-bundle/zipball/eb9430996beb98dc0f54c914cca2c3aeeddca960", + "reference": "eb9430996beb98dc0f54c914cca2c3aeeddca960", "shasum": "" }, "require": { "monolog/monolog": "~1.6|~2.0", "php": ">=7.4", - "symfony/framework-bundle": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "conflict": { "easycorp/easy-log-handler": "*" }, - "replace": { - "easycorp/easy-log-handler": "1.0.9" - }, "type": "symfony-bundle", "autoload": { "psr-4": { @@ -11815,9 +11154,9 @@ ], "support": { "issues": "https://github.com/systemsdk/easy-log-bundle/issues", - "source": "https://github.com/systemsdk/easy-log-bundle/tree/v1.10.1" + "source": "https://github.com/systemsdk/easy-log-bundle/tree/v1.10.2" }, - "time": "2021-03-03T10:43:31+00:00" + "time": "2022-03-17T16:44:52+00:00" } ], "aliases": [], @@ -11841,5 +11180,5 @@ "platform-overrides": { "php": "8.1.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml index 6cac71e5..1d51adb0 100644 --- a/config/packages/doctrine.yaml +++ b/config/packages/doctrine.yaml @@ -1,40 +1,81 @@ doctrine: dbal: # configure these for your database server - driver: 'pdo_mysql' - server_version: '8.0' - charset: utf8mb4 - default_table_options: - charset: utf8mb4 - collate: utf8mb4_unicode_ci - - # https://symfony.com/doc/current/messenger.html#doctrine-transport - schema_filter: '~^(?!messenger_messages)~' - - url: '%env(resolve:DATABASE_URL)%' - mapping_types: - enum: string + default_connection: default + connections: + default: + driver: 'pdo_mysql' + server_version: '8.0' + charset: utf8mb4 + default_table_options: + charset: utf8mb4 + collate: utf8mb4_unicode_ci + # https://symfony.com/doc/current/messenger.html#doctrine-transport + schema_filter: '~^(?!messenger_messages)~' + url: '%env(resolve:DATABASE_URL)%' + mapping_types: + enum: string types: - datetime: App\Doctrine\DBAL\Types\UTCDateTimeType - datetimetz: App\Doctrine\DBAL\Types\UTCDateTimeType - EnumLanguage: App\Doctrine\DBAL\Types\EnumLanguageType - EnumLocale: App\Doctrine\DBAL\Types\EnumLocaleType - EnumLogLogin: App\Doctrine\DBAL\Types\EnumLogLoginType + datetime: App\General\Domain\Doctrine\DBAL\Types\UTCDateTimeType + datetimetz: App\General\Domain\Doctrine\DBAL\Types\UTCDateTimeType + EnumLanguage: App\General\Domain\Doctrine\DBAL\Types\EnumLanguageType + EnumLocale: App\General\Domain\Doctrine\DBAL\Types\EnumLocaleType + EnumLogLogin: App\General\Domain\Doctrine\DBAL\Types\EnumLogLoginType orm: auto_generate_proxy_classes: true - naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware - auto_mapping: true - mappings: - App: - is_bundle: false - type: attribute - dir: '%kernel.project_dir%/src/Entity' - prefix: 'App\Entity' - alias: App - dql: - datetime_functions: - datesub: DoctrineExtensions\Query\Mysql\DateSub - now: DoctrineExtensions\Query\Mysql\Now - string_functions: - uuid_to_ouuid: App\DQL\UuidToOuuid - ouuid_to_uuid: App\DQL\OuuidToUuid + default_entity_manager: default + entity_managers: + default: + naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware + auto_mapping: true + connection: default + mappings: + ApiKey: + is_bundle: false + type: attribute + dir: '%kernel.project_dir%/src/ApiKey/Domain/Entity' + prefix: 'App\ApiKey\Domain\Entity' + alias: ApiKey + DateDimension: + is_bundle: false + type: attribute + dir: '%kernel.project_dir%/src/DateDimension/Domain/Entity' + prefix: 'App\DateDimension\Domain\Entity' + alias: DateDimension + General: + is_bundle: false + type: attribute + dir: '%kernel.project_dir%/src/General/Domain/Entity' + prefix: 'App\General\Domain\Entity' + alias: General + Log: + is_bundle: false + type: attribute + dir: '%kernel.project_dir%/src/Log/Domain/Entity' + prefix: 'App\Log\Domain\Entity' + alias: Log + Role: + is_bundle: false + type: attribute + dir: '%kernel.project_dir%/src/Role/Domain/Entity' + prefix: 'App\Role\Domain\Entity' + alias: Role + Tool: + is_bundle: false + type: attribute + dir: '%kernel.project_dir%/src/Tool/Domain/Entity' + prefix: 'App\Tool\Domain\Entity' + alias: Tool + User: + is_bundle: false + type: attribute + dir: '%kernel.project_dir%/src/User/Domain/Entity' + prefix: 'App\User\Domain\Entity' + alias: User + dql: + datetime_functions: + datesub: DoctrineExtensions\Query\Mysql\DateSub + now: DoctrineExtensions\Query\Mysql\Now + string_functions: + uuid_to_ouuid: App\General\Infrastructure\DQL\UuidToOuuid + ouuid_to_uuid: App\General\Infrastructure\DQL\OuuidToUuid diff --git a/config/packages/event_listeners.yaml b/config/packages/event_listeners.yaml index 1aea0048..2b0ebaf6 100644 --- a/config/packages/event_listeners.yaml +++ b/config/packages/event_listeners.yaml @@ -9,7 +9,7 @@ services: # if you need to do this, you can override this setting on individual services public: false - App\EventListener\UserEntityEventListener: + App\User\Transport\EventListener\UserEntityEventListener: tags: - { name: doctrine.event_listener, event: prePersist } - { name: doctrine.event_listener, event: preUpdate } diff --git a/config/packages/lexik_jwt_authentication.yaml b/config/packages/lexik_jwt_authentication.yaml index 84423769..9fc20c65 100644 --- a/config/packages/lexik_jwt_authentication.yaml +++ b/config/packages/lexik_jwt_authentication.yaml @@ -3,6 +3,8 @@ lexik_jwt_authentication: public_key: '%kernel.project_dir%/%env(JWT_PUBLIC_KEY)%' pass_phrase: '%env(JWT_PASSPHRASE)%' token_ttl: '%env(JWT_TOKEN_TTL)%' + user_identity_field: 'UserIdentifier' + user_id_claim: 'identifier' # token extraction settings token_extractors: diff --git a/config/packages/messenger.yaml b/config/packages/messenger.yaml index 6b3bc0ed..31718eb3 100644 --- a/config/packages/messenger.yaml +++ b/config/packages/messenger.yaml @@ -64,8 +64,8 @@ framework: failed: 'doctrine://default?queue_name=failed' routing: - App\Message\Interfaces\MessageHighInterface: async_priority_high - App\Message\Interfaces\MessageLowInterface: async_priority_low + App\General\Infrastructure\Message\Interfaces\MessageHighInterface: async_priority_high + App\General\Infrastructure\Message\Interfaces\MessageLowInterface: async_priority_low # Route your messages to the transports - # 'App\Message\YourMessage': async + # 'App\General\Infrastructure\Message\YourMessage': async diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 77483694..8713bd9b 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -12,9 +12,9 @@ security: chain: providers: [security_user_provider, api_key_user_provider] security_user_provider: - id: App\Security\Provider\SecurityUserFactory + id: App\User\Application\Security\Provider\SecurityUserFactory api_key_user_provider: - id: App\Security\Provider\ApiKeyUserProvider + id: App\ApiKey\Application\Security\Provider\ApiKeyUserProvider # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate firewalls: @@ -29,7 +29,7 @@ security: provider: security_user_provider check_path: /api/v1/auth/get_token success_handler: lexik_jwt_authentication.handler.authentication_success - failure_handler: App\Security\Handler\TranslatedAuthenticationFailureHandler + failure_handler: App\User\Application\Security\Handler\TranslatedAuthenticationFailureHandler root: pattern: ^/($|command-scheduler) stateless: true @@ -42,7 +42,7 @@ security: provider: chain_user_provider jwt: ~ custom_authenticators: - - App\Security\Authenticator\ApiKeyAuthenticator + - App\ApiKey\Application\Security\Authenticator\ApiKeyAuthenticator role_hierarchy: ROLE_API: [ROLE_LOGGED] diff --git a/config/routes/annotations.yaml b/config/routes/annotations.yaml index 3799cf2c..756d33fa 100644 --- a/config/routes/annotations.yaml +++ b/config/routes/annotations.yaml @@ -1,14 +1,35 @@ -api-controller: - resource: ../../src/Controller/Api/ +api-key-controllers: + resource: ../../src/ApiKey/Transport/Controller/Api/ type: annotation prefix: /api defaults: _format: json -web-controller: - resource: ../../src/Controller/Web/ +role-controllers: + resource: ../../src/Role/Transport/Controller/Api/ type: annotation - prefix: /web + prefix: /api + defaults: + _format: json + +tool-controllers: + resource: ../../src/Tool/Transport/Controller/Api/ + type: annotation + prefix: /api + defaults: + _format: json + +user-controllers: + resource: ../../src/User/Transport/Controller/Api/ + type: annotation + prefix: /api + defaults: + _format: json + +#web-controller: +# resource: ../../src/Controller/Web/ +# type: annotation +# prefix: /web kernel: resource: ../../src/Kernel.php diff --git a/config/services.yaml b/config/services.yaml index 86f782c9..3489a965 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -29,11 +29,13 @@ services: $elasticNumberOfReplicas: '%env(int:ELASTICSEARCH_NUMBER_OF_REPLICAS)%' $lockUserOnLoginFailureAttempts: '%env(int:LOCK_USER_ON_LOGIN_FAILURE_ATTEMPTS)%' _instanceof: - App\Rest\Interfaces\ControllerInterface: + App\General\Transport\Rest\Interfaces\ControllerInterface: tags: [ 'app.rest.controller' ] - App\Rest\Interfaces\RestResourceInterface: + App\General\Application\Rest\Interfaces\RestResourceInterface: tags: [ 'app.rest.resource', 'app.stopwatch' ] - App\Repository\BaseRepository: + App\General\Application\Rest\Interfaces\RestSmallResourceInterface: + tags: [ 'app.rest.resource', 'app.stopwatch' ] + App\General\Infrastructure\Repository\BaseRepository: tags: [ 'app.rest.repository', 'app.stopwatch' ] AutoMapperPlus\MapperInterface: tags: [ 'app.stopwatch' ] @@ -47,39 +49,51 @@ services: App\: resource: '../src/' exclude: - - '../src/DataFixtures/' + - '../src/*/Infrastructure/DataFixtures/' - '../src/DependencyInjection/' - - '../src/Entity/' - - '../src/EventListener/' - - '../src/Utils/Tests/' + - '../src/*/Domain/Entity/' + - '../src/*/Transport/EventListener/' + - '../src/General/Application/Utils/Tests/' - '../src/Kernel.php' # controllers are imported separately to make sure services can be injected # as action arguments even if you don't extend any base controller class - App\Controller\: - resource: '../src/Controller/' + App\ApiKey\Transport\Controller\: + resource: '../src/ApiKey/Transport/Controller/' tags: ['controller.service_arguments'] - App\ArgumentResolver\EntityValueResolver: + App\Role\Transport\Controller\: + resource: '../src/Role/Transport/Controller/' + tags: [ 'controller.service_arguments' ] + + App\Tool\Transport\Controller\: + resource: '../src/Tool/Transport/Controller/' + tags: [ 'controller.service_arguments' ] + + App\User\Transport\Controller\: + resource: '../src/User/Transport/Controller/' + tags: [ 'controller.service_arguments' ] + + App\General\Transport\ArgumentResolver\EntityValueResolver: tags: - { name: controller.argument_value_resolver, priority: 150 } - App\Service\RequestLoggerService: + App\Log\Application\Service\RequestLoggerService: arguments: $sensitiveProperties: '%env(json:REQUEST_LOG_SENSITIVE_PROPERTIES)%' - App\Resource\ResourceCollection: + App\General\Application\Resource\ResourceCollection: arguments: [ !tagged app.rest.resource ] - App\Rest\ControllerCollection: + App\General\Transport\Rest\ControllerCollection: arguments: [ !tagged app.rest.controller ] - App\EventSubscriber\RequestLogSubscriber: + App\General\Transport\EventSubscriber\RequestLogSubscriber: arguments: $ignoredRoutes: '%env(json:REQUEST_LOG_IGNORED_ROUTES)%' - App\Service\Interfaces\ElasticsearchServiceInterface: - class: App\Service\ElasticsearchService + App\General\Domain\Service\Interfaces\ElasticsearchServiceInterface: + class: App\General\Infrastructure\Service\ElasticsearchService arguments: $host: '%env(ELASTICSEARCH_HOST)%' $username: '%env(ELASTICSEARCH_USERNAME)%' @@ -91,12 +105,24 @@ when@dev: _defaults: autowire: true autoconfigure: true - App\DataFixtures\: - resource: '../src/DataFixtures/' + + App\ApiKey\Infrastructure\DataFixtures\: + resource: '../src/ApiKey/Infrastructure/DataFixtures/' + tags: [ 'doctrine.fixture.orm' ] + + App\Role\Infrastructure\DataFixtures\: + resource: '../src/Role/Infrastructure/DataFixtures/' tags: [ 'doctrine.fixture.orm' ] - App\Utils\Tests\: - resource: '../src/Utils/Tests' + App\User\Infrastructure\DataFixtures\: + resource: '../src/User/Infrastructure/DataFixtures/' + tags: [ 'doctrine.fixture.orm' ] + + App\General\Transport\Utils\Tests\: + resource: '../src/General/Transport/Utils/Tests' + + App\General\Application\Utils\Tests\: + resource: '../src/General/Application/Utils/Tests' ProxyManager\Factory\AccessInterceptorValueHolderFactory: class: ProxyManager\Factory\AccessInterceptorValueHolderFactory @@ -104,13 +130,13 @@ when@dev: doctrine.dbal.default_connection.stopwatch: class: Doctrine\DBAL\Connection decorates: doctrine.dbal.default_connection - factory: [ '@App\Decorator\StopwatchDecorator', decorate ] + factory: [ '@App\General\Application\Decorator\StopwatchDecorator', decorate ] arguments: [ '@doctrine.dbal.default_connection.stopwatch.inner' ] symfony.component.serializer.stopwatch: class: Symfony\Component\Serializer\Serializer decorates: serializer - factory: [ '@App\Decorator\StopwatchDecorator', decorate ] + factory: [ '@App\General\Application\Decorator\StopwatchDecorator', decorate ] arguments: [ '@symfony.component.serializer.stopwatch.inner' ] when@test: @@ -120,11 +146,22 @@ when@test: autoconfigure: true public: true - App\DataFixtures\: - resource: '../src/DataFixtures/' + App\ApiKey\Infrastructure\DataFixtures\: + resource: '../src/ApiKey/Infrastructure/DataFixtures/' + tags: [ 'doctrine.fixture.orm' ] + + App\Role\Infrastructure\DataFixtures\: + resource: '../src/Role/Infrastructure/DataFixtures/' tags: [ 'doctrine.fixture.orm' ] - App\Utils\Tests\: - resource: '../src/Utils/Tests' + App\User\Infrastructure\DataFixtures\: + resource: '../src/User/Infrastructure/DataFixtures/' + tags: [ 'doctrine.fixture.orm' ] + + App\General\Transport\Utils\Tests\: + resource: '../src/General/Transport/Utils/Tests' + + App\General\Application\Utils\Tests\: + resource: '../src/General/Application/Utils/Tests' - test.app.utils.tests.auth: '@App\Utils\Tests\Auth' + test.app.utils.tests.auth: '@App\General\Transport\Utils\Tests\Auth' diff --git a/docs/development.md b/docs/development.md index 057333e4..d57fa472 100644 --- a/docs/development.md +++ b/docs/development.md @@ -3,6 +3,7 @@ This document contains basic information and recommendation for development this ## General * Follow the [PSR-1 guide](https://www.php-fig.org/psr/psr-1/), [PSR-12 guide](https://www.php-fig.org/psr/psr-12/), [Coding Standards](http://symfony.com/doc/current/contributing/code/standards.html). +* Try to follow [DDD](https://en.wikipedia.org/wiki/Domain-driven_design) approach. * Try to keep class names informative but not too long. * Follow Symfony conventions and [best practices](https://symfony.com/doc/current/best_practices/index.html). * Separate application logic from presentation and data-persistence layers. @@ -16,7 +17,7 @@ This document contains basic information and recommendation for development this Within this application the base workflow is following: -`Controller/Command <--> Resource <--> Repository <--> Entity` +`Controller/Command(Transport layer) <--> Resource(Application layer) <--> Repository(Infrastructure layer) <--> Entity(Domain layer)` #### Exceptions * All Exceptions that should terminate the current request (and return an error message to the user) should be handled @@ -28,20 +29,27 @@ try catch block (catchable Exceptions). #### Entities Entities should only be data-persistence layers, i.e. defines relationships, attributes, helper methods -but does not fetch collections of data. +but does not fetch collections of data. Entities are located on the Domain layer (according to DDD approach) and shouldn't +know anything about other layers (Application/Infrastructure) or framework. In this application we made some "exception" +for such components like Doctrine/Swagger/Serializer/Validator (for the first time) and you can find such +dependencies inside Entities. #### Repositories -Repositories need to be responsible for parameter handling and query builder callbacks/joins. -Parameter handling can help with generic REST queries. +Repositories need to be responsible for parameter handling and query builder callbacks/joins. Should be located on +infrastructure layer. Parameter handling can help with generic REST queries. #### Resources -Resource services are layer between your controller/command and repository. -Within this layer it is possible to control how to `mutate` repository data for application needs. +Resource services are services between your controller/command and repository. Should be located on application layer. +Within this service it is possible to control how to `mutate` repository data for application needs. Resource services are basically the application foundation and it can control your request and response as you like. +We have provided 2 examples how to build resource services: 1)resource with all-in-one actions (create/update/delete/etc, see example src/ApiKey/Application/Resource/ApiKeyResource.php) +2)resource with single responsibility (f.e. count, see example src/ApiKey/Application/Resource/ApiKeyCountResource.php). #### Controllers -Keep controllers clean of application logic. They should ideally just inject resources/services - either through -the constructor (if used more than once) or in the controller method itself. +Should be located on Transport layer. Keep controllers clean of application logic. They should ideally just inject +resources/services - either through the constructor (if used more than once) or in the controller method itself. +We have provided 2 examples how to build controllers: 1)controller with all-in-one actions (create/update/delete/etc, see example src/ApiKey/Transport/Controller/Api/v1/ApiKey/ApiKeyController.php) +2)controller with single responsibility (f.e. count, see example src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyCountController.php) #### Events Events are handled by event listeners. Please follow instruction [here](https://symfony.com/doc/current/event_dispatcher.html). diff --git a/docs/images/phpstorm_01.png b/docs/images/phpstorm_01.png index 69b2f34c..c5f9c8c7 100644 Binary files a/docs/images/phpstorm_01.png and b/docs/images/phpstorm_01.png differ diff --git a/docs/images/phpstorm_02.png b/docs/images/phpstorm_02.png index e9566b74..ced3e2cd 100644 Binary files a/docs/images/phpstorm_02.png and b/docs/images/phpstorm_02.png differ diff --git a/docs/images/phpstorm_03.png b/docs/images/phpstorm_03.png index 58dd78cd..7171a852 100644 Binary files a/docs/images/phpstorm_03.png and b/docs/images/phpstorm_03.png differ diff --git a/docs/images/phpstorm_04.png b/docs/images/phpstorm_04.png index 4c0e6a86..c94556f0 100644 Binary files a/docs/images/phpstorm_04.png and b/docs/images/phpstorm_04.png differ diff --git a/docs/images/phpstorm_05.png b/docs/images/phpstorm_05.png index 406c773c..308fac80 100644 Binary files a/docs/images/phpstorm_05.png and b/docs/images/phpstorm_05.png differ diff --git a/docs/images/phpstorm_06.png b/docs/images/phpstorm_06.png index b3584825..66fe6710 100644 Binary files a/docs/images/phpstorm_06.png and b/docs/images/phpstorm_06.png differ diff --git a/docs/images/phpstorm_07.png b/docs/images/phpstorm_07.png index c9c0fbce..9802c50c 100644 Binary files a/docs/images/phpstorm_07.png and b/docs/images/phpstorm_07.png differ diff --git a/docs/images/phpstorm_08.png b/docs/images/phpstorm_08.png index 043dd6ac..44d033f1 100644 Binary files a/docs/images/phpstorm_08.png and b/docs/images/phpstorm_08.png differ diff --git a/docs/images/phpstorm_09.png b/docs/images/phpstorm_09.png index 2ea71701..75b62d80 100644 Binary files a/docs/images/phpstorm_09.png and b/docs/images/phpstorm_09.png differ diff --git a/docs/images/phpstorm_10.png b/docs/images/phpstorm_10.png index cdb38fd9..178d19a4 100644 Binary files a/docs/images/phpstorm_10.png and b/docs/images/phpstorm_10.png differ diff --git a/docs/images/phpstorm_11.png b/docs/images/phpstorm_11.png index 3ba3a6ee..2a72c43b 100644 Binary files a/docs/images/phpstorm_11.png and b/docs/images/phpstorm_11.png differ diff --git a/docs/images/phpstorm_12.png b/docs/images/phpstorm_12.png index 941d3532..f00ec58e 100644 Binary files a/docs/images/phpstorm_12.png and b/docs/images/phpstorm_12.png differ diff --git a/docs/images/phpstorm_13.png b/docs/images/phpstorm_13.png index aa448908..661221ac 100644 Binary files a/docs/images/phpstorm_13.png and b/docs/images/phpstorm_13.png differ diff --git a/docs/images/xdebug_01.png b/docs/images/xdebug_01.png index a4e87cbf..c47c74c7 100644 Binary files a/docs/images/xdebug_01.png and b/docs/images/xdebug_01.png differ diff --git a/docs/images/xdebug_02.png b/docs/images/xdebug_02.png index 7b64bbe1..5285d037 100644 Binary files a/docs/images/xdebug_02.png and b/docs/images/xdebug_02.png differ diff --git a/docs/postman/symfony.postman_collection.json b/docs/postman/symfony.postman_collection.json index 7b111c3d..bb006682 100644 --- a/docs/postman/symfony.postman_collection.json +++ b/docs/postman/symfony.postman_collection.json @@ -180,253 +180,504 @@ "name": "ApiKey Management", "item": [ { - "name": "count", - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token}}" - } - ], - "url": { - "raw": "https://{{host}}/api/v1/api_key/count", - "protocol": "https", - "host": [ - "{{host}}" - ], - "path": [ - "api", - "v1", - "api_key", - "count" - ] + "name": "v1", + "item": [ + { + "name": "count", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token}}" + } + ], + "url": { + "raw": "https://{{host}}/api/v1/api_key/count", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v1", + "api_key", + "count" + ] + }, + "description": "Count entities, accessible only for 'ROLE_ROOT' users." + }, + "response": [] }, - "description": "Count entities, accessible only for 'ROLE_ROOT' users." - }, - "response": [] - }, - { - "name": "list", - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token}}" - } - ], - "url": { - "raw": "https://{{host}}/api/v1/api_key", - "protocol": "https", - "host": [ - "{{host}}" - ], - "path": [ - "api", - "v1", - "api_key" - ] + { + "name": "list", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token}}" + } + ], + "url": { + "raw": "https://{{host}}/api/v1/api_key", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v1", + "api_key" + ] + }, + "description": "Get list of entities, accessible only for 'ROLE_ROOT' users." + }, + "response": [] }, - "description": "Get list of entities, accessible only for 'ROLE_ROOT' users." - }, - "response": [] - }, - { - "name": "create", - "request": { - "method": "POST", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"description\": \"test api key\",\n \"userGroups\": [\n \"f99a6c90-70e7-11ec-b886-0242ac120008\"\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } + { + "name": "get", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + } + ], + "url": { + "raw": "https://{{host}}/api/v1/api_key/5ce02838-08e5-11eb-a845-0242ac120007", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v1", + "api_key", + "5ce02838-08e5-11eb-a845-0242ac120007" + ] + }, + "description": "Find entity, accessible only for 'ROLE_ROOT' users." + }, + "response": [] }, - "url": { - "raw": "https://{{host}}/api/v1/api_key", - "protocol": "https", - "host": [ - "{{host}}" - ], - "path": [ - "api", - "v1", - "api_key" - ] + { + "name": "create", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"description\": \"test api key\",\n \"userGroups\": [\n \"f99a6c90-70e7-11ec-b886-0242ac120008\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{host}}/api/v1/api_key", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v1", + "api_key" + ] + }, + "description": "Create entity, accessible only for 'ROLE_ROOT' users." + }, + "response": [] }, - "description": "Create entity, accessible only for 'ROLE_ROOT' users." - }, - "response": [] - }, - { - "name": "get", - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "value": "Bearer {{token}}", - "type": "text" - } - ], - "url": { - "raw": "https://{{host}}/api/v1/api_key/5ce02838-08e5-11eb-a845-0242ac120007", - "protocol": "https", - "host": [ - "{{host}}" - ], - "path": [ - "api", - "v1", - "api_key", - "5ce02838-08e5-11eb-a845-0242ac120007" - ] + { + "name": "update", + "request": { + "method": "PUT", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"description\": \"test api key #2\",\n \"userGroups\": [\n \"f99a6c90-70e7-11ec-b886-0242ac120008\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{host}}/api/v1/api_key/27245cee-7579-11ec-bdae-0242ac120007", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v1", + "api_key", + "27245cee-7579-11ec-bdae-0242ac120007" + ] + }, + "description": "/api/api_key/{id}" + }, + "response": [] }, - "description": "Find entity, accessible only for 'ROLE_ROOT' users." - }, - "response": [] + { + "name": "update", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"description\": \"test api key 22\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{host}}/api/v1/api_key/27245cee-7579-11ec-bdae-0242ac120007", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v1", + "api_key", + "27245cee-7579-11ec-bdae-0242ac120007" + ] + }, + "description": "Patch entity with new data, accessible only for 'ROLE_ROOT' users." + }, + "response": [] + }, + { + "name": "delete", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + } + ], + "url": { + "raw": "https://{{host}}/api/v1/api_key/27245cee-7579-11ec-bdae-0242ac120007", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v1", + "api_key", + "27245cee-7579-11ec-bdae-0242ac120007" + ] + }, + "description": "/api/api_key/{id}" + }, + "response": [] + }, + { + "name": "ids list", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + } + ], + "url": { + "raw": "https://{{host}}/api/v1/api_key/ids", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v1", + "api_key", + "ids" + ] + }, + "description": "Find ids list, accessible only for 'ROLE_ROOT' users." + }, + "response": [] + } + ] }, { - "name": "update", - "request": { - "method": "PUT", - "header": [ - { - "key": "Authorization", - "value": "Bearer {{token}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"description\": \"test api key #2\",\n \"userGroups\": [\n \"f99a6c90-70e7-11ec-b886-0242ac120008\"\n ]\n}", - "options": { - "raw": { - "language": "json" + "name": "v2", + "item": [ + { + "name": "count", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token}}" + } + ], + "url": { + "raw": "https://{{host}}/api/v2/api_key/count", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v2", + "api_key", + "count" + ] } - } + }, + "response": [] }, - "url": { - "raw": "https://{{host}}/api/v1/api_key/27245cee-7579-11ec-bdae-0242ac120007", - "protocol": "https", - "host": [ - "{{host}}" - ], - "path": [ - "api", - "v1", - "api_key", - "27245cee-7579-11ec-bdae-0242ac120007" - ] + { + "name": "list", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token}}" + } + ], + "url": { + "raw": "https://{{host}}/api/v2/api_key", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v2", + "api_key" + ] + } + }, + "response": [] }, - "description": "/api/api_key/{id}" - }, - "response": [] - }, - { - "name": "update", - "request": { - "method": "PATCH", - "header": [ - { - "key": "Authorization", - "type": "text", - "value": "Bearer {{token}}" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"description\": \"test api key 22\"\n}", - "options": { - "raw": { - "language": "json" + { + "name": "get", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + } + ], + "url": { + "raw": "https://{{host}}/api/v2/api_key/3bbe3828-c8ad-11ec-8ba6-0242ac120006", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v2", + "api_key", + "3bbe3828-c8ad-11ec-8ba6-0242ac120006" + ] } - } + }, + "response": [] }, - "url": { - "raw": "https://{{host}}/api/v1/api_key/27245cee-7579-11ec-bdae-0242ac120007", - "protocol": "https", - "host": [ - "{{host}}" - ], - "path": [ - "api", - "v1", - "api_key", - "27245cee-7579-11ec-bdae-0242ac120007" - ] + { + "name": "create", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"description\": \"test api key\",\n \"userGroups\": [\n \"ed38a542-c3db-11ec-b147-0242ac120007\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{host}}/api/v2/api_key", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v2", + "api_key" + ] + } + }, + "response": [] }, - "description": "Patch entity with new data, accessible only for 'ROLE_ROOT' users." - }, - "response": [] - }, - { - "name": "delete", - "request": { - "method": "DELETE", - "header": [ - { - "key": "Authorization", - "value": "Bearer {{token}}", - "type": "text" - } - ], - "url": { - "raw": "https://{{host}}/api/v1/api_key/27245cee-7579-11ec-bdae-0242ac120007", - "protocol": "https", - "host": [ - "{{host}}" - ], - "path": [ - "api", - "v1", - "api_key", - "27245cee-7579-11ec-bdae-0242ac120007" - ] + { + "name": "update", + "request": { + "method": "PUT", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"description\": \"test api key #2\",\n \"userGroups\": [\n \"ed38a542-c3db-11ec-b147-0242ac120007\"\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{host}}/api/v2/api_key/3bbe3828-c8ad-11ec-8ba6-0242ac120006", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v2", + "api_key", + "3bbe3828-c8ad-11ec-8ba6-0242ac120006" + ] + } + }, + "response": [] }, - "description": "/api/api_key/{id}" - }, - "response": [] - }, - { - "name": "ids list", - "request": { - "method": "GET", - "header": [ - { - "key": "Authorization", - "value": "Bearer {{token}}", - "type": "text" - } - ], - "url": { - "raw": "https://{{host}}/api/v1/api_key/ids", - "protocol": "https", - "host": [ - "{{host}}" - ], - "path": [ - "api", - "v1", - "api_key", - "ids" - ] + { + "name": "update", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "type": "text", + "value": "Bearer {{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"description\": \"test api key\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{host}}/api/v2/api_key/3bbe3828-c8ad-11ec-8ba6-0242ac120006", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v2", + "api_key", + "3bbe3828-c8ad-11ec-8ba6-0242ac120006" + ] + } + }, + "response": [] }, - "description": "Find ids list, accessible only for 'ROLE_ROOT' users." - }, - "response": [] + { + "name": "delete", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + } + ], + "url": { + "raw": "https://{{host}}/api/v2/api_key/27245cee-7579-11ec-bdae-0242ac120007", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v2", + "api_key", + "27245cee-7579-11ec-bdae-0242ac120007" + ] + } + }, + "response": [] + }, + { + "name": "ids list", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{token}}", + "type": "text" + } + ], + "url": { + "raw": "https://{{host}}/api/v2/api_key/ids", + "protocol": "https", + "host": [ + "{{host}}" + ], + "path": [ + "api", + "v2", + "api_key", + "ids" + ] + } + }, + "response": [] + } + ] } ] }, diff --git a/ecs.php b/ecs.php index c594ba6b..3f3e85d9 100644 --- a/ecs.php +++ b/ecs.php @@ -83,7 +83,8 @@ 'case', 'continue', 'curly_brace_block', - 'default', 'extra', + 'default', + 'extra', 'parenthesis_brace_block', 'return', 'square_brace_block', diff --git a/migrations/Version20211001194001.php b/migrations/Version20211001194001.php index 6fc00739..3908ba9f 100644 --- a/migrations/Version20211001194001.php +++ b/migrations/Version20211001194001.php @@ -5,6 +5,7 @@ // phpcs:ignoreFile namespace DoctrineMigrations; +use Doctrine\DBAL\Platforms\AbstractMySQLPlatform; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; @@ -28,7 +29,7 @@ public function up(Schema $schema): void { // this up() migration is auto-generated, please modify it to your needs $this->abortIf( - $this->connection->getDatabasePlatform()->getName() !== 'mysql', + !$this->connection->getDatabasePlatform() instanceof AbstractMySQLPlatform, 'Migration can only be executed safely on \'mysql\'.' ); @@ -128,6 +129,7 @@ public function up(Schema $schema): void brand_name VARCHAR(255) DEFAULT NULL, model VARCHAR(255) DEFAULT NULL, type ENUM('failure', 'success') NOT NULL COMMENT '(DC2Type:EnumLogLogin)', + username VARCHAR(255) NOT NULL, time DATETIME NOT NULL COMMENT '(DC2Type:datetime_immutable)', `date` DATE NOT NULL COMMENT '(DC2Type:date_immutable)', agent LONGTEXT NOT NULL, @@ -310,7 +312,7 @@ public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf( - $this->connection->getDatabasePlatform()->getName() !== 'mysql', + !$this->connection->getDatabasePlatform() instanceof AbstractMySQLPlatform, 'Migration can only be executed safely on \'mysql\'.' ); diff --git a/phpinsights.php b/phpinsights.php index cdc6fcf3..e8705b60 100644 --- a/phpinsights.php +++ b/phpinsights.php @@ -80,6 +80,9 @@ 'lineLimit' => 120, 'absoluteLineLimit' => 140, 'ignoreComments' => true, + 'exclude' => [ + 'src/General/Application/Rest/Interfaces/RestResourceInterface.php', + ], ], PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\SpaceAfterCastSniff::class => [ 'spacing' => 0, @@ -104,32 +107,32 @@ ], SlevomatCodingStandard\Sniffs\Functions\UnusedParameterSniff::class => [ 'exclude' => [ - 'src/ArgumentResolver/LoggedInUserValueResolver.php', - 'src/ArgumentResolver/RestDtoValueResolver.php', - 'src/AutoMapper/RestRequestMapper.php', - 'src/Decorator/StopwatchDecorator.php', - 'src/Doctrine/DBAL/Types/EnumType.php', - 'src/Rest/Traits/Methods/RestMethodProcessCriteria.php', - 'src/Rest/Traits/RestResourceCount.php', - 'src/Rest/Traits/RestResourceCreate.php', - 'src/Rest/Traits/RestResourceDelete.php', - 'src/Rest/Traits/RestResourceFind.php', - 'src/Rest/Traits/RestResourceFindOne.php', - 'src/Rest/Traits/RestResourceFindOneBy.php', - 'src/Rest/Traits/RestResourceIds.php', - 'src/Rest/Traits/RestResourcePatch.php', - 'src/Rest/Traits/RestResourceSave.php', - 'src/Rest/Traits/RestResourceUpdate.php', - 'src/Security/Authenticator/ApiKeyAuthenticator.php', - 'src/Security/Handler/TranslatedAuthenticationFailureHandler.php', - 'src/Security/Provider/ApiKeyUserProvider.php', - 'src/Security/Voter/IsUserHimselfVoter.php', - 'src/Validator/Constraints/LanguageValidator.php', - 'src/Validator/Constraints/LocaleValidator.php', - 'src/Validator/Constraints/TimezoneValidator.php', - 'src/Validator/Constraints/UniqueEmailValidator.php', - 'src/Validator/Constraints/UniqueUsernameValidator.php', - 'src/MessageHandler/TestHandler.php', + 'src/General/Transport/ArgumentResolver/LoggedInUserValueResolver.php', + 'src/General/Transport/ArgumentResolver/RestDtoValueResolver.php', + 'src/General/Transport/AutoMapper/RestRequestMapper.php', + 'src/General/Application/Decorator/StopwatchDecorator.php', + 'src/General/Domain/Doctrine/DBAL/Types/EnumType.php', + 'src/General/Transport/Rest/Traits/Methods/RestMethodProcessCriteria.php', + 'src/General/Application/Rest/Traits/RestResourceCount.php', + 'src/General/Application/Rest/Traits/RestResourceCreate.php', + 'src/General/Application/Rest/Traits/RestResourceDelete.php', + 'src/General/Application/Rest/Traits/RestResourceFind.php', + 'src/General/Application/Rest/Traits/RestResourceFindOne.php', + 'src/General/Application/Rest/Traits/RestResourceFindOneBy.php', + 'src/General/Application/Rest/Traits/RestResourceIds.php', + 'src/General/Application/Rest/Traits/RestResourcePatch.php', + 'src/General/Application/Rest/Traits/RestResourceSave.php', + 'src/General/Application/Rest/Traits/RestResourceUpdate.php', + 'src/ApiKey/Application/Security/Authenticator/ApiKeyAuthenticator.php', + 'src/User/Application/Security/Handler/TranslatedAuthenticationFailureHandler.php', + 'src/ApiKey/Application/Security/Provider/ApiKeyUserProvider.php', + 'src/User/Application/Security/Voter/IsUserHimselfVoter.php', + 'src/Tool/Application/Validator/Constraints/LanguageValidator.php', + 'src/Tool/Application/Validator/Constraints/LocaleValidator.php', + 'src/Tool/Application/Validator/Constraints/TimezoneValidator.php', + 'src/User/Application/Validator/Constraints/UniqueEmailValidator.php', + 'src/User/Application/Validator/Constraints/UniqueUsernameValidator.php', + 'src/General/Infrastructure/MessageHandler/TestHandler.php', ], ], SlevomatCodingStandard\Sniffs\Namespaces\UnusedUsesSniff::class => [ diff --git a/phpmd_ruleset.xml b/phpmd_ruleset.xml index 8cfd1fff..4558d784 100644 --- a/phpmd_ruleset.xml +++ b/phpmd_ruleset.xml @@ -8,13 +8,14 @@ + - + diff --git a/phpunit.xml.dist b/phpunit.xml.dist index f6c0a0e4..579f739e 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -19,8 +19,16 @@ ./src - ./src/Command - ./src/DataFixtures + ./src/ApiKey/Transport/Command + ./src/DateDimension/Transport/Command + ./src/General/Transport/Command + ./src/Log/Transport/Command + ./src/Role/Transport/Command + ./src/Tool/Transport/Command + ./src/User/Transport/Command + ./src/ApiKey/Infrastructure/DataFixtures + ./src/Role/Infrastructure/DataFixtures + ./src/User/Infrastructure/DataFixtures ./src/Kernel.php diff --git a/readme.md b/readme.md index 1fadbaf7..5f1bd824 100644 --- a/readme.md +++ b/readme.md @@ -21,7 +21,7 @@ Note: OS recommendation - Linux Ubuntu based. 1. Nginx 1.21 2. PHP 8 fpm 3. MySQL 8 -4. Symfony 5 +4. Symfony 6 5. RabbitMQ 3 6. Elasticsearch 7 7. Kibana 7 @@ -270,7 +270,7 @@ etc.... Notes: Please see more commands in Makefile ## Architecture & packages -* [Symfony 5](https://symfony.com) +* [Symfony 6](https://symfony.com) * [doctrine-migrations-bundle](https://github.com/doctrine/DoctrineMigrationsBundle) * [doctrine-fixtures-bundle](https://github.com/doctrine/DoctrineFixturesBundle) * [command-scheduler-bundle](https://packagist.org/packages/dukecity/command-scheduler-bundle) diff --git a/src/DTO/ApiKey/ApiKey.php b/src/ApiKey/Application/DTO/ApiKey/ApiKey.php similarity index 85% rename from src/DTO/ApiKey/ApiKey.php rename to src/ApiKey/Application/DTO/ApiKey/ApiKey.php index e36fc671..8691eb58 100644 --- a/src/DTO/ApiKey/ApiKey.php +++ b/src/ApiKey/Application/DTO/ApiKey/ApiKey.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace App\DTO\ApiKey; - -use App\DTO\Interfaces\RestDtoInterface; -use App\DTO\RestDto; -use App\Entity\ApiKey as Entity; -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Interfaces\UserGroupAwareInterface; -use App\Entity\UserGroup as UserGroupEntity; -use App\Validator\Constraints as AppAssert; +namespace App\ApiKey\Application\DTO\ApiKey; + +use App\ApiKey\Domain\Entity\ApiKey as Entity; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Application\DTO\RestDto; +use App\General\Application\Validator\Constraints as AppAssert; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\User\Domain\Entity\Interfaces\UserGroupAwareInterface; +use App\User\Domain\Entity\UserGroup as UserGroupEntity; use Symfony\Component\Validator\Constraints as Assert; use function array_map; @@ -18,7 +18,7 @@ /** * Class ApiKey * - * @package App\DTO + * @package App\ApiKey * * @method self|RestDtoInterface get(string $id) * @method self|RestDtoInterface patch(RestDtoInterface $dto) diff --git a/src/DTO/ApiKey/ApiKeyCreate.php b/src/ApiKey/Application/DTO/ApiKey/ApiKeyCreate.php similarity index 60% rename from src/DTO/ApiKey/ApiKeyCreate.php rename to src/ApiKey/Application/DTO/ApiKey/ApiKeyCreate.php index 395444ab..3f781817 100644 --- a/src/DTO/ApiKey/ApiKeyCreate.php +++ b/src/ApiKey/Application/DTO/ApiKey/ApiKeyCreate.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\DTO\ApiKey; +namespace App\ApiKey\Application\DTO\ApiKey; /** * Class ApiKeyCreate * - * @package App\DTO\ApiKey + * @package App\ApiKey */ class ApiKeyCreate extends ApiKey { diff --git a/src/DTO/ApiKey/ApiKeyPatch.php b/src/ApiKey/Application/DTO/ApiKey/ApiKeyPatch.php similarity index 51% rename from src/DTO/ApiKey/ApiKeyPatch.php rename to src/ApiKey/Application/DTO/ApiKey/ApiKeyPatch.php index 63bc9796..609818fc 100644 --- a/src/DTO/ApiKey/ApiKeyPatch.php +++ b/src/ApiKey/Application/DTO/ApiKey/ApiKeyPatch.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\DTO\ApiKey; +namespace App\ApiKey\Application\DTO\ApiKey; -use App\DTO\Traits\PatchUserGroups; +use App\User\Application\DTO\Traits\PatchUserGroups; /** * Class ApiKeyPatch * - * @package App\DTO\ApiKey + * @package App\ApiKey */ class ApiKeyPatch extends ApiKey { diff --git a/src/DTO/ApiKey/ApiKeyUpdate.php b/src/ApiKey/Application/DTO/ApiKey/ApiKeyUpdate.php similarity index 60% rename from src/DTO/ApiKey/ApiKeyUpdate.php rename to src/ApiKey/Application/DTO/ApiKey/ApiKeyUpdate.php index e943e2e6..2176dc77 100644 --- a/src/DTO/ApiKey/ApiKeyUpdate.php +++ b/src/ApiKey/Application/DTO/ApiKey/ApiKeyUpdate.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\DTO\ApiKey; +namespace App\ApiKey\Application\DTO\ApiKey; /** * Class ApiKeyUpdate * - * @package App\DTO\ApiKey + * @package App\ApiKey */ class ApiKeyUpdate extends ApiKey { diff --git a/src/ApiKey/Application/Resource/ApiKeyCountResource.php b/src/ApiKey/Application/Resource/ApiKeyCountResource.php new file mode 100644 index 00000000..e3ab8bda --- /dev/null +++ b/src/ApiKey/Application/Resource/ApiKeyCountResource.php @@ -0,0 +1,37 @@ +identifier = $apiKey->getToken(); $this->apiKeyIdentifier = $apiKey->getId(); - $this->roles = array_unique(array_merge($roles, [RolesServiceInterface::ROLE_API])); + $this->roles = array_unique(array_merge($roles, [Role::ROLE_API])); } public function getUserIdentifier(): string @@ -80,16 +80,4 @@ public function getSalt(): ?string public function eraseCredentials(): void { } - - /** - * @remimder Remove this method when Symfony 6.0.0 is released - * - * {@inheritdoc} - * - * @codeCoverageIgnore - */ - public function getUsername(): string - { - return $this->getUserIdentifier(); - } } diff --git a/src/Security/Authenticator/ApiKeyAuthenticator.php b/src/ApiKey/Application/Security/Authenticator/ApiKeyAuthenticator.php similarity index 93% rename from src/Security/Authenticator/ApiKeyAuthenticator.php rename to src/ApiKey/Application/Security/Authenticator/ApiKeyAuthenticator.php index 489abee2..b007f7ac 100644 --- a/src/Security/Authenticator/ApiKeyAuthenticator.php +++ b/src/ApiKey/Application/Security/Authenticator/ApiKeyAuthenticator.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Security\Authenticator; +namespace App\ApiKey\Application\Security\Authenticator; -use App\Security\Provider\ApiKeyUserProvider; +use App\ApiKey\Application\Security\Provider\ApiKeyUserProvider; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -21,7 +21,7 @@ /** * Class ApiKeyAuthenticator * - * @package App\Security\Authenticator + * @package App\ApiKey */ class ApiKeyAuthenticator extends AbstractAuthenticator { diff --git a/src/Security/Interfaces/ApiKeyUserInterface.php b/src/ApiKey/Application/Security/Interfaces/ApiKeyUserInterface.php similarity index 69% rename from src/Security/Interfaces/ApiKeyUserInterface.php rename to src/ApiKey/Application/Security/Interfaces/ApiKeyUserInterface.php index 7e34f9f0..452d4c30 100644 --- a/src/Security/Interfaces/ApiKeyUserInterface.php +++ b/src/ApiKey/Application/Security/Interfaces/ApiKeyUserInterface.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\Security\Interfaces; +namespace App\ApiKey\Application\Security\Interfaces; -use App\Entity\ApiKey; +use App\ApiKey\Domain\Entity\ApiKey; /** * Interface ApiKeyUserInterface * - * @package App\Security\Interfaces + * @package App\ApiKey */ interface ApiKeyUserInterface { diff --git a/src/Security/Provider/ApiKeyUserProvider.php b/src/ApiKey/Application/Security/Provider/ApiKeyUserProvider.php similarity index 71% rename from src/Security/Provider/ApiKeyUserProvider.php rename to src/ApiKey/Application/Security/Provider/ApiKeyUserProvider.php index afbcaffe..9b9715f4 100644 --- a/src/Security/Provider/ApiKeyUserProvider.php +++ b/src/ApiKey/Application/Security/Provider/ApiKeyUserProvider.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\Security\Provider; +namespace App\ApiKey\Application\Security\Provider; -use App\Entity\ApiKey; -use App\Repository\ApiKeyRepository; -use App\Security\ApiKeyUser; -use App\Security\Provider\Interfaces\ApiKeyUserProviderInterface; -use App\Security\RolesService; +use App\ApiKey\Application\Security\ApiKeyUser; +use App\ApiKey\Application\Security\Provider\Interfaces\ApiKeyUserProviderInterface; +use App\ApiKey\Domain\Entity\ApiKey; +use App\ApiKey\Domain\Repository\Interfaces\ApiKeyRepositoryInterface; +use App\Role\Application\Security\RolesService; use Symfony\Component\Security\Core\Exception\UnsupportedUserException; use Symfony\Component\Security\Core\Exception\UserNotFoundException; use Symfony\Component\Security\Core\User\UserInterface; @@ -17,12 +17,15 @@ /** * Class ApiKeyUserProvider * - * @package App\Security\Provider + * @package App\ApiKey */ class ApiKeyUserProvider implements ApiKeyUserProviderInterface, UserProviderInterface { + /** + * @param \App\ApiKey\Infrastructure\Repository\ApiKeyRepository $apiKeyRepository + */ public function __construct( - private ApiKeyRepository $apiKeyRepository, + private ApiKeyRepositoryInterface $apiKeyRepository, private RolesService $rolesService, ) { } @@ -63,16 +66,4 @@ public function getApiKeyForToken(string $token): ?ApiKey 'token' => $token, ]); } - - /** - * @reminder Remove this method when Symfony 6.0.0 is released - * - * {@inheritdoc} - * - * @codeCoverageIgnore - */ - public function loadUserByUsername(string $username): ApiKeyUser - { - return $this->loadUserByIdentifier($username); - } } diff --git a/src/ApiKey/Application/Security/Provider/Interfaces/ApiKeyUserProviderInterface.php b/src/ApiKey/Application/Security/Provider/Interfaces/ApiKeyUserProviderInterface.php new file mode 100644 index 00000000..11535d62 --- /dev/null +++ b/src/ApiKey/Application/Security/Provider/Interfaces/ApiKeyUserProviderInterface.php @@ -0,0 +1,24 @@ +setToken($random); + return $this->setToken(ByteString::fromRandom(40)->toString()); } public function getDescription(): string @@ -212,7 +205,7 @@ public function getRoles(): array '\strval', array_unique( array_merge( - [RolesServiceInterface::ROLE_API], + [Role::ROLE_API], $this->userGroups ->map(static fn (UserGroup $userGroup): string => $userGroup->getRole()->getId()) ->toArray(), diff --git a/src/ApiKey/Domain/Repository/Interfaces/ApiKeyRepositoryInterface.php b/src/ApiKey/Domain/Repository/Interfaces/ApiKeyRepositoryInterface.php new file mode 100644 index 00000000..4efa52c2 --- /dev/null +++ b/src/ApiKey/Domain/Repository/Interfaces/ApiKeyRepositoryInterface.php @@ -0,0 +1,14 @@ +setChoices([ + ListApiKeysCommand::NAME => 'List API keys', + CreateApiKeyCommand::NAME => 'Create API key', + EditApiKeyCommand::NAME => 'Edit API key', + ChangeTokenCommand::NAME => 'Change API key token', + RemoveApiKeyCommand::NAME => 'Remove API key', + '0' => 'Exit', + ]); + } +} diff --git a/src/Command/ApiKey/ChangeTokenCommand.php b/src/ApiKey/Transport/Command/ApiKey/ChangeTokenCommand.php similarity index 78% rename from src/Command/ApiKey/ChangeTokenCommand.php rename to src/ApiKey/Transport/Command/ApiKey/ChangeTokenCommand.php index 57da9909..55b48d9d 100644 --- a/src/Command/ApiKey/ChangeTokenCommand.php +++ b/src/ApiKey/Transport/Command/ApiKey/ChangeTokenCommand.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace App\Command\ApiKey; +namespace App\ApiKey\Transport\Command\ApiKey; -use App\Command\Traits\SymfonyStyleTrait; -use App\Entity\ApiKey as ApiKeyEntity; -use App\Resource\ApiKeyResource; +use App\ApiKey\Application\Resource\ApiKeyResource; +use App\ApiKey\Domain\Entity\ApiKey as ApiKeyEntity; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -16,12 +17,18 @@ /** * Class ChangeTokenCommand * - * @package App\Command\ApiKey + * @package App\ApiKey */ +#[AsCommand( + name: self::NAME, + description: 'Command to change token for existing API key', +)] class ChangeTokenCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'api-key:change-token'; + /** * Constructor * @@ -31,9 +38,7 @@ public function __construct( private ApiKeyResource $apiKeyResource, private ApiKeyHelper $apiKeyHelper, ) { - parent::__construct('api-key:change-token'); - - $this->setDescription('Command to change token for existing API key'); + parent::__construct(); } /** diff --git a/src/Command/ApiKey/CreateApiKeyCommand.php b/src/ApiKey/Transport/Command/ApiKey/CreateApiKeyCommand.php similarity index 78% rename from src/Command/ApiKey/CreateApiKeyCommand.php rename to src/ApiKey/Transport/Command/ApiKey/CreateApiKeyCommand.php index efdf9d09..8c6b8ad5 100644 --- a/src/Command/ApiKey/CreateApiKeyCommand.php +++ b/src/ApiKey/Transport/Command/ApiKey/CreateApiKeyCommand.php @@ -2,19 +2,20 @@ declare(strict_types=1); -namespace App\Command\ApiKey; - -use App\Command\HelperConfigure; -use App\Command\Traits\ApiKeyUserManagementHelperTrait; -use App\Command\Traits\SymfonyStyleTrait; -use App\DTO\ApiKey\ApiKeyCreate as ApiKey; -use App\Entity\ApiKey as ApiKeyEntity; -use App\Form\Type\Console\ApiKeyType; -use App\Repository\RoleRepository; -use App\Resource\ApiKeyResource; -use App\Resource\UserGroupResource; -use App\Security\RolesService; +namespace App\ApiKey\Transport\Command\ApiKey; + +use App\ApiKey\Application\DTO\ApiKey\ApiKeyCreate as ApiKey; +use App\ApiKey\Application\Resource\ApiKeyResource; +use App\ApiKey\Domain\Entity\ApiKey as ApiKeyEntity; +use App\ApiKey\Transport\Form\Type\Console\ApiKeyType; +use App\General\Transport\Command\HelperConfigure; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\Role\Application\Resource\RoleResource; +use App\Role\Application\Security\RolesService; +use App\User\Application\Resource\UserGroupResource; +use App\User\Transport\Command\Traits\ApiKeyUserManagementHelperTrait; use Matthias\SymfonyConsoleForm\Console\Helper\FormHelper; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\InvalidArgumentException; use Symfony\Component\Console\Exception\LogicException; @@ -26,13 +27,19 @@ /** * Class CreateApiKeyCommand * - * @package App\Command\ApiKey + * @package App\ApiKey */ +#[AsCommand( + name: self::NAME, + description: 'Command to create new API key', +)] class CreateApiKeyCommand extends Command { use ApiKeyUserManagementHelperTrait; use SymfonyStyleTrait; + public const NAME = 'api-key:create'; + /** * @var array> */ @@ -53,11 +60,9 @@ public function __construct( private ApiKeyResource $apiKeyResource, private UserGroupResource $userGroupResource, private RolesService $rolesService, - private RoleRepository $roleRepository, + private RoleResource $roleResource, ) { - parent::__construct('api-key:create'); - - $this->setDescription('Command to create new API key'); + parent::__construct(); } public function getRolesService(): RolesService @@ -126,7 +131,7 @@ private function checkUserGroups(SymfonyStyle $io, OutputInterface $output, bool } // Reset roles - $this->roleRepository->reset(); + $this->roleResource->getRepository()->reset(); // Create user groups for each roles $this->createUserGroups($output); } diff --git a/src/Command/ApiKey/EditApiKeyCommand.php b/src/ApiKey/Transport/Command/ApiKey/EditApiKeyCommand.php similarity index 78% rename from src/Command/ApiKey/EditApiKeyCommand.php rename to src/ApiKey/Transport/Command/ApiKey/EditApiKeyCommand.php index a13af274..e2824650 100644 --- a/src/Command/ApiKey/EditApiKeyCommand.php +++ b/src/ApiKey/Transport/Command/ApiKey/EditApiKeyCommand.php @@ -2,14 +2,15 @@ declare(strict_types=1); -namespace App\Command\ApiKey; +namespace App\ApiKey\Transport\Command\ApiKey; -use App\Command\Traits\SymfonyStyleTrait; -use App\DTO\ApiKey\ApiKey as ApiKeyDto; -use App\Entity\ApiKey as ApiKeyEntity; -use App\Form\Type\Console\ApiKeyType; -use App\Resource\ApiKeyResource; +use App\ApiKey\Application\DTO\ApiKey\ApiKey as ApiKeyDto; +use App\ApiKey\Application\Resource\ApiKeyResource; +use App\ApiKey\Domain\Entity\ApiKey as ApiKeyEntity; +use App\ApiKey\Transport\Form\Type\Console\ApiKeyType; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; use Matthias\SymfonyConsoleForm\Console\Helper\FormHelper; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -19,12 +20,18 @@ /** * Class EditApiKeyCommand * - * @package App\Command\ApiKey + * @package App\ApiKey */ +#[AsCommand( + name: self::NAME, + description: 'Command to edit existing API key', +)] class EditApiKeyCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'api-key:edit'; + /** * Constructor * @@ -34,9 +41,7 @@ public function __construct( private ApiKeyResource $apiKeyResource, private ApiKeyHelper $apiKeyHelper, ) { - parent::__construct('api-key:edit'); - - $this->setDescription('Command to edit existing API key'); + parent::__construct(); } /** diff --git a/src/Command/ApiKey/ListApiKeysCommand.php b/src/ApiKey/Transport/Command/ApiKey/ListApiKeysCommand.php similarity index 83% rename from src/Command/ApiKey/ListApiKeysCommand.php rename to src/ApiKey/Transport/Command/ApiKey/ListApiKeysCommand.php index d72abff6..6c0d02f2 100644 --- a/src/Command/ApiKey/ListApiKeysCommand.php +++ b/src/ApiKey/Transport/Command/ApiKey/ListApiKeysCommand.php @@ -2,13 +2,14 @@ declare(strict_types=1); -namespace App\Command\ApiKey; +namespace App\ApiKey\Transport\Command\ApiKey; -use App\Entity\ApiKey; -use App\Entity\UserGroup; -use App\Resource\ApiKeyResource; -use App\Security\RolesService; +use App\ApiKey\Application\Resource\ApiKeyResource; +use App\ApiKey\Domain\Entity\ApiKey; +use App\Role\Application\Security\RolesService; +use App\User\Domain\Entity\UserGroup; use Closure; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -23,10 +24,16 @@ /** * Class ListApiKeysCommand * - * @package App\Command\ApiKey + * @package App\ApiKey */ +#[AsCommand( + name: self::NAME, + description: 'Console command to list API keys', +)] class ListApiKeysCommand extends Command { + public const NAME = 'api-key:list'; + /** * Constructor * @@ -36,9 +43,7 @@ public function __construct( private ApiKeyResource $apiKeyResource, private RolesService $rolesService, ) { - parent::__construct('api-key:list'); - - $this->setDescription('Console command to list API keys'); + parent::__construct(); } /** diff --git a/src/Command/ApiKey/RemoveApiKeyCommand.php b/src/ApiKey/Transport/Command/ApiKey/RemoveApiKeyCommand.php similarity index 76% rename from src/Command/ApiKey/RemoveApiKeyCommand.php rename to src/ApiKey/Transport/Command/ApiKey/RemoveApiKeyCommand.php index 5531b0d0..4a61710a 100644 --- a/src/Command/ApiKey/RemoveApiKeyCommand.php +++ b/src/ApiKey/Transport/Command/ApiKey/RemoveApiKeyCommand.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace App\Command\ApiKey; +namespace App\ApiKey\Transport\Command\ApiKey; -use App\Command\Traits\SymfonyStyleTrait; -use App\Entity\ApiKey as ApiKeyEntity; -use App\Resource\ApiKeyResource; +use App\ApiKey\Application\Resource\ApiKeyResource; +use App\ApiKey\Domain\Entity\ApiKey as ApiKeyEntity; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -16,12 +17,18 @@ /** * Class RemoveApiKeyCommand * - * @package App\Command\ApiKey + * @package App\ApiKey */ +#[AsCommand( + name: self::NAME, + description: 'Console command to remove existing API key', +)] class RemoveApiKeyCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'api-key:remove'; + /** * Constructor * @@ -31,9 +38,7 @@ public function __construct( private ApiKeyResource $apiKeyResource, private ApiKeyHelper $apiKeyHelper, ) { - parent::__construct('api-key:remove'); - - $this->setDescription('Console command to remove existing API key'); + parent::__construct(); } /** diff --git a/src/Controller/Api/v1/ApiKey/ApiKeyController.php b/src/ApiKey/Transport/Controller/Api/v1/ApiKey/ApiKeyController.php similarity index 71% rename from src/Controller/Api/v1/ApiKey/ApiKeyController.php rename to src/ApiKey/Transport/Controller/Api/v1/ApiKey/ApiKeyController.php index b25abf9b..13794467 100644 --- a/src/Controller/Api/v1/ApiKey/ApiKeyController.php +++ b/src/ApiKey/Transport/Controller/Api/v1/ApiKey/ApiKeyController.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\ApiKey; +namespace App\ApiKey\Transport\Controller\Api\v1\ApiKey; -use App\DTO\ApiKey\ApiKeyCreate; -use App\DTO\ApiKey\ApiKeyPatch; -use App\DTO\ApiKey\ApiKeyUpdate; -use App\Resource\ApiKeyResource; -use App\Rest\Controller; -use App\Rest\ResponseHandler; -use App\Rest\Traits\Actions; +use App\ApiKey\Application\DTO\ApiKey\ApiKeyCreate; +use App\ApiKey\Application\DTO\ApiKey\ApiKeyPatch; +use App\ApiKey\Application\DTO\ApiKey\ApiKeyUpdate; +use App\ApiKey\Application\Resource\ApiKeyResource; +use App\General\Transport\Rest\Controller; +use App\General\Transport\Rest\ResponseHandler; +use App\General\Transport\Rest\Traits\Actions; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\Routing\Annotation\Route; @@ -19,9 +19,9 @@ /** * Class ApiKeyController * - * @OA\Tag(name="ApiKey Management") + * @OA\Tag(name="ApiKey Management v1") * - * @package App\Controller\Api\v1\ApiKey + * @package App\ApiKey * * @method ApiKeyResource getResource() * @method ResponseHandler getResponseHandler() diff --git a/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyCountController.php b/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyCountController.php new file mode 100644 index 00000000..a4d3d4d6 --- /dev/null +++ b/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyCountController.php @@ -0,0 +1,39 @@ + + */ + protected static array $dtoClasses = [ + Controller::METHOD_CREATE => ApiKeyCreate::class, + ]; + + public function __construct( + protected ApiKeyCreateResourceInterface $resource, + ) { + } +} diff --git a/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyDeleteController.php b/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyDeleteController.php new file mode 100644 index 00000000..98cf92e2 --- /dev/null +++ b/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyDeleteController.php @@ -0,0 +1,39 @@ + + */ + protected static array $dtoClasses = [ + Controller::METHOD_PATCH => ApiKeyPatch::class, + ]; + + public function __construct( + protected ApiKeyPatchResourceInterface $resource, + ) { + } +} diff --git a/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyUpdateController.php b/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyUpdateController.php new file mode 100644 index 00000000..ab4acb64 --- /dev/null +++ b/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyUpdateController.php @@ -0,0 +1,47 @@ + + */ + protected static array $dtoClasses = [ + Controller::METHOD_UPDATE => ApiKeyUpdate::class, + ]; + + public function __construct( + protected ApiKeyUpdateResourceInterface $resource, + ) { + } +} diff --git a/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyViewController.php b/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyViewController.php new file mode 100644 index 00000000..fc03e5b7 --- /dev/null +++ b/src/ApiKey/Transport/Controller/Api/v2/ApiKey/ApiKeyViewController.php @@ -0,0 +1,39 @@ +setDescription('Console command to manage API keys'); - $this->setChoices([ - 'api-key:list' => 'List API keys', - 'api-key:create' => 'Create API key', - 'api-key:edit' => 'Edit API key', - 'api-key:change-token' => 'Change API key token', - 'api-key:remove' => 'Remove API key', - '0' => 'Exit', - ]); - } -} diff --git a/src/Command/User/ManagementCommand.php b/src/Command/User/ManagementCommand.php deleted file mode 100644 index 2c103253..00000000 --- a/src/Command/User/ManagementCommand.php +++ /dev/null @@ -1,42 +0,0 @@ -setDescription('Console command to manage users and user groups'); - $this->setChoices([ - 'user:list' => 'List users', - 'user:list-groups' => 'List user groups', - 'user:create' => 'Create user', - 'user:create-group' => 'Create user group', - 'user:edit' => 'Edit user', - 'user:edit-group' => 'Edit user group', - 'user:remove' => 'Remove user', - 'user:remove-group' => 'Remove user group', - '0' => 'Exit', - ]); - } -} diff --git a/src/Controller/.gitignore b/src/Controller/.gitignore deleted file mode 100644 index e69de29b..00000000 diff --git a/src/Controller/Web/.gitignore b/src/Controller/Web/.gitignore deleted file mode 100644 index e69de29b..00000000 diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php deleted file mode 100644 index 3ae63e53..00000000 --- a/src/DataFixtures/AppFixtures.php +++ /dev/null @@ -1,19 +0,0 @@ -persist($product); - - $manager->flush(); - } -} diff --git a/src/DateDimension/Application/Resource/DateDimensionResource.php b/src/DateDimension/Application/Resource/DateDimensionResource.php new file mode 100644 index 00000000..39124b64 --- /dev/null +++ b/src/DateDimension/Application/Resource/DateDimensionResource.php @@ -0,0 +1,43 @@ +setDescription('Console command to create `DateDimension` entities.'); + parent::__construct(); } /** @@ -108,7 +111,7 @@ private function process(SymfonyStyle $io, int $yearStart, int $yearEnd): void ); // Remove existing entities - $this->dateDimensionRepository->reset(); + $this->dateDimensionResource->getRepository()->reset(); // Create entities to database $this->createEntities($yearEnd, $dateStart, $progress); @@ -141,7 +144,7 @@ private function getProgressBar(SymfonyStyle $io, int $steps, string $message): private function createEntities(int $yearEnd, DateTime $dateStart, ProgressBar $progress): void { // Get entity manager for _fast_ database handling. - $em = $this->dateDimensionRepository->getEntityManager(); + $em = $this->dateDimensionResource->getRepository()->getEntityManager(); // You spin me round (like a record... er like a date) while ((int)$dateStart->format('Y') < $yearEnd + 1) { diff --git a/src/Entity/.gitignore b/src/Entity/.gitignore deleted file mode 100644 index e69de29b..00000000 diff --git a/src/Collection/Traits/CollectionTrait.php b/src/General/Application/Collection/Traits/CollectionTrait.php similarity index 89% rename from src/Collection/Traits/CollectionTrait.php rename to src/General/Application/Collection/Traits/CollectionTrait.php index 5109cd9d..fa84ed89 100644 --- a/src/Collection/Traits/CollectionTrait.php +++ b/src/General/Application/Collection/Traits/CollectionTrait.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Collection\Traits; +namespace App\General\Application\Collection\Traits; use CallbackFilterIterator; use Closure; @@ -16,7 +16,7 @@ /** * Trait CollectionTrait * - * @package App\Collection\Traits + * @package App\General */ trait CollectionTrait { @@ -83,7 +83,10 @@ private function getFilteredItem(string $className): mixed return null; } - $filteredIterator = new CallbackFilterIterator(new IteratorIterator($iterator), $this->filter($className)); + $filteredIterator = new CallbackFilterIterator( + new IteratorIterator($iterator), + $this->filter($className) + ); $filteredIterator->rewind(); return $filteredIterator->current(); diff --git a/src/Compiler/StopwatchCompilerPass.php b/src/General/Application/Compiler/StopwatchCompilerPass.php similarity index 91% rename from src/Compiler/StopwatchCompilerPass.php rename to src/General/Application/Compiler/StopwatchCompilerPass.php index a16ced05..3d61ca08 100644 --- a/src/Compiler/StopwatchCompilerPass.php +++ b/src/General/Application/Compiler/StopwatchCompilerPass.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Compiler; +namespace App\General\Application\Compiler; -use App\Decorator\StopwatchDecorator; +use App\General\Application\Decorator\StopwatchDecorator; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -15,7 +15,7 @@ /** * Class StopwatchCompilerPass * - * @package App\Compiler + * @package App\General */ class StopwatchCompilerPass implements CompilerPassInterface { diff --git a/src/DTO/Interfaces/RestDtoInterface.php b/src/General/Application/DTO/Interfaces/RestDtoInterface.php similarity index 87% rename from src/DTO/Interfaces/RestDtoInterface.php rename to src/General/Application/DTO/Interfaces/RestDtoInterface.php index a0a61b0f..574e0e3d 100644 --- a/src/DTO/Interfaces/RestDtoInterface.php +++ b/src/General/Application/DTO/Interfaces/RestDtoInterface.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace App\DTO\Interfaces; +namespace App\General\Application\DTO\Interfaces; -use App\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; use Throwable; /** * Interface RestDtoInterface * - * @package App\DTO\Interfaces + * @package App\General */ interface RestDtoInterface { diff --git a/src/DTO/RestDto.php b/src/General/Application/DTO/RestDto.php similarity index 96% rename from src/DTO/RestDto.php rename to src/General/Application/DTO/RestDto.php index c3d293ca..3de8b38a 100644 --- a/src/DTO/RestDto.php +++ b/src/General/Application/DTO/RestDto.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\DTO; +namespace App\General\Application\DTO; -use App\DTO\Interfaces\RestDtoInterface; -use App\Entity\Interfaces\EntityInterface; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; use BadMethodCallException; use LogicException; @@ -20,7 +20,7 @@ /** * Class RestDto * - * @package App\DTO + * @package App\General */ abstract class RestDto implements RestDtoInterface { diff --git a/src/Decorator/StopwatchDecorator.php b/src/General/Application/Decorator/StopwatchDecorator.php similarity index 87% rename from src/Decorator/StopwatchDecorator.php rename to src/General/Application/Decorator/StopwatchDecorator.php index f768a74b..fb977f50 100644 --- a/src/Decorator/StopwatchDecorator.php +++ b/src/General/Application/Decorator/StopwatchDecorator.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Decorator; +namespace App\General\Application\Decorator; -use App\DTO\Interfaces\RestDtoInterface; -use App\Entity\Interfaces\EntityInterface; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; use ProxyManager\Factory\AccessInterceptorValueHolderFactory; use ReflectionClass; use ReflectionMethod; @@ -14,12 +14,13 @@ use function array_filter; use function is_object; +use function str_contains; use function str_starts_with; /** * Class StopwatchDecorator * - * @package App\Decorator + * @package App\General */ class StopwatchDecorator { @@ -39,6 +40,8 @@ public function decorate(object $service): object $class->getFileName() === false || $class->isFinal() || str_starts_with($class->getName(), 'ProxyManagerGeneratedProxy') + || str_contains($class->getName(), 'RequestStack') + || str_contains($class->getName(), 'Mock_') ) { return $service; } @@ -72,9 +75,9 @@ private function getPrefixAndSuffixInterceptors(ReflectionClass $class, string $ $this->stopwatch->start($eventName, $className); }; $suffixInterceptors[$methodName] = function ( - mixed $p, - mixed $i, - mixed $m, + mixed $vp, + mixed $vi, + mixed $vm, mixed $params, mixed &$returnValue ) use ($eventName): void { diff --git a/src/Exception/Interfaces/ClientErrorInterface.php b/src/General/Application/Exception/Interfaces/ClientErrorInterface.php similarity index 90% rename from src/Exception/Interfaces/ClientErrorInterface.php rename to src/General/Application/Exception/Interfaces/ClientErrorInterface.php index 07f2448e..ef1f0f8d 100644 --- a/src/Exception/Interfaces/ClientErrorInterface.php +++ b/src/General/Application/Exception/Interfaces/ClientErrorInterface.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Exception\Interfaces; +namespace App\General\Application\Exception\Interfaces; /** * Class ClientErrorInterface @@ -16,7 +16,7 @@ * 500 on those - so it's _your_ responsibility to get "proper" status code in your exception * class. * - * @package App\Exception\interfaces + * @package App\General */ interface ClientErrorInterface { diff --git a/src/Exception/Models/ValidatorError.php b/src/General/Application/Exception/Models/ValidatorError.php similarity index 89% rename from src/Exception/Models/ValidatorError.php rename to src/General/Application/Exception/Models/ValidatorError.php index 00b9958a..fc20a6f5 100644 --- a/src/Exception/Models/ValidatorError.php +++ b/src/General/Application/Exception/Models/ValidatorError.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Exception\Models; +namespace App\General\Application\Exception\Models; use Stringable; use Symfony\Component\Validator\ConstraintViolationInterface; @@ -12,7 +12,7 @@ /** * Class ValidatorError * - * @package App\Exception\Models + * @package App\General */ class ValidatorError { diff --git a/src/Exception/ValidatorException.php b/src/General/Application/Exception/ValidatorException.php similarity index 82% rename from src/Exception/ValidatorException.php rename to src/General/Application/Exception/ValidatorException.php index e1beffb6..407e4f0b 100644 --- a/src/Exception/ValidatorException.php +++ b/src/General/Application/Exception/ValidatorException.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Exception; +namespace App\General\Application\Exception; -use App\Exception\Interfaces\ClientErrorInterface; -use App\Exception\Models\ValidatorError; -use App\Utils\JSON; +use App\General\Application\Exception\Interfaces\ClientErrorInterface; +use App\General\Application\Exception\Models\ValidatorError; +use App\General\Domain\Utils\JSON; use JsonException; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Validator\ConstraintViolationInterface; @@ -19,7 +19,7 @@ /** * Class ValidatorException * - * @package App\Exception + * @package App\General */ class ValidatorException extends BaseValidatorException implements ClientErrorInterface { diff --git a/src/General/Application/Resource/ResourceCollection.php b/src/General/Application/Resource/ResourceCollection.php new file mode 100644 index 00000000..0944fc82 --- /dev/null +++ b/src/General/Application/Resource/ResourceCollection.php @@ -0,0 +1,154 @@ + getAll() + */ +class ResourceCollection implements Countable +{ + use CollectionTrait; + + /** + * Constructor + * + * @param IteratorAggregate $items + */ + public function __construct( + private IteratorAggregate $items, + private LoggerInterface $logger, + ) { + } + + /** + * Getter method for REST resource by entity class name. + * One Entity can have one or more resources services. If entity relates to one resource service you can find + * by classname. Otherwise you can pass additional param $interface (f.e. RestFindOneResourceInterface). + */ + public function getEntityResource( + string $className, + ?string $interface = null + ): RestResourceInterface|RestSmallResourceInterface { + return $this->getFilteredItemByEntity($className, $interface) ?? throw new InvalidArgumentException( + sprintf('Resource class does not exist for entity \'%s\'', $className), + ); + } + + /** + * Method to check if specified entity class REST resource exist or not in current collection. + */ + public function hasEntityResource(?string $className = null, ?string $interface = null): bool + { + return $this->getFilteredItemByEntity($className ?? '', $interface) !== null; + } + + /** + * {@inheritdoc} + */ + public function filter(string $className, ?string $interface = null): Closure + { + return static fn ( + RestResourceInterface|RestSmallResourceInterface $restResource + ): bool => $restResource instanceof $className + && ($interface === null || ($interface && $restResource instanceof $interface)); + } + + /** + * {@inheritdoc} + */ + public function getErrorMessage(string $className): string + { + return sprintf('Resource \'%s\' does not exist', $className); + } + + /** + * {@inheritdoc} + */ + public function get(string $className, ?string $interface = null): RestResourceInterface|RestSmallResourceInterface + { + $result = null; + + if ($interface) { + $result = $this->getFilteredItem($className, $interface); + } + + if (!$interface || !$result) { + $result = $this->getFilteredItem($className); + } + + return $result ?? throw new InvalidArgumentException($this->getErrorMessage($className)); + } + + /** + * {@inheritdoc} + */ + public function has(?string $className = null, ?string $interface = null): bool + { + return $this->getFilteredItem($className ?? '', $interface) !== null; + } + + private function getFilteredItem(string $className, ?string $interface = null): mixed + { + try { + $iterator = $this->items->getIterator(); + } catch (Throwable $throwable) { + $this->logger->error($throwable->getMessage()); + + return null; + } + + $filteredIterator = new CallbackFilterIterator( + new IteratorIterator($iterator), + $this->filter($className, $interface) + ); + $filteredIterator->rewind(); + + return $filteredIterator->current(); + } + + /** + * Getter method to get filtered item by given entity class. + */ + private function getFilteredItemByEntity( + string $entityName, + ?string $interface = null + ): RestResourceInterface|RestSmallResourceInterface|null { + try { + $iterator = $this->items->getIterator(); + } catch (Throwable $throwable) { + $this->logger->error($throwable->getMessage()); + + return null; + } + + $callback = static fn ( + RestResourceInterface|RestSmallResourceInterface $resource + ): bool => $resource->getEntityName() === $entityName + && (($interface && $resource instanceof $interface) || $resource instanceof RestResourceInterface); + + $filteredIterator = new CallbackFilterIterator(new IteratorIterator($iterator), $callback); + $filteredIterator->rewind(); + + return $filteredIterator->current(); + } +} diff --git a/src/General/Application/Rest/Interfaces/BaseRestResourceInterface.php b/src/General/Application/Rest/Interfaces/BaseRestResourceInterface.php new file mode 100644 index 00000000..b6a3dcc9 --- /dev/null +++ b/src/General/Application/Rest/Interfaces/BaseRestResourceInterface.php @@ -0,0 +1,97 @@ + + */ + public function getSerializerContext(): array; + + /** + * Getter method for entity repository. + * + * @throws Throwable + */ + public function getRepository(): BaseRepositoryInterface; + + /** + * Setter method for repository. + */ + public function setRepository(BaseRepositoryInterface $repository): self; + + /** + * Getter for used validator. + */ + public function getValidator(): ValidatorInterface; + + /** + * Setter for used validator. + */ + public function setValidator(ValidatorInterface $validator): self; + + /** + * Getter method for used DTO class for this REST service. + * + * @throws UnexpectedValueException + */ + public function getDtoClass(): string; + + /** + * Setter for used DTO class. + */ + public function setDtoClass(string $dtoClass): self; + + /** + * Getter method for current entity name. + * + * @throws Throwable + */ + public function getEntityName(): string; + + /** + * Gets a reference to the entity identified by the given type and identifier without actually loading it, + * if the entity is not yet loaded. + * + * @throws Throwable + */ + public function getReference(string $id, ?string $entityManagerName = null): ?object; + + /** + * Getter method for all associations that current entity contains. + * + * @return array + * + * @throws Throwable + */ + public function getAssociations(?string $entityManagerName = null): array; + + /** + * Getter method DTO class with loaded entity data. + * + * @throws Throwable + */ + public function getDtoForEntity( + string $id, + string $dtoClass, + RestDtoInterface $dto, + ?bool $patch = null, + ?string $entityManagerName = null + ): RestDtoInterface; +} diff --git a/src/General/Application/Rest/Interfaces/RestCountResourceInterface.php b/src/General/Application/Rest/Interfaces/RestCountResourceInterface.php new file mode 100644 index 00000000..2ad082ed --- /dev/null +++ b/src/General/Application/Rest/Interfaces/RestCountResourceInterface.php @@ -0,0 +1,25 @@ +>|null $criteria + * @param array|null $search + * + * @throws Throwable + */ + public function count(?array $criteria = null, ?array $search = null, ?string $entityManagerName = null): int; +} diff --git a/src/General/Application/Rest/Interfaces/RestCreateResourceInterface.php b/src/General/Application/Rest/Interfaces/RestCreateResourceInterface.php new file mode 100644 index 00000000..f4a60fd2 --- /dev/null +++ b/src/General/Application/Rest/Interfaces/RestCreateResourceInterface.php @@ -0,0 +1,30 @@ +> $criteria + * @param array|null $orderBy + * + * @psalm-return ( + * $throwExceptionIfNotFound is true + * ? EntityInterface + * : EntityInterface|null + * ) + * + * @throws Throwable + */ + public function findOneBy( + array $criteria, + ?array $orderBy = null, + ?bool $throwExceptionIfNotFound = null, + ?string $entityManagerName = null + ): ?EntityInterface; +} diff --git a/src/General/Application/Rest/Interfaces/RestIdsResourceInterface.php b/src/General/Application/Rest/Interfaces/RestIdsResourceInterface.php new file mode 100644 index 00000000..2b0eaa35 --- /dev/null +++ b/src/General/Application/Rest/Interfaces/RestIdsResourceInterface.php @@ -0,0 +1,28 @@ +>|null $criteria + * @param array|null $search + * + * @return array + * + * @throws Throwable + */ + public function getIds(?array $criteria = null, ?array $search = null, ?string $entityManagerName = null): array; +} diff --git a/src/General/Application/Rest/Interfaces/RestListResourceInterface.php b/src/General/Application/Rest/Interfaces/RestListResourceInterface.php new file mode 100644 index 00000000..9edb0e28 --- /dev/null +++ b/src/General/Application/Rest/Interfaces/RestListResourceInterface.php @@ -0,0 +1,37 @@ +>|null $criteria + * @param array|null $orderBy + * @param array|null $search + * + * @throws Throwable + * + * @return array + */ + public function find( + ?array $criteria = null, + ?array $orderBy = null, + ?int $limit = null, + ?int $offset = null, + ?array $search = null, + ?string $entityManagerName = null + ): array; +} diff --git a/src/General/Application/Rest/Interfaces/RestPatchResourceInterface.php b/src/General/Application/Rest/Interfaces/RestPatchResourceInterface.php new file mode 100644 index 00000000..cb9038aa --- /dev/null +++ b/src/General/Application/Rest/Interfaces/RestPatchResourceInterface.php @@ -0,0 +1,30 @@ +beforeCount($criteria, $search); + $count = $this->getRepository()->countAdvanced($criteria, $search, $entityManagerName); + // After callback method call + $this->afterCount($criteria, $search, $count); + + return $count; + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourceCreateMethod.php b/src/General/Application/Rest/Traits/Methods/ResourceCreateMethod.php new file mode 100644 index 00000000..a1f016f0 --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourceCreateMethod.php @@ -0,0 +1,65 @@ +createEntity(); + // Before callback method call + $this->beforeCreate($dto, $entity); + // Validate DTO + $this->validateDto($dto, $skipValidation); + // Create or update entity + $this->persistEntity($entity, $dto, $flush, $skipValidation, $entityManagerName); + // After callback method call + $this->afterCreate($dto, $entity); + + return $entity; + } + + /** + * @throws Throwable + */ + private function createEntity(): EntityInterface + { + /** @var class-string $entityClass */ + $entityClass = $this->getRepository()->getEntityName(); + + $entity = new $entityClass(); + + $exception = new UnexpectedValueException( + sprintf('Given `%s` class does not implement `EntityInterface`', $entityClass), + ); + + return assert($entity instanceof EntityInterface) ? $entity : throw $exception; + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourceDeleteMethod.php b/src/General/Application/Rest/Traits/Methods/ResourceDeleteMethod.php new file mode 100644 index 00000000..cf86393e --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourceDeleteMethod.php @@ -0,0 +1,36 @@ +getEntity($id, $entityManagerName); + // Before callback method call + $this->beforeDelete($id, $entity); + // And remove entity from repo + $this->getRepository()->remove($entity, $flush, $entityManagerName); + // After callback method call + $this->afterDelete($id, $entity); + + return $entity; + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourceFindMethod.php b/src/General/Application/Rest/Traits/Methods/ResourceFindMethod.php new file mode 100644 index 00000000..b5e8e1c0 --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourceFindMethod.php @@ -0,0 +1,51 @@ + + */ + public function find( + ?array $criteria = null, + ?array $orderBy = null, + ?int $limit = null, + ?int $offset = null, + ?array $search = null, + ?string $entityManagerName = null + ): array { + $criteria ??= []; + $orderBy ??= []; + $search ??= []; + // Before callback method call + $this->beforeFind($criteria, $orderBy, $limit, $offset, $search); + // Fetch data + $entities = $this->getRepository()->findByAdvanced( + $criteria, + $orderBy, + $limit, + $offset, + $search, + $entityManagerName + ); + // After callback method call + $this->afterFind($criteria, $orderBy, $limit, $offset, $search, $entities); + + return $entities; + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourceFindOneByMethod.php b/src/General/Application/Rest/Traits/Methods/ResourceFindOneByMethod.php new file mode 100644 index 00000000..d297af0c --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourceFindOneByMethod.php @@ -0,0 +1,40 @@ +beforeFindOneBy($criteria, $orderBy); + /** @var EntityInterface|null $entity */ + $entity = $this->getRepository()->findOneBy($criteria, $orderBy, $entityManagerName); + $this->checkThatEntityExists($throwExceptionIfNotFound, $entity); + // After callback method call + $this->afterFindOneBy($criteria, $orderBy, $entity); + + return $entity; + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourceFindOneMethod.php b/src/General/Application/Rest/Traits/Methods/ResourceFindOneMethod.php new file mode 100644 index 00000000..296adee7 --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourceFindOneMethod.php @@ -0,0 +1,38 @@ +beforeFindOne($id); + /** @var EntityInterface|null $entity */ + $entity = $this->getRepository()->findAdvanced(id: $id, entityManagerName: $entityManagerName); + $this->checkThatEntityExists($throwExceptionIfNotFound, $entity); + // After callback method call + $this->afterFindOne($id, $entity); + + return $entity; + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourceIdsMethod.php b/src/General/Application/Rest/Traits/Methods/ResourceIdsMethod.php new file mode 100644 index 00000000..2b1dd727 --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourceIdsMethod.php @@ -0,0 +1,34 @@ +beforeIds($criteria, $search); + // Fetch data + $ids = $this->getRepository()->findIds($criteria, $search, $entityManagerName); + // After callback method call + $this->afterIds($ids, $criteria, $search); + + return $ids; + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourcePatchMethod.php b/src/General/Application/Rest/Traits/Methods/ResourcePatchMethod.php new file mode 100644 index 00000000..568fe2ae --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourcePatchMethod.php @@ -0,0 +1,50 @@ +getEntity($id, $entityManagerName); + /** + * Determine used dto class and create new instance of that and load entity to that. And after that patch + * that dto with given partial OR whole dto class. + */ + $restDto = $this->getDtoForEntity($id, $dto::class, $dto, true, $entityManagerName); + // Before callback method call + $this->beforePatch($id, $restDto, $entity); + // Validate DTO + $this->validateDto($restDto, $skipValidation); + // Create or update entity + $this->persistEntity($entity, $restDto, $flush, $skipValidation, $entityManagerName); + // After callback method call + $this->afterPatch($id, $restDto, $entity); + + return $entity; + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourceSaveMethod.php b/src/General/Application/Rest/Traits/Methods/ResourceSaveMethod.php new file mode 100644 index 00000000..0cbea488 --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourceSaveMethod.php @@ -0,0 +1,61 @@ +beforeSave($entity); + // Validate current entity + $this->validateEntity($entity, $skipValidation); + // Persist on database + $this->getRepository()->save($entity, $flush, $entityManagerName); + // After callback method call + $this->afterSave($entity); + + return $entity; + } + + /** + * Helper method to set data to specified entity and store it to database. + * + * @throws Throwable + */ + protected function persistEntity( + EntityInterface $entity, + RestDtoInterface $dto, + bool $flush, + bool $skipValidation, + ?string $entityManagerName + ): void { + // Update entity according to DTO current state + $dto->update($entity); + // And save current entity + $this->save($entity, $flush, $skipValidation, $entityManagerName); + } +} diff --git a/src/General/Application/Rest/Traits/Methods/ResourceUpdateMethod.php b/src/General/Application/Rest/Traits/Methods/ResourceUpdateMethod.php new file mode 100644 index 00000000..16b6e6be --- /dev/null +++ b/src/General/Application/Rest/Traits/Methods/ResourceUpdateMethod.php @@ -0,0 +1,55 @@ +getEntity($id, $entityManagerName); + /** + * Determine used dto class and create new instance of that and load entity to that. And after that patch + * that dto with given partial OR whole dto class. + */ + $restDto = $this->getDtoForEntity( + id: $id, + dtoClass: $dto::class, + dto: $dto, + entityManagerName: $entityManagerName + ); + // Before callback method call + $this->beforeUpdate($id, $restDto, $entity); + // Validate DTO + $this->validateDto($restDto, $skipValidation); + // Create or update entity + $this->persistEntity($entity, $restDto, $flush, $skipValidation, $entityManagerName); + // After callback method call + $this->afterUpdate($id, $restDto, $entity); + + return $entity; + } +} diff --git a/src/Rest/RestResource.php b/src/General/Application/Rest/Traits/RestResourceBaseMethods.php similarity index 51% rename from src/Rest/RestResource.php rename to src/General/Application/Rest/Traits/RestResourceBaseMethods.php index 14c327eb..12bd18d3 100644 --- a/src/Rest/RestResource.php +++ b/src/General/Application/Rest/Traits/RestResourceBaseMethods.php @@ -2,27 +2,29 @@ declare(strict_types=1); -namespace App\Rest; - -use App\DTO\Interfaces\RestDtoInterface; -use App\Repository\Interfaces\BaseRepositoryInterface; -use App\Rest\Interfaces\RestResourceInterface; +namespace App\General\Application\Rest\Traits; + +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Application\Exception\ValidatorException; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\General\Domain\Repository\Interfaces\BaseRepositoryInterface; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; +use Symfony\Component\Validator\ConstraintViolationListInterface; use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Contracts\Service\Attribute\Required; +use Throwable; use UnexpectedValueException; use function array_keys; use function sprintf; /** - * Class RestResource + * Trait RestResourceBaseMethods * - * @package App\Rest + * @package App\General */ -abstract class RestResource implements RestResourceInterface +trait RestResourceBaseMethods { - use Traits\RestResourceBaseMethods; - private ValidatorInterface $validator; private string $dtoClass = ''; @@ -97,7 +99,7 @@ public function getDtoClass(): string /** * {@inheritdoc} */ - public function setDtoClass(string $dtoClass): RestResourceInterface + public function setDtoClass(string $dtoClass): self { $this->dtoClass = $dtoClass; @@ -115,17 +117,17 @@ public function getEntityName(): string /** * {@inheritdoc} */ - public function getReference(string $id): ?object + public function getReference(string $id, ?string $entityManagerName = null): ?object { - return $this->getRepository()->getReference($id); + return $this->getRepository()->getReference($id, $entityManagerName); } /** * {@inheritdoc} */ - public function getAssociations(): array + public function getAssociations(?string $entityManagerName = null): array { - return array_keys($this->getRepository()->getAssociations()); + return array_keys($this->getRepository()->getAssociations($entityManagerName)); } /** @@ -135,11 +137,12 @@ public function getDtoForEntity( string $id, string $dtoClass, RestDtoInterface $dto, - ?bool $patch = null + ?bool $patch = null, + ?string $entityManagerName = null ): RestDtoInterface { $patch ??= false; // Fetch entity - $entity = $this->getEntity($id); + $entity = $this->getEntity($id, $entityManagerName); /** * Create new instance of DTO and load entity to that. @@ -158,4 +161,61 @@ public function getDtoForEntity( return $restDto; } + + /** + * @throws NotFoundHttpException + * @throws Throwable + */ + protected function getEntity(string $id, ?string $entityManagerName): EntityInterface + { + $entity = $this->getRepository()->find(id: $id, entityManagerName: $entityManagerName); + + if ($entity === null) { + throw new NotFoundHttpException('Not found'); + } + + return $entity; + } + + /** + * Helper method to validate given DTO class. + * + * @throws Throwable + */ + protected function validateDto(RestDtoInterface $dto, bool $skipValidation): void + { + /** @var ConstraintViolationListInterface|null $errors */ + $errors = $skipValidation ? null : $this->getValidator()->validate($dto); + + // Oh noes, we have some errors + if ($errors !== null && $errors->count() > 0) { + throw new ValidatorException($dto::class, $errors); + } + } + + /** + * Method to validate specified entity. + * + * @throws Throwable + */ + protected function validateEntity(EntityInterface $entity, bool $skipValidation): void + { + $errors = $skipValidation ? null : $this->getValidator()->validate($entity); + + // Oh noes, we have some errors + if ($errors !== null && $errors->count() > 0) { + throw new ValidatorException($entity::class, $errors); + } + } + + /** + * @throws NotFoundHttpException + */ + protected function checkThatEntityExists(bool $throwExceptionIfNotFound, ?EntityInterface $entity): void + { + // Entity not found + if ($throwExceptionIfNotFound && $entity === null) { + throw new NotFoundHttpException('Not found'); + } + } } diff --git a/src/Rest/Traits/RestResourceCount.php b/src/General/Application/Rest/Traits/RestResourceCount.php similarity index 89% rename from src/Rest/Traits/RestResourceCount.php rename to src/General/Application/Rest/Traits/RestResourceCount.php index 39360596..c8ef2e7d 100644 --- a/src/Rest/Traits/RestResourceCount.php +++ b/src/General/Application/Rest/Traits/RestResourceCount.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; /** * Trait RestResourceCount * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceCount { diff --git a/src/Rest/Traits/RestResourceCreate.php b/src/General/Application/Rest/Traits/RestResourceCreate.php similarity index 82% rename from src/Rest/Traits/RestResourceCreate.php rename to src/General/Application/Rest/Traits/RestResourceCreate.php index cbe7855e..873b01ce 100644 --- a/src/Rest/Traits/RestResourceCreate.php +++ b/src/General/Application/Rest/Traits/RestResourceCreate.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; -use App\DTO\Interfaces\RestDtoInterface; -use App\Entity\Interfaces\EntityInterface; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; /** * Trait RestResourceCreate * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceCreate { diff --git a/src/Rest/Traits/RestResourceDelete.php b/src/General/Application/Rest/Traits/RestResourceDelete.php similarity index 91% rename from src/Rest/Traits/RestResourceDelete.php rename to src/General/Application/Rest/Traits/RestResourceDelete.php index 8fcdb72b..fa0381b0 100644 --- a/src/Rest/Traits/RestResourceDelete.php +++ b/src/General/Application/Rest/Traits/RestResourceDelete.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; -use App\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; /** * Trait RestResourceDelete * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceDelete { diff --git a/src/Rest/Traits/RestResourceFind.php b/src/General/Application/Rest/Traits/RestResourceFind.php similarity index 88% rename from src/Rest/Traits/RestResourceFind.php rename to src/General/Application/Rest/Traits/RestResourceFind.php index 67792dd9..01bef3dd 100644 --- a/src/Rest/Traits/RestResourceFind.php +++ b/src/General/Application/Rest/Traits/RestResourceFind.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; -use App\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; /** * Trait RestResourceFind * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceFind { diff --git a/src/Rest/Traits/RestResourceFindOne.php b/src/General/Application/Rest/Traits/RestResourceFindOne.php similarity index 87% rename from src/Rest/Traits/RestResourceFindOne.php rename to src/General/Application/Rest/Traits/RestResourceFindOne.php index b3e9266e..f5819cac 100644 --- a/src/Rest/Traits/RestResourceFindOne.php +++ b/src/General/Application/Rest/Traits/RestResourceFindOne.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; -use App\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; /** * Trait RestResourceFindOne * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceFindOne { diff --git a/src/Rest/Traits/RestResourceFindOneBy.php b/src/General/Application/Rest/Traits/RestResourceFindOneBy.php similarity index 89% rename from src/Rest/Traits/RestResourceFindOneBy.php rename to src/General/Application/Rest/Traits/RestResourceFindOneBy.php index 632cab04..416ebd4b 100644 --- a/src/Rest/Traits/RestResourceFindOneBy.php +++ b/src/General/Application/Rest/Traits/RestResourceFindOneBy.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; -use App\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; /** * Trait RestResourceFindOneBy * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceFindOneBy { diff --git a/src/Rest/Traits/RestResourceIds.php b/src/General/Application/Rest/Traits/RestResourceIds.php similarity index 89% rename from src/Rest/Traits/RestResourceIds.php rename to src/General/Application/Rest/Traits/RestResourceIds.php index 46173cf2..43a3017e 100644 --- a/src/Rest/Traits/RestResourceIds.php +++ b/src/General/Application/Rest/Traits/RestResourceIds.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; /** * Trait RestResourceIds * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceIds { diff --git a/src/Rest/Traits/RestResourcePatch.php b/src/General/Application/Rest/Traits/RestResourcePatch.php similarity index 83% rename from src/Rest/Traits/RestResourcePatch.php rename to src/General/Application/Rest/Traits/RestResourcePatch.php index c228b6b0..3637df37 100644 --- a/src/Rest/Traits/RestResourcePatch.php +++ b/src/General/Application/Rest/Traits/RestResourcePatch.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; -use App\DTO\Interfaces\RestDtoInterface; -use App\Entity\Interfaces\EntityInterface; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; /** * Trait RestResourcePatch * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourcePatch { diff --git a/src/Rest/Traits/RestResourceSave.php b/src/General/Application/Rest/Traits/RestResourceSave.php similarity index 90% rename from src/Rest/Traits/RestResourceSave.php rename to src/General/Application/Rest/Traits/RestResourceSave.php index 85683af1..11e64927 100644 --- a/src/Rest/Traits/RestResourceSave.php +++ b/src/General/Application/Rest/Traits/RestResourceSave.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; -use App\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; /** * Trait RestResourceSave * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceSave { diff --git a/src/Rest/Traits/RestResourceUpdate.php b/src/General/Application/Rest/Traits/RestResourceUpdate.php similarity index 83% rename from src/Rest/Traits/RestResourceUpdate.php rename to src/General/Application/Rest/Traits/RestResourceUpdate.php index d012d987..c246cb35 100644 --- a/src/Rest/Traits/RestResourceUpdate.php +++ b/src/General/Application/Rest/Traits/RestResourceUpdate.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Application\Rest\Traits; -use App\DTO\Interfaces\RestDtoInterface; -use App\Entity\Interfaces\EntityInterface; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; /** * Trait RestResourceUpdate * * @SuppressWarnings("unused") * - * @package App\Rest\Traits + * @package App\General */ trait RestResourceUpdate { diff --git a/src/Serializer/Normalizer/CollectionNormalizer.php b/src/General/Application/Serializer/Normalizer/CollectionNormalizer.php similarity index 92% rename from src/Serializer/Normalizer/CollectionNormalizer.php rename to src/General/Application/Serializer/Normalizer/CollectionNormalizer.php index 9a79d96f..5092bc7d 100644 --- a/src/Serializer/Normalizer/CollectionNormalizer.php +++ b/src/General/Application/Serializer/Normalizer/CollectionNormalizer.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Serializer\Normalizer; +namespace App\General\Application\Serializer\Normalizer; use Doctrine\Common\Collections\Collection; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; @@ -13,7 +13,7 @@ /** * Class CollectionNormalizer * - * @package App\Serializer + * @package App\General */ class CollectionNormalizer implements NormalizerInterface { diff --git a/src/Utils/Tests/PhpUnitUtil.php b/src/General/Application/Utils/Tests/PhpUnitUtil.php similarity index 98% rename from src/Utils/Tests/PhpUnitUtil.php rename to src/General/Application/Utils/Tests/PhpUnitUtil.php index 7134efee..ac0c3b8c 100644 --- a/src/Utils/Tests/PhpUnitUtil.php +++ b/src/General/Application/Utils/Tests/PhpUnitUtil.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Utils\Tests; +namespace App\General\Application\Utils\Tests; -use App\Entity\Role; +use App\Role\Domain\Entity\Role; use DateTime; use DateTimeImmutable; use Doctrine\DBAL\Types\Type; @@ -33,7 +33,7 @@ /** * Class PHPUnitUtil * - * @package App\Utils\Tests + * @package App\General */ class PhpUnitUtil { diff --git a/src/Utils/Tests/StringableArrayObject.php b/src/General/Application/Utils/Tests/StringableArrayObject.php similarity index 82% rename from src/Utils/Tests/StringableArrayObject.php rename to src/General/Application/Utils/Tests/StringableArrayObject.php index 151f858f..f800d5f0 100644 --- a/src/Utils/Tests/StringableArrayObject.php +++ b/src/General/Application/Utils/Tests/StringableArrayObject.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Utils\Tests; +namespace App\General\Application\Utils\Tests; -use App\Utils\JSON; +use App\General\Domain\Utils\JSON; use ArrayObject; use JsonException; use Stringable; @@ -12,7 +12,7 @@ /** * Class StringableArrayObject * - * @package App\Utils\Tests + * @package App\General */ class StringableArrayObject extends ArrayObject implements Stringable { diff --git a/src/Utils/Traits/LoggerAwareTrait.php b/src/General/Application/Utils/Traits/LoggerAwareTrait.php similarity index 88% rename from src/Utils/Traits/LoggerAwareTrait.php rename to src/General/Application/Utils/Traits/LoggerAwareTrait.php index af1099cd..27dbed6c 100644 --- a/src/Utils/Traits/LoggerAwareTrait.php +++ b/src/General/Application/Utils/Traits/LoggerAwareTrait.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Utils\Traits; +namespace App\General\Application\Utils\Traits; use Psr\Log\LoggerInterface; use Symfony\Contracts\Service\Attribute\Required; @@ -13,7 +13,7 @@ * NOTE: Do not use this in your services, just inject `LoggerInterface` to service where you need it. * This trait is just for quick debug purposes and nothing else. * - * @package App\Utils\Traits + * @package App\General */ trait LoggerAwareTrait { diff --git a/src/Utils/Traits/MailSenderTrait.php b/src/General/Application/Utils/Traits/MailSenderTrait.php similarity index 85% rename from src/Utils/Traits/MailSenderTrait.php rename to src/General/Application/Utils/Traits/MailSenderTrait.php index 54c59b63..858c91e5 100644 --- a/src/Utils/Traits/MailSenderTrait.php +++ b/src/General/Application/Utils/Traits/MailSenderTrait.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Utils\Traits; +namespace App\General\Application\Utils\Traits; -use App\Service\MailerService; +use App\General\Domain\Service\Interfaces\MailerServiceInterface; use Symfony\Contracts\Service\Attribute\Required; use Throwable; use Twig\Environment as Twig; @@ -12,11 +12,11 @@ /** * Trait MailSenderTrait * - * @package App\Utils\Traits + * @package App\General */ trait MailSenderTrait { - private MailerService $mailerService; + private MailerServiceInterface $mailerService; private string $appSenderEmail; private string $appErrorReceiverEmail; private bool $appEmailNotificationAboutError; @@ -24,7 +24,7 @@ trait MailSenderTrait #[Required] public function setMailerService( - MailerService $mailerService, + MailerServiceInterface $mailerService, string $appSenderEmail, string $appErrorReceiverEmail, int $appEmailNotificationAboutError diff --git a/src/Utils/Traits/StopwatchAwareTrait.php b/src/General/Application/Utils/Traits/StopwatchAwareTrait.php similarity index 88% rename from src/Utils/Traits/StopwatchAwareTrait.php rename to src/General/Application/Utils/Traits/StopwatchAwareTrait.php index 65e05c76..2753e584 100644 --- a/src/Utils/Traits/StopwatchAwareTrait.php +++ b/src/General/Application/Utils/Traits/StopwatchAwareTrait.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Utils\Traits; +namespace App\General\Application\Utils\Traits; use Symfony\Component\Stopwatch\Stopwatch; use Symfony\Contracts\Service\Attribute\Required; @@ -13,7 +13,7 @@ * NOTE: Do not use this in your services, just inject `Stopwatch` to service where you need it. * This trait is just for quick debug purposes and nothing else. * - * @package App\Utils\Traits + * @package App\General */ trait StopwatchAwareTrait { diff --git a/src/Validator/Constraints/EntityReferenceExists.php b/src/General/Application/Validator/Constraints/EntityReferenceExists.php similarity index 79% rename from src/Validator/Constraints/EntityReferenceExists.php rename to src/General/Application/Validator/Constraints/EntityReferenceExists.php index 630ce03b..e7ab920c 100644 --- a/src/Validator/Constraints/EntityReferenceExists.php +++ b/src/General/Application/Validator/Constraints/EntityReferenceExists.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\General\Application\Validator\Constraints; use Attribute; use Symfony\Component\Validator\Constraint; @@ -11,14 +11,14 @@ * Class EntityReferenceExists * * Usage example; - * #[App\Validator\Constraints\EntityReferenceExists(SomeEntityClass::class)] + * #[App\General\Application\Validator\Constraints\EntityReferenceExists(SomeEntityClass::class)] * * Just add that to your property as an annotation and you're good to go. * * @Annotation * @Target({"PROPERTY"}) * - * @package App\Validator\Constraints + * @package App\General */ #[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)] class EntityReferenceExists extends Constraint @@ -53,14 +53,4 @@ public function __construct( parent::__construct($options, $groups, $payload); } - - /** - * @noinspection PhpMissingParentCallCommonInspection - * - * {@inheritdoc} - */ - public function getTargets(): string - { - return self::PROPERTY_CONSTRAINT; - } } diff --git a/src/Validator/Constraints/EntityReferenceExistsValidator.php b/src/General/Application/Validator/Constraints/EntityReferenceExistsValidator.php similarity index 96% rename from src/Validator/Constraints/EntityReferenceExistsValidator.php rename to src/General/Application/Validator/Constraints/EntityReferenceExistsValidator.php index 2c75a421..c05d1f3c 100644 --- a/src/Validator/Constraints/EntityReferenceExistsValidator.php +++ b/src/General/Application/Validator/Constraints/EntityReferenceExistsValidator.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\General\Application\Validator\Constraints; -use App\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; use Closure; use Doctrine\ORM\EntityNotFoundException; use Psr\Log\LoggerInterface; @@ -23,7 +23,7 @@ /** * Class EntityReferenceExistsValidator * - * @package App\Validator\Constraints + * @package App\General */ class EntityReferenceExistsValidator extends ConstraintValidator { diff --git a/src/Doctrine/DBAL/Types/EnumLanguageType.php b/src/General/Domain/Doctrine/DBAL/Types/EnumLanguageType.php similarity index 76% rename from src/Doctrine/DBAL/Types/EnumLanguageType.php rename to src/General/Domain/Doctrine/DBAL/Types/EnumLanguageType.php index 0cbff7cf..68ea4af4 100644 --- a/src/Doctrine/DBAL/Types/EnumLanguageType.php +++ b/src/General/Domain/Doctrine/DBAL/Types/EnumLanguageType.php @@ -2,17 +2,18 @@ declare(strict_types=1); -namespace App\Doctrine\DBAL\Types; +namespace App\General\Domain\Doctrine\DBAL\Types; /** * Class EnumLanguageType * - * @package App\Doctrine\DBAL\Types + * @package App\General */ class EnumLanguageType extends EnumType { public const LANGUAGE_EN = 'en'; public const LANGUAGE_RU = 'ru'; + public const LANGUAGE_UA = 'ua'; public const LANGUAGE_FI = 'fi'; protected static string $name = Types::ENUM_LANGUAGE; @@ -23,6 +24,7 @@ class EnumLanguageType extends EnumType protected static array $values = [ self::LANGUAGE_EN, self::LANGUAGE_RU, + self::LANGUAGE_UA, self::LANGUAGE_FI, ]; } diff --git a/src/Doctrine/DBAL/Types/EnumLocaleType.php b/src/General/Domain/Doctrine/DBAL/Types/EnumLocaleType.php similarity index 76% rename from src/Doctrine/DBAL/Types/EnumLocaleType.php rename to src/General/Domain/Doctrine/DBAL/Types/EnumLocaleType.php index c6950c1b..6a3b8617 100644 --- a/src/Doctrine/DBAL/Types/EnumLocaleType.php +++ b/src/General/Domain/Doctrine/DBAL/Types/EnumLocaleType.php @@ -2,17 +2,18 @@ declare(strict_types=1); -namespace App\Doctrine\DBAL\Types; +namespace App\General\Domain\Doctrine\DBAL\Types; /** * Class EnumLocaleType * - * @package App\Doctrine\DBAL\Types + * @package App\General */ class EnumLocaleType extends EnumType { public const LOCALE_EN = 'en'; public const LOCALE_RU = 'ru'; + public const LOCALE_UA = 'ua'; public const LOCALE_FI = 'fi'; protected static string $name = Types::ENUM_LOCALE; @@ -23,6 +24,7 @@ class EnumLocaleType extends EnumType protected static array $values = [ self::LOCALE_EN, self::LOCALE_RU, + self::LOCALE_UA, self::LOCALE_FI, ]; } diff --git a/src/Doctrine/DBAL/Types/EnumLogLoginType.php b/src/General/Domain/Doctrine/DBAL/Types/EnumLogLoginType.php similarity index 84% rename from src/Doctrine/DBAL/Types/EnumLogLoginType.php rename to src/General/Domain/Doctrine/DBAL/Types/EnumLogLoginType.php index 0f2a22ab..de6a3e7f 100644 --- a/src/Doctrine/DBAL/Types/EnumLogLoginType.php +++ b/src/General/Domain/Doctrine/DBAL/Types/EnumLogLoginType.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Doctrine\DBAL\Types; +namespace App\General\Domain\Doctrine\DBAL\Types; /** * Class EnumLogLoginType * - * @package App\Doctrine\DBAL\Types + * @package App\General */ class EnumLogLoginType extends EnumType { diff --git a/src/Doctrine/DBAL/Types/EnumType.php b/src/General/Domain/Doctrine/DBAL/Types/EnumType.php similarity index 96% rename from src/Doctrine/DBAL/Types/EnumType.php rename to src/General/Domain/Doctrine/DBAL/Types/EnumType.php index d920c3c5..9030e41b 100644 --- a/src/Doctrine/DBAL/Types/EnumType.php +++ b/src/General/Domain/Doctrine/DBAL/Types/EnumType.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Doctrine\DBAL\Types; +namespace App\General\Domain\Doctrine\DBAL\Types; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Types\Type; @@ -17,7 +17,7 @@ /** * Class EnumType * - * @package App\Doctrine\DBAL\Types + * @package App\General */ abstract class EnumType extends Type { diff --git a/src/Doctrine/DBAL/Types/Types.php b/src/General/Domain/Doctrine/DBAL/Types/Types.php similarity index 74% rename from src/Doctrine/DBAL/Types/Types.php rename to src/General/Domain/Doctrine/DBAL/Types/Types.php index 493072e1..69c1bb35 100644 --- a/src/Doctrine/DBAL/Types/Types.php +++ b/src/General/Domain/Doctrine/DBAL/Types/Types.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Doctrine\DBAL\Types; +namespace App\General\Domain\Doctrine\DBAL\Types; /** * Class Types * - * @package App\Doctrine\DBAL\Types + * @package App\General */ class Types { diff --git a/src/Doctrine/DBAL/Types/UTCDateTimeType.php b/src/General/Domain/Doctrine/DBAL/Types/UTCDateTimeType.php similarity index 96% rename from src/Doctrine/DBAL/Types/UTCDateTimeType.php rename to src/General/Domain/Doctrine/DBAL/Types/UTCDateTimeType.php index 6262db72..0f4b2416 100644 --- a/src/Doctrine/DBAL/Types/UTCDateTimeType.php +++ b/src/General/Domain/Doctrine/DBAL/Types/UTCDateTimeType.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Doctrine\DBAL\Types; +namespace App\General\Domain\Doctrine\DBAL\Types; use DateTime; use DateTimeZone; @@ -15,7 +15,7 @@ * * @see http://doctrine-orm.readthedocs.org/en/latest/cookbook/working-with-datetime.html * - * @package App\Doctrine\DBAL\Types + * @package App\General */ class UTCDateTimeType extends DateTimeType { diff --git a/src/Entity/Interfaces/EntityInterface.php b/src/General/Domain/Entity/Interfaces/EntityInterface.php similarity index 75% rename from src/Entity/Interfaces/EntityInterface.php rename to src/General/Domain/Entity/Interfaces/EntityInterface.php index 3f489af2..fa75b44b 100644 --- a/src/Entity/Interfaces/EntityInterface.php +++ b/src/General/Domain/Entity/Interfaces/EntityInterface.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\Entity\Interfaces; +namespace App\General\Domain\Entity\Interfaces; use DateTimeImmutable; /** * Interface EntityInterface * - * @package App\Entity\Interfaces + * @package App\General */ interface EntityInterface { diff --git a/src/Entity/Traits/Timestampable.php b/src/General/Domain/Entity/Traits/Timestampable.php similarity index 88% rename from src/Entity/Traits/Timestampable.php rename to src/General/Domain/Entity/Traits/Timestampable.php index 41208620..bb57cc68 100644 --- a/src/Entity/Traits/Timestampable.php +++ b/src/General/Domain/Entity/Traits/Timestampable.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Entity\Traits; +namespace App\General\Domain\Entity\Traits; use DateTimeImmutable; use Doctrine\DBAL\Types\Types; @@ -13,18 +13,18 @@ /** * Trait Timestampable * - * @package App\Entity\Traits + * @package App\General */ trait Timestampable { - /** - * @Gedmo\Timestampable(on="create") - */ #[ORM\Column( name: 'created_at', type: Types::DATETIME_IMMUTABLE, nullable: true, )] + #[Gedmo\Timestampable( + on: 'create', + )] #[Groups([ 'ApiKey.createdAt', 'Role.createdAt', @@ -33,14 +33,14 @@ trait Timestampable ])] protected ?DateTimeImmutable $createdAt = null; - /** - * @Gedmo\Timestampable(on="update") - */ #[ORM\Column( name: 'updated_at', type: Types::DATETIME_IMMUTABLE, nullable: true, )] + #[Gedmo\Timestampable( + on: 'update', + )] #[Groups([ 'ApiKey.updatedAt', 'Role.updatedAt', diff --git a/src/Entity/Traits/Uuid.php b/src/General/Domain/Entity/Traits/Uuid.php similarity index 76% rename from src/Entity/Traits/Uuid.php rename to src/General/Domain/Entity/Traits/Uuid.php index dd4d660c..3dae2355 100644 --- a/src/Entity/Traits/Uuid.php +++ b/src/General/Domain/Entity/Traits/Uuid.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\Entity\Traits; +namespace App\General\Domain\Entity\Traits; -use App\Rest\UuidHelper; +use App\General\Domain\Rest\UuidHelper; use Ramsey\Uuid\UuidInterface; use Throwable; /** * Trait Uuid * - * @package App\Entity\Traits + * @package App\General */ trait Uuid { diff --git a/src/Repository/Interfaces/BaseRepositoryInterface.php b/src/General/Domain/Repository/Interfaces/BaseRepositoryInterface.php similarity index 74% rename from src/Repository/Interfaces/BaseRepositoryInterface.php rename to src/General/Domain/Repository/Interfaces/BaseRepositoryInterface.php index 2228d96c..735ebe16 100644 --- a/src/Repository/Interfaces/BaseRepositoryInterface.php +++ b/src/General/Domain/Repository/Interfaces/BaseRepositoryInterface.php @@ -2,9 +2,11 @@ declare(strict_types=1); -namespace App\Repository\Interfaces; +namespace App\General\Domain\Repository\Interfaces; -use App\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use Doctrine\DBAL\LockMode; +use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Mapping\ClassMetadataInfo; use Doctrine\ORM\NonUniqueResultException; @@ -19,7 +21,7 @@ /** * Interface BaseRepositoryInterface * - * @package App\Repository\Interfaces + * @package App\General */ interface BaseRepositoryInterface { @@ -41,48 +43,65 @@ public function getSearchColumns(): array; * * @throws ORMException */ - public function getReference(string $id): ?object; + public function getReference(string $id, ?string $entityManagerName = null): ?object; /** * Gets all association mappings of the class. * * @psalm-return array> */ - public function getAssociations(): array; + public function getAssociations(?string $entityManagerName = null): array; /** * Returns the ORM metadata descriptor for a class. */ - public function getClassMetaData(): ClassMetadataInfo; + public function getClassMetaData(?string $entityManagerName = null): ClassMetadataInfo; /** * Getter method for EntityManager for current entity. */ - public function getEntityManager(): EntityManager; + public function getEntityManager(?string $entityManagerName = null): EntityManager; /** * Method to create new query builder for current entity. */ - public function createQueryBuilder(?string $alias = null, ?string $indexBy = null): QueryBuilder; + public function createQueryBuilder( + ?string $alias = null, + ?string $indexBy = null, + ?string $entityManagerName = null + ): QueryBuilder; /** * Wrapper for default Doctrine repository find method. * + * @psalm-param LockMode::*|null $lockMode + * * @throws ORMException * @throws OptimisticLockException * @throws TransactionRequiredException */ - public function find(string $id, ?int $lockMode = null, ?int $lockVersion = null): ?EntityInterface; + public function find( + string $id, + ?int $lockMode = null, + ?int $lockVersion = null, + ?string $entityManagerName = null + ): ?EntityInterface; /** * Advanced version of find method, with this you can process query as you like, eg. add joins and callbacks to * modify / optimize current query. * + * @psalm-param string|AbstractQuery::HYDRATE_*|null $hydrationMode + * * @psalm-return array|EntityInterface|null * * @throws NonUniqueResultException */ - public function findAdvanced(string $id, string | int | null $hydrationMode = null): null | array | EntityInterface; + public function findAdvanced( + string $id, + string | int | null $hydrationMode = null, + string | null $entityManagerName = null + ): null | array | EntityInterface; /** * Wrapper for default Doctrine repository findOneBy method. @@ -92,7 +111,7 @@ public function findAdvanced(string $id, string | int | null $hydrationMode = nu * * @psalm-return EntityInterface|object|null */ - public function findOneBy(array $criteria, ?array $orderBy = null): ?object; + public function findOneBy(array $criteria, ?array $orderBy = null, ?string $entityManagerName = null): ?object; /** * Wrapper for default Doctrine repository findBy method. @@ -102,7 +121,13 @@ public function findOneBy(array $criteria, ?array $orderBy = null): ?object; * * @psalm-return list */ - public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array; + public function findBy( + array $criteria, + ?array $orderBy = null, + ?int $limit = null, + ?int $offset = null, + ?string $entityManagerName = null + ): array; /** * Generic replacement for basic 'findBy' method if/when you want to use generic LIKE search. @@ -120,7 +145,8 @@ public function findByAdvanced( ?array $orderBy = null, ?int $limit = null, ?int $offset = null, - ?array $search = null + ?array $search = null, + ?string $entityManagerName = null ): array; /** @@ -128,7 +154,7 @@ public function findByAdvanced( * * @psalm-return list */ - public function findAll(): array; + public function findAll(?string $entityManagerName = null): array; /** * Repository method to fetch current entity id values from database and return those as an array. @@ -140,7 +166,7 @@ public function findAll(): array; * * @throws InvalidArgumentException */ - public function findIds(?array $criteria = null, ?array $search = null): array; + public function findIds(?array $criteria = null, ?array $search = null, ?string $entityManagerName = null): array; /** * Generic count method to determine count of entities for specified criteria and search term(s). @@ -152,13 +178,17 @@ public function findIds(?array $criteria = null, ?array $search = null): array; * @throws NonUniqueResultException * @throws NoResultException */ - public function countAdvanced(?array $criteria = null, ?array $search = null): int; + public function countAdvanced( + ?array $criteria = null, + ?array $search = null, + ?string $entityManagerName = null + ): int; /** * Helper method to 'reset' repository entity table - in other words delete all records - so be carefully with * this... */ - public function reset(): int; + public function reset(?string $entityManagerName = null): int; /** * Helper method to persist specified entity to database. @@ -166,7 +196,7 @@ public function reset(): int; * @throws ORMException * @throws OptimisticLockException */ - public function save(EntityInterface $entity, ?bool $flush = null): self; + public function save(EntityInterface $entity, ?bool $flush = null, ?string $entityManagerName = null): self; /** * Helper method to remove specified entity from database. @@ -174,7 +204,7 @@ public function save(EntityInterface $entity, ?bool $flush = null): self; * @throws ORMException * @throws OptimisticLockException */ - public function remove(EntityInterface $entity, ?bool $flush = null): self; + public function remove(EntityInterface $entity, ?bool $flush = null, ?string $entityManagerName = null): self; /** * With this method you can attach some custom functions for generic REST API find / count queries. diff --git a/src/Rest/UuidHelper.php b/src/General/Domain/Rest/UuidHelper.php similarity index 97% rename from src/Rest/UuidHelper.php rename to src/General/Domain/Rest/UuidHelper.php index 72ffff54..badfd369 100644 --- a/src/Rest/UuidHelper.php +++ b/src/General/Domain/Rest/UuidHelper.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Rest; +namespace App\General\Domain\Rest; use Ramsey\Uuid\Codec\OrderedTimeCodec; use Ramsey\Uuid\Doctrine\UuidBinaryOrderedTimeType; @@ -19,7 +19,7 @@ /** * Class UuidHelper * - * @package App\Rest + * @package App\General */ class UuidHelper { diff --git a/src/Service/Interfaces/ElasticsearchServiceInterface.php b/src/General/Domain/Service/Interfaces/ElasticsearchServiceInterface.php similarity index 96% rename from src/Service/Interfaces/ElasticsearchServiceInterface.php rename to src/General/Domain/Service/Interfaces/ElasticsearchServiceInterface.php index 7f146b0c..825f863c 100644 --- a/src/Service/Interfaces/ElasticsearchServiceInterface.php +++ b/src/General/Domain/Service/Interfaces/ElasticsearchServiceInterface.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Service\Interfaces; +namespace App\General\Domain\Service\Interfaces; /** * Interface ElasticsearchServiceInterface * - * @package App\Service\Interfaces + * @package App\General */ interface ElasticsearchServiceInterface { diff --git a/src/General/Domain/Service/Interfaces/MailerServiceInterface.php b/src/General/Domain/Service/Interfaces/MailerServiceInterface.php new file mode 100644 index 00000000..382f3bb4 --- /dev/null +++ b/src/General/Domain/Service/Interfaces/MailerServiceInterface.php @@ -0,0 +1,22 @@ +getEntityManager()->persist($entity); + $this->getEntityManager($entityManagerName)->persist($entity); if ($flush) { - $this->getEntityManager()->flush(); + $this->getEntityManager($entityManagerName)->flush(); } return $this; @@ -111,14 +111,14 @@ public function save(EntityInterface $entity, ?bool $flush = null): self /** * {@inheritdoc} */ - public function remove(EntityInterface $entity, ?bool $flush = null): self + public function remove(EntityInterface $entity, ?bool $flush = null, ?string $entityManagerName = null): self { $flush ??= true; // Remove from database - $this->getEntityManager()->remove($entity); + $this->getEntityManager($entityManagerName)->remove($entity); if ($flush) { - $this->getEntityManager()->flush(); + $this->getEntityManager($entityManagerName)->flush(); } return $this; diff --git a/src/Repository/Traits/RepositoryMethodsTrait.php b/src/General/Infrastructure/Repository/Traits/RepositoryMethodsTrait.php similarity index 66% rename from src/Repository/Traits/RepositoryMethodsTrait.php rename to src/General/Infrastructure/Repository/Traits/RepositoryMethodsTrait.php index 11efbdb6..7f8e9b4e 100644 --- a/src/Repository/Traits/RepositoryMethodsTrait.php +++ b/src/General/Infrastructure/Repository/Traits/RepositoryMethodsTrait.php @@ -2,11 +2,13 @@ declare(strict_types=1); -namespace App\Repository\Traits; +namespace App\General\Infrastructure\Repository\Traits; -use App\Entity\Interfaces\EntityInterface; -use App\Rest\RepositoryHelper; -use App\Rest\UuidHelper; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\General\Domain\Rest\UuidHelper; +use App\General\Infrastructure\Rest\RepositoryHelper; +use Doctrine\DBAL\LockMode; +use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\NoResultException; use Doctrine\ORM\OptimisticLockException; @@ -22,23 +24,32 @@ /** * Trait RepositoryMethodsTrait * - * @package App\Repository\Traits + * @package App\General */ trait RepositoryMethodsTrait { /** * Wrapper for default Doctrine repository find method. * - * @phpstan-param 0|1|2|4|null $lockMode + * @psalm-param LockMode::*|null $lockMode * * @throws TransactionRequiredException * @throws OptimisticLockException * @throws ORMInvalidArgumentException * @throws ORMException */ - public function find(string $id, ?int $lockMode = null, ?int $lockVersion = null): ?EntityInterface - { - $output = $this->getEntityManager()->find($this->getEntityName(), $id, $lockMode, $lockVersion); + public function find( + string $id, + ?int $lockMode = null, + ?int $lockVersion = null, + ?string $entityManagerName = null + ): ?EntityInterface { + $output = $this->getEntityManager($entityManagerName)->find( + $this->getEntityName(), + $id, + $lockMode, + $lockVersion + ); return $output instanceof EntityInterface ? $output : null; } @@ -46,12 +57,15 @@ public function find(string $id, ?int $lockMode = null, ?int $lockVersion = null /** * {@inheritdoc} * - * @phpstan-param 1|2|3|4|5|6|string|null $hydrationMode + * @psalm-param string|AbstractQuery::HYDRATE_*|null $hydrationMode */ - public function findAdvanced(string $id, string | int | null $hydrationMode = null): null | array | EntityInterface - { + public function findAdvanced( + string $id, + string | int | null $hydrationMode = null, + string | null $entityManagerName = null + ): null | array | EntityInterface { // Get query builder - $queryBuilder = $this->getQueryBuilder(); + $queryBuilder = $this->getQueryBuilder(entityManagerName: $entityManagerName); // Process custom QueryBuilder actions $this->processQueryBuilder($queryBuilder); $queryBuilder @@ -69,9 +83,9 @@ public function findAdvanced(string $id, string | int | null $hydrationMode = nu /** * {@inheritdoc} */ - public function findOneBy(array $criteria, ?array $orderBy = null): ?object + public function findOneBy(array $criteria, ?array $orderBy = null, ?string $entityManagerName = null): ?object { - $repository = $this->getEntityManager()->getRepository($this->getEntityName()); + $repository = $this->getEntityManager($entityManagerName)->getRepository($this->getEntityName()); return $repository->findOneBy($criteria, $orderBy); } @@ -81,10 +95,15 @@ public function findOneBy(array $criteria, ?array $orderBy = null): ?object * * @psalm-return list */ - public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array - { + public function findBy( + array $criteria, + ?array $orderBy = null, + ?int $limit = null, + ?int $offset = null, + ?string $entityManagerName = null + ): array { return $this - ->getEntityManager() + ->getEntityManager($entityManagerName) ->getRepository($this->getEntityName()) ->findBy($criteria, $orderBy, $limit, $offset); } @@ -99,10 +118,11 @@ public function findByAdvanced( ?array $orderBy = null, ?int $limit = null, ?int $offset = null, - ?array $search = null + ?array $search = null, + ?string $entityManagerName = null ): array { // Get query builder - $queryBuilder = $this->getQueryBuilder($criteria, $search, $orderBy, $limit, $offset); + $queryBuilder = $this->getQueryBuilder($criteria, $search, $orderBy, $limit, $offset, $entityManagerName); // Process custom QueryBuilder actions $this->processQueryBuilder($queryBuilder); /* @@ -112,10 +132,8 @@ public function findByAdvanced( */ RepositoryHelper::resetParameterCount(); - /** @psalm-suppress InvalidTemplateParam */ - $iterator = (new Paginator($queryBuilder, true))->getIterator(); - - return $iterator->getArrayCopy(); + /** @psalm-suppress UndefinedInterfaceMethod */ + return (new Paginator($queryBuilder, true))->getIterator()->getArrayCopy(); } /** @@ -123,10 +141,10 @@ public function findByAdvanced( * * @psalm-return list */ - public function findAll(): array + public function findAll(?string $entityManagerName = null): array { return $this - ->getEntityManager() + ->getEntityManager($entityManagerName) ->getRepository($this->getEntityName()) ->findAll(); } @@ -136,10 +154,14 @@ public function findAll(): array * * @return array */ - public function findIds(?array $criteria = null, ?array $search = null): array + public function findIds(?array $criteria = null, ?array $search = null, ?string $entityManagerName = null): array { // Get query builder - $queryBuilder = $this->getQueryBuilder($criteria, $search); + $queryBuilder = $this->getQueryBuilder( + criteria: $criteria, + search: $search, + entityManagerName: $entityManagerName + ); // Build query $queryBuilder ->select('entity.id') @@ -161,10 +183,17 @@ public function findIds(?array $criteria = null, ?array $search = null): array * * @throws InvalidArgumentException|NonUniqueResultException|NoResultException */ - public function countAdvanced(?array $criteria = null, ?array $search = null): int - { + public function countAdvanced( + ?array $criteria = null, + ?array $search = null, + ?string $entityManagerName = null + ): int { // Get query builder - $queryBuilder = $this->getQueryBuilder($criteria, $search); + $queryBuilder = $this->getQueryBuilder( + criteria: $criteria, + search: $search, + entityManagerName: $entityManagerName + ); // Build query $queryBuilder->select('COUNT(DISTINCT(entity.id))'); // Process custom QueryBuilder actions @@ -182,10 +211,10 @@ public function countAdvanced(?array $criteria = null, ?array $search = null): i /** * Helper method to 'reset' repository entity table - in other words delete all records */ - public function reset(): int + public function reset(?string $entityManagerName = null): int { // Create query builder - $queryBuilder = $this->createQueryBuilder(); + $queryBuilder = $this->createQueryBuilder(entityManagerName: $entityManagerName); // Define delete query $queryBuilder->delete(); @@ -207,10 +236,11 @@ private function getQueryBuilder( ?array $search = null, ?array $orderBy = null, ?int $limit = null, - ?int $offset = null + ?int $offset = null, + ?string $entityManagerName = null ): QueryBuilder { // Create new QueryBuilder for this instance - $queryBuilder = $this->createQueryBuilder(); + $queryBuilder = $this->createQueryBuilder(entityManagerName: $entityManagerName); // Process normal and search term criteria RepositoryHelper::processCriteria($queryBuilder, $criteria); RepositoryHelper::processSearchTerms($queryBuilder, $this->getSearchColumns(), $search); diff --git a/src/Repository/Traits/RepositoryWrappersTrait.php b/src/General/Infrastructure/Repository/Traits/RepositoryWrappersTrait.php similarity index 52% rename from src/Repository/Traits/RepositoryWrappersTrait.php rename to src/General/Infrastructure/Repository/Traits/RepositoryWrappersTrait.php index 4de7be17..37852652 100644 --- a/src/Repository/Traits/RepositoryWrappersTrait.php +++ b/src/General/Infrastructure/Repository/Traits/RepositoryWrappersTrait.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Repository\Traits; +namespace App\General\Infrastructure\Repository\Traits; -use App\Rest\UuidHelper; +use App\General\Domain\Rest\UuidHelper; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Mapping\ClassMetadataInfo; use Doctrine\ORM\QueryBuilder; @@ -16,14 +16,14 @@ /** * Class RepositoryWrappersTrait * - * @package App\Repository\Traits + * @package App\General */ trait RepositoryWrappersTrait { /** * {@inheritdoc} */ - public function getReference(string $id): ?object + public function getReference(string $id, ?string $entityManagerName = null): ?object { try { $referenceId = UuidHelper::fromString($id); @@ -31,7 +31,7 @@ public function getReference(string $id): ?object $referenceId = $id; } - return $this->getEntityManager()->getReference($this->getEntityName(), $referenceId); + return $this->getEntityManager($entityManagerName)->getReference($this->getEntityName(), $referenceId); } /** @@ -39,25 +39,27 @@ public function getReference(string $id): ?object * * @psalm-return array> */ - public function getAssociations(): array + public function getAssociations(?string $entityManagerName = null): array { - return $this->getClassMetaData()->getAssociationMappings(); + return $this->getClassMetaData($entityManagerName)->getAssociationMappings(); } /** * {@inheritdoc} */ - public function getClassMetaData(): ClassMetadataInfo + public function getClassMetaData(?string $entityManagerName = null): ClassMetadataInfo { - return $this->getEntityManager()->getClassMetadata($this->getEntityName()); + return $this->getEntityManager($entityManagerName)->getClassMetadata($this->getEntityName()); } /** * {@inheritdoc} */ - public function getEntityManager(): EntityManager + public function getEntityManager(?string $entityManagerName = null): EntityManager { - $manager = $this->managerRegistry->getManagerForClass($this->getEntityName()); + $manager = $entityManagerName + ? $this->managerRegistry->getManager($entityManagerName) + : $this->managerRegistry->getManagerForClass($this->getEntityName()); if (!($manager instanceof EntityManager)) { throw new UnexpectedValueException( @@ -66,8 +68,8 @@ public function getEntityManager(): EntityManager } if ($manager->isOpen() === false) { - $this->managerRegistry->resetManager(); - $manager = $this->getEntityManager(); + $this->managerRegistry->resetManager($entityManagerName); + $manager = $this->getEntityManager($entityManagerName); } return $manager; @@ -76,15 +78,18 @@ public function getEntityManager(): EntityManager /** * {@inheritdoc} */ - public function createQueryBuilder(?string $alias = null, ?string $indexBy = null): QueryBuilder - { + public function createQueryBuilder( + ?string $alias = null, + ?string $indexBy = null, + ?string $entityManagerName = null + ): QueryBuilder { $alias ??= 'entity'; $alias = (string)preg_replace('#[\W]#', '', $alias); $indexBy = $indexBy !== null ? (string)preg_replace('#[\W]#', '', $indexBy) : null; // Create new query builder return $this - ->getEntityManager() + ->getEntityManager($entityManagerName) ->createQueryBuilder() ->select($alias) ->from($this->getEntityName(), $alias, $indexBy); diff --git a/src/Rest/Interfaces/SearchTermInterface.php b/src/General/Infrastructure/Rest/Interfaces/SearchTermInterface.php similarity index 94% rename from src/Rest/Interfaces/SearchTermInterface.php rename to src/General/Infrastructure/Rest/Interfaces/SearchTermInterface.php index 6f8a2cf6..8f4123d2 100644 --- a/src/Rest/Interfaces/SearchTermInterface.php +++ b/src/General/Infrastructure/Rest/Interfaces/SearchTermInterface.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Rest\Interfaces; +namespace App\General\Infrastructure\Rest\Interfaces; /** * Interface SearchTermInterface * - * @package App\Rest\Interfaces + * @package App\General */ interface SearchTermInterface { diff --git a/src/Rest/RepositoryHelper.php b/src/General/Infrastructure/Rest/RepositoryHelper.php similarity index 97% rename from src/Rest/RepositoryHelper.php rename to src/General/Infrastructure/Rest/RepositoryHelper.php index a45aa631..07350727 100644 --- a/src/Rest/RepositoryHelper.php +++ b/src/General/Infrastructure/Rest/RepositoryHelper.php @@ -2,8 +2,9 @@ declare(strict_types=1); -namespace App\Rest; +namespace App\General\Infrastructure\Rest; +use App\General\Domain\Rest\UuidHelper; use Closure; use Doctrine\ORM\Query\Expr\Composite; use Doctrine\ORM\Query\Expr\Literal; @@ -27,7 +28,7 @@ /** * Class RepositoryHelper * - * @package App\Rest + * @package App\General */ class RepositoryHelper { @@ -72,7 +73,7 @@ public static function resetParameterCount(): void * * tl;dr Modify your $criteria parameter in your controller with 'processCriteria(array &$criteria)' method. * - * @see \App\Repository\Traits\RepositoryMethodsTrait::getQueryBuilder() + * @see \App\General\Infrastructure\Repository\Traits\RepositoryMethodsTrait::getQueryBuilder() * * @param array|null $criteria * @@ -98,7 +99,7 @@ public static function processCriteria(QueryBuilder $queryBuilder, ?array $crite * Helper method to process given search terms and create criteria about those. Note that each repository * has 'searchColumns' property which contains the fields where search term will be affected. * - * @see \App\Repository\Traits\RepositoryMethodsTrait::getQueryBuilder() + * @see \App\General\Infrastructure\Repository\Traits\RepositoryMethodsTrait::getQueryBuilder() * * @param array $columns * @phpstan-param array|null $terms diff --git a/src/Rest/SearchTerm.php b/src/General/Infrastructure/Rest/SearchTerm.php similarity index 97% rename from src/Rest/SearchTerm.php rename to src/General/Infrastructure/Rest/SearchTerm.php index 98dc6d1f..56c95c78 100644 --- a/src/Rest/SearchTerm.php +++ b/src/General/Infrastructure/Rest/SearchTerm.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest; +namespace App\General\Infrastructure\Rest; -use App\Rest\Interfaces\SearchTermInterface; +use App\General\Infrastructure\Rest\Interfaces\SearchTermInterface; use Closure; use function array_filter; @@ -24,7 +24,7 @@ /** * Class SearchTerm * - * @package App\Rest + * @package App\General */ final class SearchTerm implements SearchTermInterface { diff --git a/src/Service/ElasticsearchService.php b/src/General/Infrastructure/Service/ElasticsearchService.php similarity index 95% rename from src/Service/ElasticsearchService.php rename to src/General/Infrastructure/Service/ElasticsearchService.php index a03e32a3..335a65d8 100644 --- a/src/Service/ElasticsearchService.php +++ b/src/General/Infrastructure/Service/ElasticsearchService.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Service; +namespace App\General\Infrastructure\Service; -use App\Service\Interfaces\ElasticsearchServiceInterface; +use App\General\Domain\Service\Interfaces\ElasticsearchServiceInterface; use DateTimeInterface; use Elasticsearch\Client; use Elasticsearch\ClientBuilder; @@ -12,7 +12,7 @@ /** * Class ElasticsearchService * - * @package App\Service + * @package App\General */ class ElasticsearchService implements ElasticsearchServiceInterface { diff --git a/src/Service/MailerService.php b/src/General/Infrastructure/Service/MailerService.php similarity index 71% rename from src/Service/MailerService.php rename to src/General/Infrastructure/Service/MailerService.php index 4f7d76bf..a2b53d3b 100644 --- a/src/Service/MailerService.php +++ b/src/General/Infrastructure/Service/MailerService.php @@ -2,18 +2,18 @@ declare(strict_types=1); -namespace App\Service; +namespace App\General\Infrastructure\Service; +use App\General\Domain\Service\Interfaces\MailerServiceInterface; use Symfony\Component\Mailer\MailerInterface; use Symfony\Component\Mime\Email; -use Throwable; /** * Class MailerService * - * @package App\Service + * @package App\General */ -class MailerService +class MailerService implements MailerServiceInterface { public function __construct( private MailerInterface $mailer, @@ -21,9 +21,7 @@ public function __construct( } /** - * Send mail to recipients - * - * @throws Throwable + * {@inheritdoc} */ public function sendMail(string $title, string $from, string $to, string $body): void { diff --git a/src/Service/MessageService.php b/src/General/Infrastructure/Service/MessageService.php similarity index 75% rename from src/Service/MessageService.php rename to src/General/Infrastructure/Service/MessageService.php index b1db0cec..c357356b 100644 --- a/src/Service/MessageService.php +++ b/src/General/Infrastructure/Service/MessageService.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\Service; +namespace App\General\Infrastructure\Service; -use App\Message\TestMessage; -use App\Service\Interfaces\MessageServiceInterface; +use App\General\Domain\Service\Interfaces\MessageServiceInterface; +use App\General\Infrastructure\Message\TestMessage; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\MessageBusInterface; /** * Class MessageService * - * @package App\Service + * @package App\General */ class MessageService implements MessageServiceInterface { diff --git a/src/ArgumentResolver/EntityValueResolver.php b/src/General/Transport/ArgumentResolver/EntityValueResolver.php similarity index 76% rename from src/ArgumentResolver/EntityValueResolver.php rename to src/General/Transport/ArgumentResolver/EntityValueResolver.php index 4e719958..460c0442 100644 --- a/src/ArgumentResolver/EntityValueResolver.php +++ b/src/General/Transport/ArgumentResolver/EntityValueResolver.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace App\ArgumentResolver; +namespace App\General\Transport\ArgumentResolver; -use App\Entity\Interfaces\EntityInterface; -use App\Resource\ResourceCollection; +use App\General\Application\Resource\ResourceCollection; +use App\General\Application\Rest\Interfaces\RestFindOneResourceInterface; +use App\General\Domain\Entity\Interfaces\EntityInterface; use Generator; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; @@ -21,7 +22,7 @@ * Example how to use this within your controller; * * #[Route(path: 'some_path_to_your_route/{user}/{apikey}')] - * public function someMethod(\App\Entity\User $user, \App\Entity\ApiKey $apikey): Response + * public function someMethod(\App\User\Domain\Entity\User $user, \App\ApiKey\Domain\Entity\ApiKey $apikey): Response * { * ... * } @@ -33,7 +34,7 @@ * Only thing that you need check is that parameter in your `path` definition matches with * method argument name. * - * @package App\ArgumentResolver + * @package App\General */ class EntityValueResolver implements ArgumentValueResolverInterface { @@ -49,7 +50,7 @@ public function supports(Request $request, ArgumentMetadata $argument): bool { return is_string($this->getUuid($argument, $request)) && is_subclass_of((string)$argument->getType(), EntityInterface::class, true) - && $this->resourceCollection->hasEntityResource($argument->getType()); + && $this->resourceCollection->hasEntityResource($argument->getType(), RestFindOneResourceInterface::class); } /** @@ -61,8 +62,8 @@ public function supports(Request $request, ArgumentMetadata $argument): bool */ public function resolve(Request $request, ArgumentMetadata $argument): Generator { - yield $this->resourceCollection - ->getEntityResource((string)$argument->getType()) + yield $this->resourceCollection /** @phpstan-ignore-line */ + ->getEntityResource((string)$argument->getType(), RestFindOneResourceInterface::class) ->findOne((string)($this->getUuid($argument, $request)), !$argument->isNullable()); } diff --git a/src/ArgumentResolver/LoggedInUserValueResolver.php b/src/General/Transport/ArgumentResolver/LoggedInUserValueResolver.php similarity index 87% rename from src/ArgumentResolver/LoggedInUserValueResolver.php rename to src/General/Transport/ArgumentResolver/LoggedInUserValueResolver.php index 75c5e1e2..893e4848 100644 --- a/src/ArgumentResolver/LoggedInUserValueResolver.php +++ b/src/General/Transport/ArgumentResolver/LoggedInUserValueResolver.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\ArgumentResolver; +namespace App\General\Transport\ArgumentResolver; -use App\Entity\User; -use App\Security\UserTypeIdentification; +use App\User\Application\Security\UserTypeIdentification; +use App\User\Domain\Entity\User; use Generator; use Lexik\Bundle\JWTAuthenticationBundle\Exception\MissingTokenException; use Symfony\Component\HttpFoundation\Request; @@ -20,7 +20,7 @@ * * #[Route(path: 'some-path')] * #[IsGranted(AuthenticatedVoter::IS_AUTHENTICATED_FULLY)] - * public function someMethod(\App\Entity\User $loggedInUser): Response + * public function someMethod(\App\User\Domain\Entity\User $loggedInUser): Response * { * ... * } @@ -28,7 +28,7 @@ * This will automatically convert your security user to actual User entity that * you can use within your controller as you like. * - * @package App\ArgumentResolver + * @package App\General */ class LoggedInUserValueResolver implements ArgumentValueResolverInterface { diff --git a/src/ArgumentResolver/RestDtoValueResolver.php b/src/General/Transport/ArgumentResolver/RestDtoValueResolver.php similarity index 92% rename from src/ArgumentResolver/RestDtoValueResolver.php rename to src/General/Transport/ArgumentResolver/RestDtoValueResolver.php index 6f2a2a0a..17e9ce54 100644 --- a/src/ArgumentResolver/RestDtoValueResolver.php +++ b/src/General/Transport/ArgumentResolver/RestDtoValueResolver.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\ArgumentResolver; +namespace App\General\Transport\ArgumentResolver; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Controller; -use App\Rest\ControllerCollection; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Controller; +use App\General\Transport\Rest\ControllerCollection; use AutoMapperPlus\AutoMapperInterface; use BadMethodCallException; use Generator; @@ -22,7 +22,7 @@ /** * Class RestDtoValueResolver * - * @package App\ArgumentResolver + * @package App\General */ class RestDtoValueResolver implements ArgumentValueResolverInterface { diff --git a/src/AutoMapper/RestAutoMapperConfiguration.php b/src/General/Transport/AutoMapper/RestAutoMapperConfiguration.php similarity index 94% rename from src/AutoMapper/RestAutoMapperConfiguration.php rename to src/General/Transport/AutoMapper/RestAutoMapperConfiguration.php index ae882e6c..0a916bf9 100644 --- a/src/AutoMapper/RestAutoMapperConfiguration.php +++ b/src/General/Transport/AutoMapper/RestAutoMapperConfiguration.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\AutoMapper; +namespace App\General\Transport\AutoMapper; use AutoMapperPlus\AutoMapperPlusBundle\AutoMapperConfiguratorInterface; use AutoMapperPlus\Configuration\AutoMapperConfigInterface; @@ -11,7 +11,7 @@ /** * Class RestAutoMapperConfiguration * - * @package App\AutoMapper + * @package App\General * * @property RestRequestMapper $requestMapper */ diff --git a/src/AutoMapper/RestRequestMapper.php b/src/General/Transport/AutoMapper/RestRequestMapper.php similarity index 96% rename from src/AutoMapper/RestRequestMapper.php rename to src/General/Transport/AutoMapper/RestRequestMapper.php index 29aa9504..adbf12ac 100644 --- a/src/AutoMapper/RestRequestMapper.php +++ b/src/General/Transport/AutoMapper/RestRequestMapper.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\AutoMapper; +namespace App\General\Transport\AutoMapper; -use App\DTO\Interfaces\RestDtoInterface; +use App\General\Application\DTO\Interfaces\RestDtoInterface; use AutoMapperPlus\MapperInterface; use InvalidArgumentException; use LengthException; @@ -22,7 +22,7 @@ /** * Class RestRequestMapper * - * @package App\AutoMapper + * @package App\General */ abstract class RestRequestMapper implements MapperInterface { diff --git a/src/Command/HelperConfigure.php b/src/General/Transport/Command/HelperConfigure.php similarity index 95% rename from src/Command/HelperConfigure.php rename to src/General/Transport/Command/HelperConfigure.php index 0e26d670..086588ed 100644 --- a/src/Command/HelperConfigure.php +++ b/src/General/Transport/Command/HelperConfigure.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Command; +namespace App\General\Transport\Command; use Closure; use Symfony\Component\Console\Command\Command; @@ -16,7 +16,7 @@ /** * Class HelperConfigure * - * @package App\Command + * @package App\General */ class HelperConfigure { diff --git a/src/Command/Traits/ExecuteMultipleCommandTrait.php b/src/General/Transport/Command/Traits/ExecuteMultipleCommandTrait.php similarity index 96% rename from src/Command/Traits/ExecuteMultipleCommandTrait.php rename to src/General/Transport/Command/Traits/ExecuteMultipleCommandTrait.php index b7095ba4..9094623b 100644 --- a/src/Command/Traits/ExecuteMultipleCommandTrait.php +++ b/src/General/Transport/Command/Traits/ExecuteMultipleCommandTrait.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Command\Traits; +namespace App\General\Transport\Command\Traits; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\InputInterface; @@ -17,7 +17,7 @@ /** * Trait ExecuteMultipleCommandTrait * - * @package App\Command\Traits + * @package App\General */ trait ExecuteMultipleCommandTrait { diff --git a/src/Command/Traits/GetApplicationTrait.php b/src/General/Transport/Command/Traits/GetApplicationTrait.php similarity index 57% rename from src/Command/Traits/GetApplicationTrait.php rename to src/General/Transport/Command/Traits/GetApplicationTrait.php index 0e56179d..c0d8616d 100644 --- a/src/Command/Traits/GetApplicationTrait.php +++ b/src/General/Transport/Command/Traits/GetApplicationTrait.php @@ -2,16 +2,15 @@ declare(strict_types=1); -namespace App\Command\Traits; +namespace App\General\Transport\Command\Traits; use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\RuntimeException; /** * Trait GetApplicationTrait * - * @package App\Command\Traits + * @package App\General */ trait GetApplicationTrait { @@ -20,11 +19,6 @@ trait GetApplicationTrait */ public function getApplication(): Application { - if (!($this instanceof Command)) { - throw new RuntimeException('This trait ' . __TRAIT__ . ' is only mentioned to use with console commands.'); - } - - /* @noinspection PhpUndefinedClassInspection */ return parent::getApplication() ?? throw new RuntimeException('Cannot determine application for console command to use.'); } diff --git a/src/Command/Traits/SymfonyStyleTrait.php b/src/General/Transport/Command/Traits/SymfonyStyleTrait.php similarity index 90% rename from src/Command/Traits/SymfonyStyleTrait.php rename to src/General/Transport/Command/Traits/SymfonyStyleTrait.php index ab3425bf..52ff88cc 100644 --- a/src/Command/Traits/SymfonyStyleTrait.php +++ b/src/General/Transport/Command/Traits/SymfonyStyleTrait.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Command\Traits; +namespace App\General\Transport\Command\Traits; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -11,7 +11,7 @@ /** * Trait SymfonyStyleTrait * - * @package App\Command\Traits + * @package App\General */ trait SymfonyStyleTrait { diff --git a/src/EventSubscriber/BodySubscriber.php b/src/General/Transport/EventSubscriber/BodySubscriber.php similarity index 94% rename from src/EventSubscriber/BodySubscriber.php rename to src/General/Transport/EventSubscriber/BodySubscriber.php index 2b840387..75d3dc98 100644 --- a/src/EventSubscriber/BodySubscriber.php +++ b/src/General/Transport/EventSubscriber/BodySubscriber.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\General\Transport\EventSubscriber; -use App\Utils\JSON; +use App\General\Domain\Utils\JSON; use JsonException; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\Request; @@ -16,7 +16,7 @@ /** * Class BodySubscriber * - * @package App\EventSubscriber + * @package App\General */ class BodySubscriber implements EventSubscriberInterface { diff --git a/src/EventSubscriber/ExceptionSubscriber.php b/src/General/Transport/EventSubscriber/ExceptionSubscriber.php similarity index 96% rename from src/EventSubscriber/ExceptionSubscriber.php rename to src/General/Transport/EventSubscriber/ExceptionSubscriber.php index f238afe7..b1a68dd8 100644 --- a/src/EventSubscriber/ExceptionSubscriber.php +++ b/src/General/Transport/EventSubscriber/ExceptionSubscriber.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\General\Transport\EventSubscriber; -use App\Exception\Interfaces\ClientErrorInterface; -use App\Security\UserTypeIdentification; -use App\Utils\JSON; +use App\General\Application\Exception\Interfaces\ClientErrorInterface; +use App\General\Domain\Utils\JSON; +use App\User\Application\Security\UserTypeIdentification; use Doctrine\DBAL\Exception; use Doctrine\ORM\ORMException; use JsonException; @@ -30,7 +30,7 @@ /** * Class ExceptionSubscriber * - * @package App\EventSubscriber + * @package App\General */ class ExceptionSubscriber implements EventSubscriberInterface { diff --git a/src/EventSubscriber/RequestLogSubscriber.php b/src/General/Transport/EventSubscriber/RequestLogSubscriber.php similarity index 90% rename from src/EventSubscriber/RequestLogSubscriber.php rename to src/General/Transport/EventSubscriber/RequestLogSubscriber.php index 16aec459..d59d27a0 100644 --- a/src/EventSubscriber/RequestLogSubscriber.php +++ b/src/General/Transport/EventSubscriber/RequestLogSubscriber.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\General\Transport\EventSubscriber; -use App\Security\ApiKeyUser; -use App\Security\SecurityUser; -use App\Security\UserTypeIdentification; -use App\Service\RequestLoggerService; +use App\ApiKey\Application\Security\ApiKeyUser; +use App\Log\Application\Service\RequestLoggerService; +use App\User\Application\Security\SecurityUser; +use App\User\Application\Security\UserTypeIdentification; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Event\TerminateEvent; @@ -22,7 +22,7 @@ /** * Class RequestLogSubscriber * - * @package App\EventSubscriber + * @package App\General * * @property array $ignoredRoutes */ diff --git a/src/EventSubscriber/ResponseSubscriber.php b/src/General/Transport/EventSubscriber/ResponseSubscriber.php similarity index 88% rename from src/EventSubscriber/ResponseSubscriber.php rename to src/General/Transport/EventSubscriber/ResponseSubscriber.php index 519a04cf..4e6d40f5 100644 --- a/src/EventSubscriber/ResponseSubscriber.php +++ b/src/General/Transport/EventSubscriber/ResponseSubscriber.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\General\Transport\EventSubscriber; -use App\Service\VersionService; +use App\Tool\Application\Service\VersionService; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\Event\ResponseEvent; /** * Class ResponseSubscriber * - * @package App\EventSubscriber + * @package App\General */ class ResponseSubscriber implements EventSubscriberInterface { diff --git a/src/Form/Type/Interfaces/FormTypeLabelInterface.php b/src/General/Transport/Form/Type/Interfaces/FormTypeLabelInterface.php similarity index 86% rename from src/Form/Type/Interfaces/FormTypeLabelInterface.php rename to src/General/Transport/Form/Type/Interfaces/FormTypeLabelInterface.php index b568bd07..967ecaed 100644 --- a/src/Form/Type/Interfaces/FormTypeLabelInterface.php +++ b/src/General/Transport/Form/Type/Interfaces/FormTypeLabelInterface.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Form\Type\Interfaces; +namespace App\General\Transport\Form\Type\Interfaces; /** * Interface FormTypeLabelInterface * - * @package App\Form\Type\Interfaces + * @package App\General */ interface FormTypeLabelInterface { diff --git a/src/Form/Type/Traits/AddBasicFieldToForm.php b/src/General/Transport/Form/Type/Traits/AddBasicFieldToForm.php similarity index 86% rename from src/Form/Type/Traits/AddBasicFieldToForm.php rename to src/General/Transport/Form/Type/Traits/AddBasicFieldToForm.php index 7cb95b3c..489e3d79 100644 --- a/src/Form/Type/Traits/AddBasicFieldToForm.php +++ b/src/General/Transport/Form/Type/Traits/AddBasicFieldToForm.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Form\Type\Traits; +namespace App\General\Transport\Form\Type\Traits; use Symfony\Component\Form\FormBuilderInterface; @@ -11,7 +11,7 @@ /** * Trait AddBasicFieldToForm * - * @package App\Form\Type\Traits + * @package App\General */ trait AddBasicFieldToForm { diff --git a/src/Request/ParamConverter/RestResourceConverter.php b/src/General/Transport/Request/ParamConverter/RestResourceConverter.php similarity index 73% rename from src/Request/ParamConverter/RestResourceConverter.php rename to src/General/Transport/Request/ParamConverter/RestResourceConverter.php index eb1d1303..3c5613af 100644 --- a/src/Request/ParamConverter/RestResourceConverter.php +++ b/src/General/Transport/Request/ParamConverter/RestResourceConverter.php @@ -2,9 +2,11 @@ declare(strict_types=1); -namespace App\Request\ParamConverter; +namespace App\General\Transport\Request\ParamConverter; -use App\Resource\ResourceCollection; +use App\General\Application\Resource\ResourceCollection; +use App\General\Application\Rest\Interfaces\RestFindOneResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterInterface; use Symfony\Component\HttpFoundation\Request; @@ -15,7 +17,7 @@ * * Purpose of this param converter is to use exactly same methods and workflow as in basic REST API requests. * - * @package App\Request\ParamConverter + * @package App\General */ class RestResourceConverter implements ParamConverterInterface { @@ -33,7 +35,8 @@ public function apply(Request $request, ParamConverter $configuration): bool { $name = $configuration->getName(); $identifier = (string)$request->attributes->get($name, ''); - $resource = $this->collection->get((string)$configuration->getClass()); + /** @var RestResourceInterface|RestFindOneResourceInterface $resource */ + $resource = $this->collection->get((string)$configuration->getClass(), RestFindOneResourceInterface::class); if ($identifier !== '') { $request->attributes->set($name, $resource->findOne($identifier, true)); @@ -47,6 +50,6 @@ public function apply(Request $request, ParamConverter $configuration): bool */ public function supports(ParamConverter $configuration): bool { - return $this->collection->has($configuration->getClass()); + return $this->collection->has($configuration->getClass(), RestFindOneResourceInterface::class); } } diff --git a/src/Rest/Controller.php b/src/General/Transport/Rest/Controller.php similarity index 75% rename from src/Rest/Controller.php rename to src/General/Transport/Rest/Controller.php index 083b9f32..69b11e1c 100644 --- a/src/Rest/Controller.php +++ b/src/General/Transport/Rest/Controller.php @@ -2,13 +2,14 @@ declare(strict_types=1); -namespace App\Rest; +namespace App\General\Transport\Rest; -use App\Rest\Interfaces\ControllerInterface; -use App\Rest\Interfaces\ResponseHandlerInterface; -use App\Rest\Interfaces\RestResourceInterface; -use App\Rest\Traits\Actions\RestActionBase; -use App\Rest\Traits\RestMethodHelper; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Application\Rest\Interfaces\RestSmallResourceInterface; +use App\General\Transport\Rest\Interfaces\ControllerInterface; +use App\General\Transport\Rest\Interfaces\ResponseHandlerInterface; +use App\General\Transport\Rest\Traits\Actions\RestActionBase; +use App\General\Transport\Rest\Traits\RestMethodHelper; use Symfony\Component\HttpFoundation\Response; use Symfony\Contracts\Service\Attribute\Required; use UnexpectedValueException; @@ -16,9 +17,9 @@ /** * Class Controller * - * @package App\Rest + * @package App\General * - * @property ?RestResourceInterface $resource + * @property RestResourceInterface|RestSmallResourceInterface|null $resource */ abstract class Controller implements ControllerInterface { @@ -48,22 +49,12 @@ abstract class Controller implements ControllerInterface /** * {@inheritdoc} */ - public function getResource(): RestResourceInterface + public function getResource(): RestResourceInterface|RestSmallResourceInterface { return $this->resource ?? throw new UnexpectedValueException('Resource service not set', Response::HTTP_INTERNAL_SERVER_ERROR); } - /** - * {@inheritdoc} - */ - public function setResource(RestResourceInterface $resource): static - { - $this->resource = $resource; - - return $this; - } - /** * {@inheritdoc} */ diff --git a/src/Rest/ControllerCollection.php b/src/General/Transport/Rest/ControllerCollection.php similarity index 85% rename from src/Rest/ControllerCollection.php rename to src/General/Transport/Rest/ControllerCollection.php index a5285c2f..1a87ab82 100644 --- a/src/Rest/ControllerCollection.php +++ b/src/General/Transport/Rest/ControllerCollection.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest; +namespace App\General\Transport\Rest; -use App\Collection\Traits\CollectionTrait; -use App\Rest\Interfaces\ControllerInterface; +use App\General\Application\Collection\Traits\CollectionTrait; +use App\General\Transport\Rest\Interfaces\ControllerInterface; use Closure; use Countable; use IteratorAggregate; @@ -16,7 +16,7 @@ /** * Class ControllerCollection * - * @package App\Rest + * @package App\General * * @method ControllerInterface get(string $className) * @method IteratorAggregate getAll() diff --git a/src/Rest/Interfaces/ControllerInterface.php b/src/General/Transport/Rest/Interfaces/ControllerInterface.php similarity index 71% rename from src/Rest/Interfaces/ControllerInterface.php rename to src/General/Transport/Rest/Interfaces/ControllerInterface.php index abd07565..2fd2e4d2 100644 --- a/src/Rest/Interfaces/ControllerInterface.php +++ b/src/General/Transport/Rest/Interfaces/ControllerInterface.php @@ -2,9 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Interfaces; +namespace App\General\Transport\Rest\Interfaces; -use App\Rest\ResponseHandler; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Application\Rest\Interfaces\RestSmallResourceInterface; +use App\General\Transport\Rest\ResponseHandler; use LogicException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException; @@ -14,21 +16,16 @@ /** * Interface ControllerInterface * - * @package App\Rest\Interfaces + * @package App\General */ interface ControllerInterface { - /** - * Setter method for `resource` service. - */ - public function setResource(RestResourceInterface $resource): static; - /** * Getter method for `resource` service. * * @throws UnexpectedValueException */ - public function getResource(): RestResourceInterface; + public function getResource(): RestResourceInterface|RestSmallResourceInterface; /** * Getter method for `ResponseHandler` service. @@ -62,12 +59,19 @@ public function validateRestMethod(Request $request, array $allowedHttpMethods): /** * Method to handle possible REST method trait exception. */ - public function handleRestMethodException(Throwable $exception, ?string $id = null): Throwable; + public function handleRestMethodException( + Throwable $exception, + ?string $id = null, + ?string $entityManagerName = null + ): Throwable; /** * @param array $allowedHttpMethods */ - public function getResourceForMethod(Request $request, array $allowedHttpMethods): RestResourceInterface; + public function getResourceForMethod( + Request $request, + array $allowedHttpMethods + ): RestResourceInterface|RestSmallResourceInterface; /** * Method to process current criteria array. diff --git a/src/Rest/Interfaces/ResponseHandlerInterface.php b/src/General/Transport/Rest/Interfaces/ResponseHandlerInterface.php similarity index 74% rename from src/Rest/Interfaces/ResponseHandlerInterface.php rename to src/General/Transport/Rest/Interfaces/ResponseHandlerInterface.php index 09f1962d..9a6767c4 100644 --- a/src/Rest/Interfaces/ResponseHandlerInterface.php +++ b/src/General/Transport/Rest/Interfaces/ResponseHandlerInterface.php @@ -2,8 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Interfaces; +namespace App\General\Transport\Rest\Interfaces; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Application\Rest\Interfaces\RestSmallResourceInterface; use Symfony\Component\Form\FormInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -13,7 +15,7 @@ /** * Interface ResponseHandlerInterface * - * @package App\Rest + * @package App\General */ interface ResponseHandlerInterface { @@ -35,7 +37,10 @@ public function getSerializer(): SerializerInterface; * * @return array */ - public function getSerializeContext(Request $request, ?RestResourceInterface $restResource = null): array; + public function getSerializeContext( + Request $request, + RestResourceInterface|RestSmallResourceInterface|null $restResource = null + ): array; /** * Helper method to create response for request. @@ -47,7 +52,7 @@ public function getSerializeContext(Request $request, ?RestResourceInterface $re public function createResponse( Request $request, mixed $data, - ?RestResourceInterface $restResource = null, + RestResourceInterface|RestSmallResourceInterface|null $restResource = null, ?int $httpStatus = null, ?string $format = null, ?array $context = null, diff --git a/src/Rest/RequestHandler.php b/src/General/Transport/Rest/RequestHandler.php similarity index 94% rename from src/Rest/RequestHandler.php rename to src/General/Transport/Rest/RequestHandler.php index 135efd5f..acf24f3c 100644 --- a/src/Rest/RequestHandler.php +++ b/src/General/Transport/Rest/RequestHandler.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest; +namespace App\General\Transport\Rest; -use App\Utils\JSON; +use App\General\Domain\Utils\JSON; use Closure; use JsonException; use LogicException; @@ -29,7 +29,7 @@ /** * Class RequestHandler * - * @package App\Rest + * @package App\General */ final class RequestHandler { @@ -132,6 +132,20 @@ public static function getLimit(HttpFoundationRequest $request): ?int return $limit !== null ? (int)abs((float)$limit) : null; } + /** + * Getter method for used tenant option. Should be equal to EM name in doctrine.yaml + * + * Usage: + * ?tenant=default + */ + public static function getTenant(HttpFoundationRequest $request): ?string + { + $tenant = $request->query->get('tenant') ?? $request->request->get('tenant'); + //TODO: Think about validation for tenant. + + return $tenant !== null ? (string)$tenant : null; + } + /** * Getter method for used offset option within 'find' method. * diff --git a/src/Rest/ResponseHandler.php b/src/General/Transport/Rest/ResponseHandler.php similarity index 86% rename from src/Rest/ResponseHandler.php rename to src/General/Transport/Rest/ResponseHandler.php index db70dfea..9d57bdbe 100644 --- a/src/Rest/ResponseHandler.php +++ b/src/General/Transport/Rest/ResponseHandler.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace App\Rest; +namespace App\General\Transport\Rest; -use App\Rest\Interfaces\ResponseHandlerInterface; -use App\Rest\Interfaces\RestResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Application\Rest\Interfaces\RestSmallResourceInterface; +use App\General\Transport\Rest\Interfaces\ResponseHandlerInterface; use Symfony\Component\Form\FormError; use Symfony\Component\Form\FormInterface; use Symfony\Component\HttpFoundation\Request; @@ -29,7 +30,7 @@ /** * Class ResponseHandler * - * @package App\Rest + * @package App\General */ class ResponseHandler implements ResponseHandlerInterface { @@ -58,8 +59,10 @@ public function getSerializer(): SerializerInterface * * @throws Throwable */ - public function getSerializeContext(Request $request, ?RestResourceInterface $restResource = null): array - { + public function getSerializeContext( + Request $request, + RestResourceInterface|RestSmallResourceInterface|null $restResource = null + ): array { /** * Specify used populate settings * @@ -67,6 +70,7 @@ public function getSerializeContext(Request $request, ?RestResourceInterface $re */ $populate = (array)($request->query->get('populate') ?? $request->request->get('populate')); $groups = ['default', ...$populate]; + $entityManagerName = RequestHandler::getTenant($request); if ($restResource !== null) { // Get current entity name @@ -76,7 +80,8 @@ public function getSerializeContext(Request $request, ?RestResourceInterface $re array_key_exists('populateAll', $request->query->all()), $populate, $entityName, - $restResource + $restResource, + $entityManagerName ); $groups = array_merge([$entityName], $populate); $filter = static fn (string $groupName): bool => strncmp($groupName, 'Set.', 4) === 0; @@ -105,7 +110,7 @@ public function getSerializeContext(Request $request, ?RestResourceInterface $re public function createResponse( Request $request, mixed $data, - ?RestResourceInterface $restResource = null, + RestResourceInterface|RestSmallResourceInterface|null $restResource = null, ?int $httpStatus = null, ?string $format = null, ?array $context = null, @@ -157,11 +162,12 @@ private function checkPopulateAll( bool $populateAll, array $populate, string $entityName, - RestResourceInterface $restResource, + RestResourceInterface|RestSmallResourceInterface $restResource, + ?string $entityManagerName ): array { // Set all associations to be populated if ($populateAll && $populate === []) { - $associations = $restResource->getAssociations(); + $associations = $restResource->getAssociations($entityManagerName); $populate = array_map( static fn (string $assocName): string => $entityName . '.' . $assocName, $associations, diff --git a/src/Rest/Traits/Actions/Admin/CountAction.php b/src/General/Transport/Rest/Traits/Actions/Admin/CountAction.php similarity index 83% rename from src/Rest/Traits/Actions/Admin/CountAction.php rename to src/General/Transport/Rest/Traits/Actions/Admin/CountAction.php index 568767cd..78a31a5c 100644 --- a/src/Rest/Traits/Actions/Admin/CountAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Admin/CountAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Admin; +namespace App\General\Transport\Rest\Traits\Actions\Admin; -use App\Rest\Traits\Methods\CountMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\CountMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'countAction' for REST controllers for 'ROLE_ADMIN' users. * - * @see \App\Rest\Traits\Methods\CountMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CountMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Admin + * @package App\General */ trait CountAction { @@ -55,7 +55,7 @@ trait CountAction path: '/count', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function countAction(Request $request): Response { return $this->countMethod($request); diff --git a/src/Rest/Traits/Actions/Admin/CreateAction.php b/src/General/Transport/Rest/Traits/Actions/Admin/CreateAction.php similarity index 82% rename from src/Rest/Traits/Actions/Admin/CreateAction.php rename to src/General/Transport/Rest/Traits/Actions/Admin/CreateAction.php index 2504a94c..320f5e60 100644 --- a/src/Rest/Traits/Actions/Admin/CreateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Admin/CreateAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Admin; +namespace App\General\Transport\Rest\Traits\Actions\Admin; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\CreateMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\CreateMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'createAction' for REST controllers for 'ROLE_ADMIN' users. * - * @see \App\Rest\Traits\Methods\CreateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CreateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Admin + * @package App\General */ trait CreateAction { @@ -64,7 +64,7 @@ trait CreateAction path: '', methods: [Request::METHOD_POST], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function createAction(Request $request, RestDtoInterface $restDto): Response { return $this->createMethod($request, $restDto); diff --git a/src/Rest/Traits/Actions/Admin/DeleteAction.php b/src/General/Transport/Rest/Traits/Actions/Admin/DeleteAction.php similarity index 83% rename from src/Rest/Traits/Actions/Admin/DeleteAction.php rename to src/General/Transport/Rest/Traits/Actions/Admin/DeleteAction.php index 24248eda..87cd47b9 100644 --- a/src/Rest/Traits/Actions/Admin/DeleteAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Admin/DeleteAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Admin; +namespace App\General\Transport\Rest\Traits\Actions\Admin; -use App\Rest\Traits\Methods\DeleteMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\DeleteMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'deleteAction' for REST controllers for 'ROLE_ADMIN' users. * - * @see \App\Rest\Traits\Methods\DeleteMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\DeleteMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Admin + * @package App\General */ trait DeleteAction { @@ -57,7 +57,7 @@ trait DeleteAction ], methods: [Request::METHOD_DELETE], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function deleteAction(Request $request, string $id): Response { return $this->deleteMethod($request, $id); diff --git a/src/Rest/Traits/Actions/Admin/FindAction.php b/src/General/Transport/Rest/Traits/Actions/Admin/FindAction.php similarity index 82% rename from src/Rest/Traits/Actions/Admin/FindAction.php rename to src/General/Transport/Rest/Traits/Actions/Admin/FindAction.php index 4e98aa74..0640f06a 100644 --- a/src/Rest/Traits/Actions/Admin/FindAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Admin/FindAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Admin; +namespace App\General\Transport\Rest\Traits\Actions\Admin; -use App\Rest\Traits\Methods\FindMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\FindMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findAction' for REST controllers for 'ROLE_ADMIN' users. * - * @see \App\Rest\Traits\Methods\FindMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Admin + * @package App\General */ trait FindAction { @@ -54,7 +54,7 @@ trait FindAction path: '', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function findAction(Request $request): Response { return $this->findMethod($request); diff --git a/src/Rest/Traits/Actions/Admin/FindOneAction.php b/src/General/Transport/Rest/Traits/Actions/Admin/FindOneAction.php similarity index 83% rename from src/Rest/Traits/Actions/Admin/FindOneAction.php rename to src/General/Transport/Rest/Traits/Actions/Admin/FindOneAction.php index 1eb42cf6..8d70423b 100644 --- a/src/Rest/Traits/Actions/Admin/FindOneAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Admin/FindOneAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Admin; +namespace App\General\Transport\Rest\Traits\Actions\Admin; -use App\Rest\Traits\Methods\FindOneMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\FindOneMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findOneAction' for REST controllers for 'ROLE_ADMIN' users. * - * @see \App\Rest\Traits\Methods\FindOneMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindOneMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Admin + * @package App\General */ trait FindOneAction { @@ -57,7 +57,7 @@ trait FindOneAction ], methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function findOneAction(Request $request, string $id): Response { return $this->findOneMethod($request, $id); diff --git a/src/Rest/Traits/Actions/Admin/IdsAction.php b/src/General/Transport/Rest/Traits/Actions/Admin/IdsAction.php similarity index 82% rename from src/Rest/Traits/Actions/Admin/IdsAction.php rename to src/General/Transport/Rest/Traits/Actions/Admin/IdsAction.php index fe15a44a..f669e9b5 100644 --- a/src/Rest/Traits/Actions/Admin/IdsAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Admin/IdsAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Admin; +namespace App\General\Transport\Rest\Traits\Actions\Admin; -use App\Rest\Traits\Methods\IdsMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\IdsMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'idsAction' for REST controllers for 'ROLE_ADMIN' users. * - * @see \App\Rest\Traits\Methods\IdsMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\IdsMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Admin + * @package App\General */ trait IdsAction { @@ -54,7 +54,7 @@ trait IdsAction path: '/ids', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function idsAction(Request $request): Response { return $this->idsMethod($request); diff --git a/src/Rest/Traits/Actions/Admin/PatchAction.php b/src/General/Transport/Rest/Traits/Actions/Admin/PatchAction.php similarity index 82% rename from src/Rest/Traits/Actions/Admin/PatchAction.php rename to src/General/Transport/Rest/Traits/Actions/Admin/PatchAction.php index 98cca085..93e8c1df 100644 --- a/src/Rest/Traits/Actions/Admin/PatchAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Admin/PatchAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Admin; +namespace App\General\Transport\Rest\Traits\Actions\Admin; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\PatchMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\PatchMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'patchAction' for REST controllers for 'ROLE_ADMIN' users. * - * @see \App\Rest\Traits\Methods\PatchMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\PatchMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait PatchAction { @@ -67,7 +67,7 @@ trait PatchAction ], methods: [Request::METHOD_PATCH], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function patchAction(Request $request, RestDtoInterface $restDto, string $id): Response { return $this->patchMethod($request, $restDto, $id); diff --git a/src/Rest/Traits/Actions/Admin/UpdateAction.php b/src/General/Transport/Rest/Traits/Actions/Admin/UpdateAction.php similarity index 82% rename from src/Rest/Traits/Actions/Admin/UpdateAction.php rename to src/General/Transport/Rest/Traits/Actions/Admin/UpdateAction.php index 3da6a5b2..1ae6202f 100644 --- a/src/Rest/Traits/Actions/Admin/UpdateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Admin/UpdateAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Admin; +namespace App\General\Transport\Rest\Traits\Actions\Admin; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\UpdateMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\UpdateMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'updateAction' for REST controllers for 'ROLE_ADMIN' users. * - * @see \App\Rest\Traits\Methods\UpdateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\UpdateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Admin + * @package App\General */ trait UpdateAction { @@ -67,7 +67,7 @@ trait UpdateAction ], methods: [Request::METHOD_PUT], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function updateAction(Request $request, RestDtoInterface $restDto, string $id): Response { return $this->updateMethod($request, $restDto, $id); diff --git a/src/Rest/Traits/Actions/Anon/CountAction.php b/src/General/Transport/Rest/Traits/Actions/Anon/CountAction.php similarity index 80% rename from src/Rest/Traits/Actions/Anon/CountAction.php rename to src/General/Transport/Rest/Traits/Actions/Anon/CountAction.php index 6233365d..c31157dc 100644 --- a/src/Rest/Traits/Actions/Anon/CountAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Anon/CountAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Anon; +namespace App\General\Transport\Rest\Traits\Actions\Anon; -use App\Rest\Traits\Methods\CountMethod; +use App\General\Transport\Rest\Traits\Methods\CountMethod; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -16,9 +16,9 @@ * * Trait to add 'countAction' for REST controllers for anonymous users. * - * @see \App\Rest\Traits\Methods\CountMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CountMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Anon + * @package App\General */ trait CountAction { diff --git a/src/Rest/Traits/Actions/Anon/CreateAction.php b/src/General/Transport/Rest/Traits/Actions/Anon/CreateAction.php similarity index 79% rename from src/Rest/Traits/Actions/Anon/CreateAction.php rename to src/General/Transport/Rest/Traits/Actions/Anon/CreateAction.php index 22923be9..02b5f45e 100644 --- a/src/Rest/Traits/Actions/Anon/CreateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Anon/CreateAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Anon; +namespace App\General\Transport\Rest\Traits\Actions\Anon; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\CreateMethod; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\CreateMethod; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -17,9 +17,9 @@ * * Trait to add 'createAction' for REST controllers for anonymous users. * - * @see \App\Rest\Traits\Methods\CreateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CreateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Anon + * @package App\General */ trait CreateAction { diff --git a/src/Rest/Traits/Actions/Anon/DeleteAction.php b/src/General/Transport/Rest/Traits/Actions/Anon/DeleteAction.php similarity index 80% rename from src/Rest/Traits/Actions/Anon/DeleteAction.php rename to src/General/Transport/Rest/Traits/Actions/Anon/DeleteAction.php index 5b5a9da6..c6e39ad0 100644 --- a/src/Rest/Traits/Actions/Anon/DeleteAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Anon/DeleteAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Anon; +namespace App\General\Transport\Rest\Traits\Actions\Anon; -use App\Rest\Traits\Methods\DeleteMethod; +use App\General\Transport\Rest\Traits\Methods\DeleteMethod; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -16,9 +16,9 @@ * * Trait to add 'deleteAction' for REST controllers for anonymous users. * - * @see \App\Rest\Traits\Methods\DeleteMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\DeleteMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Anon + * @package App\General */ trait DeleteAction { diff --git a/src/Rest/Traits/Actions/Anon/FindAction.php b/src/General/Transport/Rest/Traits/Actions/Anon/FindAction.php similarity index 79% rename from src/Rest/Traits/Actions/Anon/FindAction.php rename to src/General/Transport/Rest/Traits/Actions/Anon/FindAction.php index a5bfd249..a99d009e 100644 --- a/src/Rest/Traits/Actions/Anon/FindAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Anon/FindAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Anon; +namespace App\General\Transport\Rest\Traits\Actions\Anon; -use App\Rest\Traits\Methods\FindMethod; +use App\General\Transport\Rest\Traits\Methods\FindMethod; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -16,9 +16,9 @@ * * Trait to add 'findAction' for REST controllers for anonymous users. * - * @see \App\Rest\Traits\Methods\FindMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Anon + * @package App\General */ trait FindAction { diff --git a/src/Rest/Traits/Actions/Anon/FindOneAction.php b/src/General/Transport/Rest/Traits/Actions/Anon/FindOneAction.php similarity index 80% rename from src/Rest/Traits/Actions/Anon/FindOneAction.php rename to src/General/Transport/Rest/Traits/Actions/Anon/FindOneAction.php index c96ee412..cd7d5a0d 100644 --- a/src/Rest/Traits/Actions/Anon/FindOneAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Anon/FindOneAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Anon; +namespace App\General\Transport\Rest\Traits\Actions\Anon; -use App\Rest\Traits\Methods\FindOneMethod; +use App\General\Transport\Rest\Traits\Methods\FindOneMethod; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -16,9 +16,9 @@ * * Trait to add 'findOneAction' for REST controllers for anonymous users. * - * @see \App\Rest\Traits\Methods\FindOneMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindOneMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Anon + * @package App\General */ trait FindOneAction { diff --git a/src/Rest/Traits/Actions/Anon/IdsAction.php b/src/General/Transport/Rest/Traits/Actions/Anon/IdsAction.php similarity index 79% rename from src/Rest/Traits/Actions/Anon/IdsAction.php rename to src/General/Transport/Rest/Traits/Actions/Anon/IdsAction.php index 24847d36..c1633bc6 100644 --- a/src/Rest/Traits/Actions/Anon/IdsAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Anon/IdsAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Anon; +namespace App\General\Transport\Rest\Traits\Actions\Anon; -use App\Rest\Traits\Methods\IdsMethod; +use App\General\Transport\Rest\Traits\Methods\IdsMethod; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -16,9 +16,9 @@ * * Trait to add 'idsAction' for REST controllers for anonymous users. * - * @see \App\Rest\Traits\Methods\IdsMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\IdsMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Anon + * @package App\General */ trait IdsAction { diff --git a/src/Rest/Traits/Actions/Anon/PatchAction.php b/src/General/Transport/Rest/Traits/Actions/Anon/PatchAction.php similarity index 81% rename from src/Rest/Traits/Actions/Anon/PatchAction.php rename to src/General/Transport/Rest/Traits/Actions/Anon/PatchAction.php index 794419aa..c3a56739 100644 --- a/src/Rest/Traits/Actions/Anon/PatchAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Anon/PatchAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Anon; +namespace App\General\Transport\Rest\Traits\Actions\Anon; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\PatchMethod; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\PatchMethod; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -17,9 +17,9 @@ * * Trait to add 'patchAction' for REST controllers for anonymous users. * - * @see \App\Rest\Traits\Methods\PatchMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\PatchMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait PatchAction { diff --git a/src/Rest/Traits/Actions/Anon/UpdateAction.php b/src/General/Transport/Rest/Traits/Actions/Anon/UpdateAction.php similarity index 81% rename from src/Rest/Traits/Actions/Anon/UpdateAction.php rename to src/General/Transport/Rest/Traits/Actions/Anon/UpdateAction.php index 31f3cb6e..39bf963e 100644 --- a/src/Rest/Traits/Actions/Anon/UpdateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Anon/UpdateAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Anon; +namespace App\General\Transport\Rest\Traits\Actions\Anon; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\UpdateMethod; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\UpdateMethod; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -17,9 +17,9 @@ * * Trait to add 'updateAction' for REST controllers for anonymous users. * - * @see \App\Rest\Traits\Methods\UpdateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\UpdateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Anon + * @package App\General */ trait UpdateAction { diff --git a/src/Rest/Traits/Actions/Authenticated/CountAction.php b/src/General/Transport/Rest/Traits/Actions/Authenticated/CountAction.php similarity index 87% rename from src/Rest/Traits/Actions/Authenticated/CountAction.php rename to src/General/Transport/Rest/Traits/Actions/Authenticated/CountAction.php index ce684e19..ca3877d1 100644 --- a/src/Rest/Traits/Actions/Authenticated/CountAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Authenticated/CountAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Authenticated; +namespace App\General\Transport\Rest\Traits\Actions\Authenticated; -use App\Rest\Traits\Methods\CountMethod; +use App\General\Transport\Rest\Traits\Methods\CountMethod; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'countAction' for REST controllers for authenticated users. * - * @see \App\Rest\Traits\Methods\CountMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CountMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Authenticated + * @package App\General */ trait CountAction { diff --git a/src/Rest/Traits/Actions/Authenticated/CreateAction.php b/src/General/Transport/Rest/Traits/Actions/Authenticated/CreateAction.php similarity index 85% rename from src/Rest/Traits/Actions/Authenticated/CreateAction.php rename to src/General/Transport/Rest/Traits/Actions/Authenticated/CreateAction.php index 3ac0cd75..3519af8c 100644 --- a/src/Rest/Traits/Actions/Authenticated/CreateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Authenticated/CreateAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Authenticated; +namespace App\General\Transport\Rest\Traits\Actions\Authenticated; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\CreateMethod; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\CreateMethod; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'createAction' for REST controllers for authenticated users. * - * @see \App\Rest\Traits\Methods\CreateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CreateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Authenticated + * @package App\General */ trait CreateAction { diff --git a/src/Rest/Traits/Actions/Authenticated/DeleteAction.php b/src/General/Transport/Rest/Traits/Actions/Authenticated/DeleteAction.php similarity index 87% rename from src/Rest/Traits/Actions/Authenticated/DeleteAction.php rename to src/General/Transport/Rest/Traits/Actions/Authenticated/DeleteAction.php index 0426e289..b94e996c 100644 --- a/src/Rest/Traits/Actions/Authenticated/DeleteAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Authenticated/DeleteAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Authenticated; +namespace App\General\Transport\Rest\Traits\Actions\Authenticated; -use App\Rest\Traits\Methods\DeleteMethod; +use App\General\Transport\Rest\Traits\Methods\DeleteMethod; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'deleteAction' for REST controllers for authenticated users. * - * @see \App\Rest\Traits\Methods\DeleteMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\DeleteMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Authenticated + * @package App\General */ trait DeleteAction { diff --git a/src/Rest/Traits/Actions/Authenticated/FindAction.php b/src/General/Transport/Rest/Traits/Actions/Authenticated/FindAction.php similarity index 86% rename from src/Rest/Traits/Actions/Authenticated/FindAction.php rename to src/General/Transport/Rest/Traits/Actions/Authenticated/FindAction.php index 1cccd3c7..887ad97f 100644 --- a/src/Rest/Traits/Actions/Authenticated/FindAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Authenticated/FindAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Authenticated; +namespace App\General\Transport\Rest\Traits\Actions\Authenticated; -use App\Rest\Traits\Methods\FindMethod; +use App\General\Transport\Rest\Traits\Methods\FindMethod; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findAction' for REST controllers for authenticated users. * - * @see \App\Rest\Traits\Methods\FindMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Authenticated + * @package App\General */ trait FindAction { diff --git a/src/Rest/Traits/Actions/Authenticated/FindOneAction.php b/src/General/Transport/Rest/Traits/Actions/Authenticated/FindOneAction.php similarity index 87% rename from src/Rest/Traits/Actions/Authenticated/FindOneAction.php rename to src/General/Transport/Rest/Traits/Actions/Authenticated/FindOneAction.php index de0bc4b4..e126469d 100644 --- a/src/Rest/Traits/Actions/Authenticated/FindOneAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Authenticated/FindOneAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Authenticated; +namespace App\General\Transport\Rest\Traits\Actions\Authenticated; -use App\Rest\Traits\Methods\FindOneMethod; +use App\General\Transport\Rest\Traits\Methods\FindOneMethod; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findOneAction' for REST controllers for authenticated users. * - * @see \App\Rest\Traits\Methods\FindOneMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindOneMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Authenticated + * @package App\General */ trait FindOneAction { diff --git a/src/Rest/Traits/Actions/Authenticated/IdsAction.php b/src/General/Transport/Rest/Traits/Actions/Authenticated/IdsAction.php similarity index 86% rename from src/Rest/Traits/Actions/Authenticated/IdsAction.php rename to src/General/Transport/Rest/Traits/Actions/Authenticated/IdsAction.php index 9b9cf677..050c0a13 100644 --- a/src/Rest/Traits/Actions/Authenticated/IdsAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Authenticated/IdsAction.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Authenticated; +namespace App\General\Transport\Rest\Traits\Actions\Authenticated; -use App\Rest\Traits\Methods\IdsMethod; +use App\General\Transport\Rest\Traits\Methods\IdsMethod; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'idsAction' for REST controllers for authenticated users. * - * @see \App\Rest\Traits\Methods\IdsMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\IdsMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Authenticated + * @package App\General */ trait IdsAction { diff --git a/src/Rest/Traits/Actions/Authenticated/PatchAction.php b/src/General/Transport/Rest/Traits/Actions/Authenticated/PatchAction.php similarity index 86% rename from src/Rest/Traits/Actions/Authenticated/PatchAction.php rename to src/General/Transport/Rest/Traits/Actions/Authenticated/PatchAction.php index 8a6752a9..e6ebce7e 100644 --- a/src/Rest/Traits/Actions/Authenticated/PatchAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Authenticated/PatchAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Authenticated; +namespace App\General\Transport\Rest\Traits\Actions\Authenticated; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\PatchMethod; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\PatchMethod; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'patchAction' for REST controllers for authenticated users. * - * @see \App\Rest\Traits\Methods\PatchMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\PatchMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait PatchAction { diff --git a/src/Rest/Traits/Actions/Authenticated/UpdateAction.php b/src/General/Transport/Rest/Traits/Actions/Authenticated/UpdateAction.php similarity index 86% rename from src/Rest/Traits/Actions/Authenticated/UpdateAction.php rename to src/General/Transport/Rest/Traits/Actions/Authenticated/UpdateAction.php index 00f3a219..a029c271 100644 --- a/src/Rest/Traits/Actions/Authenticated/UpdateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Authenticated/UpdateAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Authenticated; +namespace App\General\Transport\Rest\Traits\Actions\Authenticated; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\UpdateMethod; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\UpdateMethod; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'updateAction' for REST controllers for authenticated users. * - * @see \App\Rest\Traits\Methods\UpdateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\UpdateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Authenticated + * @package App\General */ trait UpdateAction { diff --git a/src/Rest/Traits/Actions/Logged/CountAction.php b/src/General/Transport/Rest/Traits/Actions/Logged/CountAction.php similarity index 82% rename from src/Rest/Traits/Actions/Logged/CountAction.php rename to src/General/Transport/Rest/Traits/Actions/Logged/CountAction.php index 669424f1..628d394a 100644 --- a/src/Rest/Traits/Actions/Logged/CountAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Logged/CountAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Logged; +namespace App\General\Transport\Rest\Traits\Actions\Logged; -use App\Rest\Traits\Methods\CountMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\CountMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'countAction' for REST controllers for 'ROLE_LOGGED' users. * - * @see \App\Rest\Traits\Methods\CountMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CountMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Logged + * @package App\General */ trait CountAction { @@ -55,7 +55,7 @@ trait CountAction path: '/count', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_LOGGED)] + #[IsGranted(Role::ROLE_LOGGED)] public function countAction(Request $request): Response { return $this->countMethod($request); diff --git a/src/Rest/Traits/Actions/Logged/CreateAction.php b/src/General/Transport/Rest/Traits/Actions/Logged/CreateAction.php similarity index 81% rename from src/Rest/Traits/Actions/Logged/CreateAction.php rename to src/General/Transport/Rest/Traits/Actions/Logged/CreateAction.php index 47c8c692..65deacde 100644 --- a/src/Rest/Traits/Actions/Logged/CreateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Logged/CreateAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Logged; +namespace App\General\Transport\Rest\Traits\Actions\Logged; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\CreateMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\CreateMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'createAction' for REST controllers for 'ROLE_LOGGED' users. * - * @see \App\Rest\Traits\Methods\CreateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CreateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Logged + * @package App\General */ trait CreateAction { @@ -64,7 +64,7 @@ trait CreateAction path: '', methods: [Request::METHOD_POST], )] - #[IsGranted(RolesService::ROLE_LOGGED)] + #[IsGranted(Role::ROLE_LOGGED)] public function createAction(Request $request, RestDtoInterface $restDto): Response { return $this->createMethod($request, $restDto); diff --git a/src/Rest/Traits/Actions/Logged/DeleteAction.php b/src/General/Transport/Rest/Traits/Actions/Logged/DeleteAction.php similarity index 83% rename from src/Rest/Traits/Actions/Logged/DeleteAction.php rename to src/General/Transport/Rest/Traits/Actions/Logged/DeleteAction.php index 170a3de8..7b8835fe 100644 --- a/src/Rest/Traits/Actions/Logged/DeleteAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Logged/DeleteAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Logged; +namespace App\General\Transport\Rest\Traits\Actions\Logged; -use App\Rest\Traits\Methods\DeleteMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\DeleteMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'deleteAction' for REST controllers for 'ROLE_LOGGED' users. * - * @see \App\Rest\Traits\Methods\DeleteMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\DeleteMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Logged + * @package App\General */ trait DeleteAction { @@ -57,7 +57,7 @@ trait DeleteAction ], methods: [Request::METHOD_DELETE], )] - #[IsGranted(RolesService::ROLE_LOGGED)] + #[IsGranted(Role::ROLE_LOGGED)] public function deleteAction(Request $request, string $id): Response { return $this->deleteMethod($request, $id); diff --git a/src/Rest/Traits/Actions/Logged/FindAction.php b/src/General/Transport/Rest/Traits/Actions/Logged/FindAction.php similarity index 82% rename from src/Rest/Traits/Actions/Logged/FindAction.php rename to src/General/Transport/Rest/Traits/Actions/Logged/FindAction.php index cfe4fc8e..16072524 100644 --- a/src/Rest/Traits/Actions/Logged/FindAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Logged/FindAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Logged; +namespace App\General\Transport\Rest\Traits\Actions\Logged; -use App\Rest\Traits\Methods\FindMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\FindMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findAction' for REST controllers for 'ROLE_LOGGED' users. * - * @see \App\Rest\Traits\Methods\FindMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Logged + * @package App\General */ trait FindAction { @@ -54,7 +54,7 @@ trait FindAction path: '', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_LOGGED)] + #[IsGranted(Role::ROLE_LOGGED)] public function findAction(Request $request): Response { return $this->findMethod($request); diff --git a/src/Rest/Traits/Actions/Logged/FindOneAction.php b/src/General/Transport/Rest/Traits/Actions/Logged/FindOneAction.php similarity index 82% rename from src/Rest/Traits/Actions/Logged/FindOneAction.php rename to src/General/Transport/Rest/Traits/Actions/Logged/FindOneAction.php index 6b38a5d2..c6175d2f 100644 --- a/src/Rest/Traits/Actions/Logged/FindOneAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Logged/FindOneAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Logged; +namespace App\General\Transport\Rest\Traits\Actions\Logged; -use App\Rest\Traits\Methods\FindOneMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\FindOneMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findOneAction' for REST controllers for 'ROLE_LOGGED' users. * - * @see \App\Rest\Traits\Methods\FindOneMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindOneMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Logged + * @package App\General */ trait FindOneAction { @@ -57,7 +57,7 @@ trait FindOneAction ], methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_LOGGED)] + #[IsGranted(Role::ROLE_LOGGED)] public function findOneAction(Request $request, string $id): Response { return $this->findOneMethod($request, $id); diff --git a/src/Rest/Traits/Actions/Logged/IdsAction.php b/src/General/Transport/Rest/Traits/Actions/Logged/IdsAction.php similarity index 82% rename from src/Rest/Traits/Actions/Logged/IdsAction.php rename to src/General/Transport/Rest/Traits/Actions/Logged/IdsAction.php index 374285af..021267df 100644 --- a/src/Rest/Traits/Actions/Logged/IdsAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Logged/IdsAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Logged; +namespace App\General\Transport\Rest\Traits\Actions\Logged; -use App\Rest\Traits\Methods\IdsMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\IdsMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'idsAction' for REST controllers for 'ROLE_LOGGED' users. * - * @see \App\Rest\Traits\Methods\IdsMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\IdsMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Logged + * @package App\General */ trait IdsAction { @@ -54,7 +54,7 @@ trait IdsAction path: '/ids', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_LOGGED)] + #[IsGranted(Role::ROLE_LOGGED)] public function idsAction(Request $request): Response { return $this->idsMethod($request); diff --git a/src/Rest/Traits/Actions/Logged/PatchAction.php b/src/General/Transport/Rest/Traits/Actions/Logged/PatchAction.php similarity index 82% rename from src/Rest/Traits/Actions/Logged/PatchAction.php rename to src/General/Transport/Rest/Traits/Actions/Logged/PatchAction.php index c19030b6..d4c34639 100644 --- a/src/Rest/Traits/Actions/Logged/PatchAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Logged/PatchAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Logged; +namespace App\General\Transport\Rest\Traits\Actions\Logged; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\PatchMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\PatchMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'patchAction' for REST controllers for 'ROLE_LOGGED' users. * - * @see \App\Rest\Traits\Methods\PatchMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\PatchMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait PatchAction { @@ -67,7 +67,7 @@ trait PatchAction ], methods: [Request::METHOD_PATCH], )] - #[IsGranted(RolesService::ROLE_LOGGED)] + #[IsGranted(Role::ROLE_LOGGED)] public function patchAction(Request $request, RestDtoInterface $restDto, string $id): Response { return $this->patchMethod($request, $restDto, $id); diff --git a/src/Rest/Traits/Actions/Logged/UpdateAction.php b/src/General/Transport/Rest/Traits/Actions/Logged/UpdateAction.php similarity index 82% rename from src/Rest/Traits/Actions/Logged/UpdateAction.php rename to src/General/Transport/Rest/Traits/Actions/Logged/UpdateAction.php index 68b094d7..106154ac 100644 --- a/src/Rest/Traits/Actions/Logged/UpdateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Logged/UpdateAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Logged; +namespace App\General\Transport\Rest\Traits\Actions\Logged; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\UpdateMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\UpdateMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'updateAction' for REST controllers for 'ROLE_LOGGED' users. * - * @see \App\Rest\Traits\Methods\UpdateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\UpdateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Logged + * @package App\General */ trait UpdateAction { @@ -67,7 +67,7 @@ trait UpdateAction ], methods: [Request::METHOD_PUT], )] - #[IsGranted(RolesService::ROLE_LOGGED)] + #[IsGranted(Role::ROLE_LOGGED)] public function updateAction(Request $request, RestDtoInterface $restDto, string $id): Response { return $this->updateMethod($request, $restDto, $id); diff --git a/src/Rest/Traits/Actions/RestActionBase.php b/src/General/Transport/Rest/Traits/Actions/RestActionBase.php similarity index 55% rename from src/Rest/Traits/Actions/RestActionBase.php rename to src/General/Transport/Rest/Traits/Actions/RestActionBase.php index 1e82e2f9..7ab56c4d 100644 --- a/src/Rest/Traits/Actions/RestActionBase.php +++ b/src/General/Transport/Rest/Traits/Actions/RestActionBase.php @@ -2,16 +2,17 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions; +namespace App\General\Transport\Rest\Traits\Actions; -use App\Rest\Interfaces\RestResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Application\Rest\Interfaces\RestSmallResourceInterface; use Symfony\Component\HttpFoundation\Request; use Throwable; /** * Trait RestActionBase * - * @package App\Rest\Traits\Methods + * @package App\General */ trait RestActionBase { @@ -20,8 +21,10 @@ trait RestActionBase * * @throws Throwable */ - public function getResourceForMethod(Request $request, array $allowedHttpMethods): RestResourceInterface - { + public function getResourceForMethod( + Request $request, + array $allowedHttpMethods + ): RestResourceInterface|RestSmallResourceInterface { // Make sure that we have everything we need to make this work $this->validateRestMethod($request, $allowedHttpMethods); diff --git a/src/Rest/Traits/Actions/Root/CountAction.php b/src/General/Transport/Rest/Traits/Actions/Root/CountAction.php similarity index 83% rename from src/Rest/Traits/Actions/Root/CountAction.php rename to src/General/Transport/Rest/Traits/Actions/Root/CountAction.php index c716d77e..5751dc21 100644 --- a/src/Rest/Traits/Actions/Root/CountAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Root/CountAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Root; +namespace App\General\Transport\Rest\Traits\Actions\Root; -use App\Rest\Traits\Methods\CountMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\CountMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'countAction' for REST controllers for 'ROLE_ROOT' users. * - * @see \App\Rest\Traits\Methods\CountMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CountMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait CountAction { @@ -55,7 +55,7 @@ trait CountAction path: '/count', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] public function countAction(Request $request): Response { return $this->countMethod($request); diff --git a/src/Rest/Traits/Actions/Root/CreateAction.php b/src/General/Transport/Rest/Traits/Actions/Root/CreateAction.php similarity index 81% rename from src/Rest/Traits/Actions/Root/CreateAction.php rename to src/General/Transport/Rest/Traits/Actions/Root/CreateAction.php index 48bee25a..acaea226 100644 --- a/src/Rest/Traits/Actions/Root/CreateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Root/CreateAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Root; +namespace App\General\Transport\Rest\Traits\Actions\Root; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\CreateMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\CreateMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'createAction' for REST controllers for 'ROLE_ROOT' users. * - * @see \App\Rest\Traits\Methods\CreateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CreateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait CreateAction { @@ -64,7 +64,7 @@ trait CreateAction path: '', methods: [Request::METHOD_POST], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] public function createAction(Request $request, RestDtoInterface $restDto): Response { return $this->createMethod($request, $restDto); diff --git a/src/Rest/Traits/Actions/Root/DeleteAction.php b/src/General/Transport/Rest/Traits/Actions/Root/DeleteAction.php similarity index 83% rename from src/Rest/Traits/Actions/Root/DeleteAction.php rename to src/General/Transport/Rest/Traits/Actions/Root/DeleteAction.php index 78665aa7..4da2e841 100644 --- a/src/Rest/Traits/Actions/Root/DeleteAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Root/DeleteAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Root; +namespace App\General\Transport\Rest\Traits\Actions\Root; -use App\Rest\Traits\Methods\DeleteMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\DeleteMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'deleteAction' for REST controllers for 'ROLE_ROOT' users. * - * @see \App\Rest\Traits\Methods\DeleteMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\DeleteMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait DeleteAction { @@ -57,7 +57,7 @@ trait DeleteAction ], methods: [Request::METHOD_DELETE], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] public function deleteAction(Request $request, string $id): Response { return $this->deleteMethod($request, $id); diff --git a/src/Rest/Traits/Actions/Root/FindAction.php b/src/General/Transport/Rest/Traits/Actions/Root/FindAction.php similarity index 82% rename from src/Rest/Traits/Actions/Root/FindAction.php rename to src/General/Transport/Rest/Traits/Actions/Root/FindAction.php index 24942f37..42f73949 100644 --- a/src/Rest/Traits/Actions/Root/FindAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Root/FindAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Root; +namespace App\General\Transport\Rest\Traits\Actions\Root; -use App\Rest\Traits\Methods\FindMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\FindMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findAction' for REST controllers for 'ROLE_ROOT' users. * - * @see \App\Rest\Traits\Methods\FindMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait FindAction { @@ -54,7 +54,7 @@ trait FindAction path: '', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] public function findAction(Request $request): Response { return $this->findMethod($request); diff --git a/src/Rest/Traits/Actions/Root/FindOneAction.php b/src/General/Transport/Rest/Traits/Actions/Root/FindOneAction.php similarity index 83% rename from src/Rest/Traits/Actions/Root/FindOneAction.php rename to src/General/Transport/Rest/Traits/Actions/Root/FindOneAction.php index db7d2979..6e6b0eb2 100644 --- a/src/Rest/Traits/Actions/Root/FindOneAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Root/FindOneAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Root; +namespace App\General\Transport\Rest\Traits\Actions\Root; -use App\Rest\Traits\Methods\FindOneMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\FindOneMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findOneAction' for REST controllers for 'ROLE_ROOT' users. * - * @see \App\Rest\Traits\Methods\FindOneMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindOneMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait FindOneAction { @@ -57,7 +57,7 @@ trait FindOneAction ], methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] public function findOneAction(Request $request, string $id): Response { return $this->findOneMethod($request, $id); diff --git a/src/Rest/Traits/Actions/Root/IdsAction.php b/src/General/Transport/Rest/Traits/Actions/Root/IdsAction.php similarity index 82% rename from src/Rest/Traits/Actions/Root/IdsAction.php rename to src/General/Transport/Rest/Traits/Actions/Root/IdsAction.php index fa0a0c0f..429e8eb2 100644 --- a/src/Rest/Traits/Actions/Root/IdsAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Root/IdsAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Root; +namespace App\General\Transport\Rest\Traits\Actions\Root; -use App\Rest\Traits\Methods\IdsMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\IdsMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'idsAction' for REST controllers for 'ROLE_ROOT' users. * - * @see \App\Rest\Traits\Methods\IdsMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\IdsMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait IdsAction { @@ -54,7 +54,7 @@ trait IdsAction path: '/ids', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] public function idsAction(Request $request): Response { return $this->idsMethod($request); diff --git a/src/Rest/Traits/Actions/Root/PatchAction.php b/src/General/Transport/Rest/Traits/Actions/Root/PatchAction.php similarity index 82% rename from src/Rest/Traits/Actions/Root/PatchAction.php rename to src/General/Transport/Rest/Traits/Actions/Root/PatchAction.php index 8a8e3d76..32d80958 100644 --- a/src/Rest/Traits/Actions/Root/PatchAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Root/PatchAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Root; +namespace App\General\Transport\Rest\Traits\Actions\Root; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\PatchMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\PatchMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'patchAction' for REST controllers for 'ROLE_ROOT' users. * - * @see \App\Rest\Traits\Methods\PatchMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\PatchMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait PatchAction { @@ -67,7 +67,7 @@ trait PatchAction ], methods: [Request::METHOD_PATCH], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] public function patchAction(Request $request, RestDtoInterface $restDto, string $id): Response { return $this->patchMethod($request, $restDto, $id); diff --git a/src/Rest/Traits/Actions/Root/UpdateAction.php b/src/General/Transport/Rest/Traits/Actions/Root/UpdateAction.php similarity index 82% rename from src/Rest/Traits/Actions/Root/UpdateAction.php rename to src/General/Transport/Rest/Traits/Actions/Root/UpdateAction.php index d84a4bc1..01981ed6 100644 --- a/src/Rest/Traits/Actions/Root/UpdateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/Root/UpdateAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\Root; +namespace App\General\Transport\Rest\Traits\Actions\Root; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\UpdateMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\UpdateMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'updateAction' for REST controllers for 'ROLE_ROOT' users. * - * @see \App\Rest\Traits\Methods\UpdateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\UpdateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait UpdateAction { @@ -67,7 +67,7 @@ trait UpdateAction ], methods: [Request::METHOD_PUT], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] public function updateAction(Request $request, RestDtoInterface $restDto, string $id): Response { return $this->updateMethod($request, $restDto, $id); diff --git a/src/Rest/Traits/Actions/User/CountAction.php b/src/General/Transport/Rest/Traits/Actions/User/CountAction.php similarity index 83% rename from src/Rest/Traits/Actions/User/CountAction.php rename to src/General/Transport/Rest/Traits/Actions/User/CountAction.php index 84d15f3e..77ded182 100644 --- a/src/Rest/Traits/Actions/User/CountAction.php +++ b/src/General/Transport/Rest/Traits/Actions/User/CountAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\User; +namespace App\General\Transport\Rest\Traits\Actions\User; -use App\Rest\Traits\Methods\CountMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\CountMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'countAction' for REST controllers for 'ROLE_USER' users. * - * @see \App\Rest\Traits\Methods\CountMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CountMethod for detailed documents. * - * @package App\Rest\Traits\Actions\User + * @package App\General */ trait CountAction { @@ -55,7 +55,7 @@ trait CountAction path: '/count', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_USER)] + #[IsGranted(Role::ROLE_USER)] public function countAction(Request $request): Response { return $this->countMethod($request); diff --git a/src/Rest/Traits/Actions/User/CreateAction.php b/src/General/Transport/Rest/Traits/Actions/User/CreateAction.php similarity index 81% rename from src/Rest/Traits/Actions/User/CreateAction.php rename to src/General/Transport/Rest/Traits/Actions/User/CreateAction.php index fe0b78fa..ee856329 100644 --- a/src/Rest/Traits/Actions/User/CreateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/User/CreateAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\User; +namespace App\General\Transport\Rest\Traits\Actions\User; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\CreateMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\CreateMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'createAction' for REST controllers for 'ROLE_USER' users. * - * @see \App\Rest\Traits\Methods\CreateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\CreateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\User + * @package App\General */ trait CreateAction { @@ -64,7 +64,7 @@ trait CreateAction path: '', methods: [Request::METHOD_POST], )] - #[IsGranted(RolesService::ROLE_USER)] + #[IsGranted(Role::ROLE_USER)] public function createAction(Request $request, RestDtoInterface $restDto): Response { return $this->createMethod($request, $restDto); diff --git a/src/Rest/Traits/Actions/User/DeleteAction.php b/src/General/Transport/Rest/Traits/Actions/User/DeleteAction.php similarity index 83% rename from src/Rest/Traits/Actions/User/DeleteAction.php rename to src/General/Transport/Rest/Traits/Actions/User/DeleteAction.php index b8bb9a2d..187523a6 100644 --- a/src/Rest/Traits/Actions/User/DeleteAction.php +++ b/src/General/Transport/Rest/Traits/Actions/User/DeleteAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\User; +namespace App\General\Transport\Rest\Traits\Actions\User; -use App\Rest\Traits\Methods\DeleteMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\DeleteMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'deleteAction' for REST controllers for 'ROLE_USER' users. * - * @see \App\Rest\Traits\Methods\DeleteMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\DeleteMethod for detailed documents. * - * @package App\Rest\Traits\Actions\User + * @package App\General */ trait DeleteAction { @@ -57,7 +57,7 @@ trait DeleteAction ], methods: [Request::METHOD_DELETE], )] - #[IsGranted(RolesService::ROLE_USER)] + #[IsGranted(Role::ROLE_USER)] public function deleteAction(Request $request, string $id): Response { return $this->deleteMethod($request, $id); diff --git a/src/Rest/Traits/Actions/User/FindAction.php b/src/General/Transport/Rest/Traits/Actions/User/FindAction.php similarity index 82% rename from src/Rest/Traits/Actions/User/FindAction.php rename to src/General/Transport/Rest/Traits/Actions/User/FindAction.php index 855f6169..b4798e93 100644 --- a/src/Rest/Traits/Actions/User/FindAction.php +++ b/src/General/Transport/Rest/Traits/Actions/User/FindAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\User; +namespace App\General\Transport\Rest\Traits\Actions\User; -use App\Rest\Traits\Methods\FindMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\FindMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findAction' for REST controllers for 'ROLE_USER' users. * - * @see \App\Rest\Traits\Methods\FindMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindMethod for detailed documents. * - * @package App\Rest\Traits\Actions\User + * @package App\General */ trait FindAction { @@ -54,7 +54,7 @@ trait FindAction path: '', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_USER)] + #[IsGranted(Role::ROLE_USER)] public function findAction(Request $request): Response { return $this->findMethod($request); diff --git a/src/Rest/Traits/Actions/User/FindOneAction.php b/src/General/Transport/Rest/Traits/Actions/User/FindOneAction.php similarity index 83% rename from src/Rest/Traits/Actions/User/FindOneAction.php rename to src/General/Transport/Rest/Traits/Actions/User/FindOneAction.php index 72d1a938..97e0e127 100644 --- a/src/Rest/Traits/Actions/User/FindOneAction.php +++ b/src/General/Transport/Rest/Traits/Actions/User/FindOneAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\User; +namespace App\General\Transport\Rest\Traits\Actions\User; -use App\Rest\Traits\Methods\FindOneMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\FindOneMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'findOneAction' for REST controllers for 'ROLE_USER' users. * - * @see \App\Rest\Traits\Methods\FindOneMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\FindOneMethod for detailed documents. * - * @package App\Rest\Traits\Actions\User + * @package App\General */ trait FindOneAction { @@ -57,7 +57,7 @@ trait FindOneAction ], methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_USER)] + #[IsGranted(Role::ROLE_USER)] public function findOneAction(Request $request, string $id): Response { return $this->findOneMethod($request, $id); diff --git a/src/Rest/Traits/Actions/User/IdsAction.php b/src/General/Transport/Rest/Traits/Actions/User/IdsAction.php similarity index 82% rename from src/Rest/Traits/Actions/User/IdsAction.php rename to src/General/Transport/Rest/Traits/Actions/User/IdsAction.php index 7b600f04..2ca3ab5e 100644 --- a/src/Rest/Traits/Actions/User/IdsAction.php +++ b/src/General/Transport/Rest/Traits/Actions/User/IdsAction.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\User; +namespace App\General\Transport\Rest\Traits\Actions\User; -use App\Rest\Traits\Methods\IdsMethod; -use App\Security\RolesService; +use App\General\Transport\Rest\Traits\Methods\IdsMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -18,9 +18,9 @@ * * Trait to add 'idsAction' for REST controllers for 'ROLE_USER' users. * - * @see \App\Rest\Traits\Methods\IdsMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\IdsMethod for detailed documents. * - * @package App\Rest\Traits\Actions\User + * @package App\General */ trait IdsAction { @@ -54,7 +54,7 @@ trait IdsAction path: '/ids', methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_USER)] + #[IsGranted(Role::ROLE_USER)] public function idsAction(Request $request): Response { return $this->idsMethod($request); diff --git a/src/Rest/Traits/Actions/User/PatchAction.php b/src/General/Transport/Rest/Traits/Actions/User/PatchAction.php similarity index 82% rename from src/Rest/Traits/Actions/User/PatchAction.php rename to src/General/Transport/Rest/Traits/Actions/User/PatchAction.php index 7eac1593..19b3920d 100644 --- a/src/Rest/Traits/Actions/User/PatchAction.php +++ b/src/General/Transport/Rest/Traits/Actions/User/PatchAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\User; +namespace App\General\Transport\Rest\Traits\Actions\User; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\PatchMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\PatchMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'patchAction' for REST controllers for 'ROLE_USER' users. * - * @see \App\Rest\Traits\Methods\PatchMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\PatchMethod for detailed documents. * - * @package App\Rest\Traits\Actions\Root + * @package App\General */ trait PatchAction { @@ -67,7 +67,7 @@ trait PatchAction ], methods: [Request::METHOD_PATCH], )] - #[IsGranted(RolesService::ROLE_USER)] + #[IsGranted(Role::ROLE_USER)] public function patchAction(Request $request, RestDtoInterface $restDto, string $id): Response { return $this->patchMethod($request, $restDto, $id); diff --git a/src/Rest/Traits/Actions/User/UpdateAction.php b/src/General/Transport/Rest/Traits/Actions/User/UpdateAction.php similarity index 82% rename from src/Rest/Traits/Actions/User/UpdateAction.php rename to src/General/Transport/Rest/Traits/Actions/User/UpdateAction.php index ccee0807..168a97e9 100644 --- a/src/Rest/Traits/Actions/User/UpdateAction.php +++ b/src/General/Transport/Rest/Traits/Actions/User/UpdateAction.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits\Actions\User; +namespace App\General\Transport\Rest\Traits\Actions\User; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Traits\Methods\UpdateMethod; -use App\Security\RolesService; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Traits\Methods\UpdateMethod; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\Request; @@ -19,9 +19,9 @@ * * Trait to add 'updateAction' for REST controllers for 'ROLE_USER' users. * - * @see \App\Rest\Traits\Methods\UpdateMethod for detailed documents. + * @see \App\General\Transport\Rest\Traits\Methods\UpdateMethod for detailed documents. * - * @package App\Rest\Traits\Actions\User + * @package App\General */ trait UpdateAction { @@ -67,7 +67,7 @@ trait UpdateAction ], methods: [Request::METHOD_PUT], )] - #[IsGranted(RolesService::ROLE_USER)] + #[IsGranted(Role::ROLE_USER)] public function updateAction(Request $request, RestDtoInterface $restDto, string $id): Response { return $this->updateMethod($request, $restDto, $id); diff --git a/src/Rest/Traits/Methods/CountMethod.php b/src/General/Transport/Rest/Traits/Methods/CountMethod.php similarity index 60% rename from src/Rest/Traits/Methods/CountMethod.php rename to src/General/Transport/Rest/Traits/Methods/CountMethod.php index b9d935b2..a28e3302 100644 --- a/src/Rest/Traits/Methods/CountMethod.php +++ b/src/General/Transport/Rest/Traits/Methods/CountMethod.php @@ -2,10 +2,12 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; -use App\Rest\RequestHandler; -use App\Rest\ResponseHandler; +use App\General\Application\Rest\Interfaces\RestCountResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Transport\Rest\RequestHandler; +use App\General\Transport\Rest\ResponseHandler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Throwable; @@ -13,7 +15,7 @@ /** * Trait CountMethod * - * @package App\Rest\Traits\Methods + * @package App\General * * @method ResponseHandler getResponseHandler() */ @@ -28,21 +30,26 @@ trait CountMethod */ public function countMethod(Request $request, ?array $allowedHttpMethods = null): Response { + /** @var RestResourceInterface|RestCountResourceInterface $resource */ $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_GET]); // Determine used parameters $search = RequestHandler::getSearchTerms($request); try { $criteria = RequestHandler::getCriteria($request); + $entityManagerName = RequestHandler::getTenant($request); $this->processCriteria($criteria, $request, __METHOD__); return $this ->getResponseHandler() ->createResponse($request, [ - 'count' => $resource->count($criteria, $search), - ], $resource); + 'count' => $resource->count($criteria, $search, $entityManagerName), + ], $resource); /** @phpstan-ignore-line */ } catch (Throwable $exception) { - throw $this->handleRestMethodException($exception); + throw $this->handleRestMethodException( + exception: $exception, + entityManagerName: $entityManagerName ?? null + ); } } } diff --git a/src/Rest/Traits/Methods/CreateMethod.php b/src/General/Transport/Rest/Traits/Methods/CreateMethod.php similarity index 51% rename from src/Rest/Traits/Methods/CreateMethod.php rename to src/General/Transport/Rest/Traits/Methods/CreateMethod.php index 42a09e74..f1147f64 100644 --- a/src/Rest/Traits/Methods/CreateMethod.php +++ b/src/General/Transport/Rest/Traits/Methods/CreateMethod.php @@ -2,10 +2,13 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\ResponseHandler; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Application\Rest\Interfaces\RestCreateResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Transport\Rest\RequestHandler; +use App\General\Transport\Rest\ResponseHandler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Throwable; @@ -13,7 +16,7 @@ /** * Trait CreateMethod * - * @package App\Rest\Traits\Methods + * @package App\General * * @method ResponseHandler getResponseHandler() */ @@ -31,16 +34,21 @@ public function createMethod( RestDtoInterface $restDto, ?array $allowedHttpMethods = null, ): Response { + /** @var RestResourceInterface|RestCreateResourceInterface $resource */ $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_POST]); try { - $data = $resource->create($restDto, true); + $entityManagerName = RequestHandler::getTenant($request); + $data = $resource->create(dto: $restDto, flush: true, entityManagerName: $entityManagerName); return $this ->getResponseHandler() - ->createResponse($request, $data, $resource, Response::HTTP_CREATED); + ->createResponse($request, $data, $resource, Response::HTTP_CREATED); /** @phpstan-ignore-line */ } catch (Throwable $exception) { - throw $this->handleRestMethodException($exception); + throw $this->handleRestMethodException( + exception: $exception, + entityManagerName: $entityManagerName ?? null + ); } } } diff --git a/src/Rest/Traits/Methods/DeleteMethod.php b/src/General/Transport/Rest/Traits/Methods/DeleteMethod.php similarity index 54% rename from src/Rest/Traits/Methods/DeleteMethod.php rename to src/General/Transport/Rest/Traits/Methods/DeleteMethod.php index 04686772..83cf1a4d 100644 --- a/src/Rest/Traits/Methods/DeleteMethod.php +++ b/src/General/Transport/Rest/Traits/Methods/DeleteMethod.php @@ -2,9 +2,12 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; -use App\Rest\ResponseHandler; +use App\General\Application\Rest\Interfaces\RestDeleteResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Transport\Rest\RequestHandler; +use App\General\Transport\Rest\ResponseHandler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Throwable; @@ -12,7 +15,7 @@ /** * Trait DeleteMethod * - * @package App\Rest\Traits\Methods + * @package App\General * * @method ResponseHandler getResponseHandler() */ @@ -27,15 +30,22 @@ trait DeleteMethod */ public function deleteMethod(Request $request, string $id, ?array $allowedHttpMethods = null): Response { + /** @var RestResourceInterface|RestDeleteResourceInterface $resource */ $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_DELETE]); try { + $entityManagerName = RequestHandler::getTenant($request); + // Fetch data from database return $this ->getResponseHandler() - ->createResponse($request, $resource->delete($id), $resource); + ->createResponse( + $request, + $resource->delete(id: $id, entityManagerName: $entityManagerName), /** @phpstan-ignore-next-line */ + $resource + ); } catch (Throwable $exception) { - throw $this->handleRestMethodException($exception, $id); + throw $this->handleRestMethodException($exception, $id, $entityManagerName ?? null); } } } diff --git a/src/Rest/Traits/Methods/FindMethod.php b/src/General/Transport/Rest/Traits/Methods/FindMethod.php similarity index 52% rename from src/Rest/Traits/Methods/FindMethod.php rename to src/General/Transport/Rest/Traits/Methods/FindMethod.php index 42787217..9e3db339 100644 --- a/src/Rest/Traits/Methods/FindMethod.php +++ b/src/General/Transport/Rest/Traits/Methods/FindMethod.php @@ -2,10 +2,12 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; -use App\Rest\RequestHandler; -use App\Rest\ResponseHandler; +use App\General\Application\Rest\Interfaces\RestListResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Transport\Rest\RequestHandler; +use App\General\Transport\Rest\ResponseHandler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Throwable; @@ -13,7 +15,7 @@ /** * Trait FindMethod * - * @package App\Rest\Traits\Methods + * @package App\General * * @method ResponseHandler getResponseHandler() */ @@ -28,6 +30,7 @@ trait FindMethod */ public function findMethod(Request $request, ?array $allowedHttpMethods = null): Response { + /** @var RestResourceInterface|RestListResourceInterface $resource */ $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_GET]); // Determine used parameters $orderBy = RequestHandler::getOrderBy($request); @@ -37,13 +40,28 @@ public function findMethod(Request $request, ?array $allowedHttpMethods = null): try { $criteria = RequestHandler::getCriteria($request); + $entityManagerName = RequestHandler::getTenant($request); $this->processCriteria($criteria, $request, __METHOD__); return $this ->getResponseHandler() - ->createResponse($request, $resource->find($criteria, $orderBy, $limit, $offset, $search), $resource); + ->createResponse( + $request, + $resource->find( + $criteria, + $orderBy, + $limit, + $offset, + $search, + $entityManagerName + ), /** @phpstan-ignore-next-line */ + $resource + ); } catch (Throwable $exception) { - throw $this->handleRestMethodException($exception); + throw $this->handleRestMethodException( + exception: $exception, + entityManagerName: $entityManagerName ?? null + ); } } } diff --git a/src/General/Transport/Rest/Traits/Methods/FindOneByMethod.php b/src/General/Transport/Rest/Traits/Methods/FindOneByMethod.php new file mode 100644 index 00000000..b6c2722b --- /dev/null +++ b/src/General/Transport/Rest/Traits/Methods/FindOneByMethod.php @@ -0,0 +1,50 @@ +> $criteria + * @param array|null $allowedHttpMethods + * + * @throws Throwable + */ + public function findOneByMethod(Request $request, array $criteria, ?array $allowedHttpMethods = null): Response + { + $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_GET]); + + try { + $orderBy = RequestHandler::getOrderBy($request); + $entityManagerName = RequestHandler::getTenant($request); + + // Fetch data from database + return $this + ->getResponseHandler() + ->createResponse( + $request, + $resource->findOneBy($criteria, $orderBy, true, $entityManagerName), + $resource + ); + } catch (Throwable $exception) { + throw $this->handleRestMethodException($exception, $criteria['id'] ?? null, $entityManagerName ?? null); + } + } +} diff --git a/src/Rest/Traits/Methods/FindOneMethod.php b/src/General/Transport/Rest/Traits/Methods/FindOneMethod.php similarity index 55% rename from src/Rest/Traits/Methods/FindOneMethod.php rename to src/General/Transport/Rest/Traits/Methods/FindOneMethod.php index 1ef902f2..1875d5c3 100644 --- a/src/Rest/Traits/Methods/FindOneMethod.php +++ b/src/General/Transport/Rest/Traits/Methods/FindOneMethod.php @@ -2,9 +2,12 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; -use App\Rest\ResponseHandler; +use App\General\Application\Rest\Interfaces\RestFindOneResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Transport\Rest\RequestHandler; +use App\General\Transport\Rest\ResponseHandler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Throwable; @@ -12,7 +15,7 @@ /** * Trait FindOneMethod * - * @package App\Rest\Traits\Methods + * @package App\General * * @method ResponseHandler getResponseHandler() */ @@ -27,15 +30,22 @@ trait FindOneMethod */ public function findOneMethod(Request $request, string $id, ?array $allowedHttpMethods = null): Response { + /** @var RestResourceInterface|RestFindOneResourceInterface $resource */ $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_GET]); try { + $entityManagerName = RequestHandler::getTenant($request); + // Fetch data from database return $this ->getResponseHandler() - ->createResponse($request, $resource->findOne($id, true), $resource); + ->createResponse( + $request, + $resource->findOne($id, true, $entityManagerName), /** @phpstan-ignore-next-line */ + $resource + ); } catch (Throwable $exception) { - throw $this->handleRestMethodException($exception, $id); + throw $this->handleRestMethodException($exception, $id, $entityManagerName ?? null); } } } diff --git a/src/Rest/Traits/Methods/IdsMethod.php b/src/General/Transport/Rest/Traits/Methods/IdsMethod.php similarity index 53% rename from src/Rest/Traits/Methods/IdsMethod.php rename to src/General/Transport/Rest/Traits/Methods/IdsMethod.php index c66aca0b..b0b58656 100644 --- a/src/Rest/Traits/Methods/IdsMethod.php +++ b/src/General/Transport/Rest/Traits/Methods/IdsMethod.php @@ -2,10 +2,12 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; -use App\Rest\RequestHandler; -use App\Rest\ResponseHandler; +use App\General\Application\Rest\Interfaces\RestIdsResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Transport\Rest\RequestHandler; +use App\General\Transport\Rest\ResponseHandler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Throwable; @@ -13,7 +15,7 @@ /** * Trait IdsMethod * - * @package App\Rest\Traits\Methods + * @package App\General * * @method ResponseHandler getResponseHandler() */ @@ -28,19 +30,28 @@ trait IdsMethod */ public function idsMethod(Request $request, ?array $allowedHttpMethods = null): Response { + /** @var RestResourceInterface|RestIdsResourceInterface $resource */ $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_GET]); // Determine used parameters $search = RequestHandler::getSearchTerms($request); try { $criteria = RequestHandler::getCriteria($request); + $entityManagerName = RequestHandler::getTenant($request); $this->processCriteria($criteria, $request, __METHOD__); return $this ->getResponseHandler() - ->createResponse($request, $resource->getIds($criteria, $search), $resource); + ->createResponse( + $request, + $resource->getIds($criteria, $search, $entityManagerName), /** @phpstan-ignore-next-line */ + $resource + ); } catch (Throwable $exception) { - throw $this->handleRestMethodException($exception); + throw $this->handleRestMethodException( + exception: $exception, + entityManagerName: $entityManagerName ?? null + ); } } } diff --git a/src/Rest/Traits/Methods/PatchMethod.php b/src/General/Transport/Rest/Traits/Methods/PatchMethod.php similarity index 55% rename from src/Rest/Traits/Methods/PatchMethod.php rename to src/General/Transport/Rest/Traits/Methods/PatchMethod.php index 5e09fa66..ac6eeeb0 100644 --- a/src/Rest/Traits/Methods/PatchMethod.php +++ b/src/General/Transport/Rest/Traits/Methods/PatchMethod.php @@ -2,10 +2,13 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\ResponseHandler; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Application\Rest\Interfaces\RestPatchResourceInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Transport\Rest\RequestHandler; +use App\General\Transport\Rest\ResponseHandler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Throwable; @@ -13,7 +16,7 @@ /** * Trait PatchMethod * - * @package App\Rest\Traits\Methods + * @package App\General * * @method ResponseHandler getResponseHandler() */ @@ -32,14 +35,16 @@ public function patchMethod( string $id, ?array $allowedHttpMethods = null, ): Response { + /** @var RestResourceInterface|RestPatchResourceInterface $resource */ $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_PATCH]); try { - $data = $resource->patch($id, $restDto, true); + $entityManagerName = RequestHandler::getTenant($request); + $data = $resource->patch(id: $id, dto: $restDto, flush: true, entityManagerName: $entityManagerName); - return $this->getResponseHandler()->createResponse($request, $data, $resource); + return $this->getResponseHandler()->createResponse($request, $data, $resource); /** @phpstan-ignore-line */ } catch (Throwable $exception) { - throw $this->handleRestMethodException($exception, $id); + throw $this->handleRestMethodException($exception, $id, $entityManagerName ?? null); } } } diff --git a/src/Rest/Traits/Methods/RestMethodProcessCriteria.php b/src/General/Transport/Rest/Traits/Methods/RestMethodProcessCriteria.php similarity index 83% rename from src/Rest/Traits/Methods/RestMethodProcessCriteria.php rename to src/General/Transport/Rest/Traits/Methods/RestMethodProcessCriteria.php index eb5ce55c..85ed290f 100644 --- a/src/Rest/Traits/Methods/RestMethodProcessCriteria.php +++ b/src/General/Transport/Rest/Traits/Methods/RestMethodProcessCriteria.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; use Symfony\Component\HttpFoundation\Request; /** * Trait RestMethodProcessCriteria * - * @package App\Rest\Traits\Methods + * @package App\General */ trait RestMethodProcessCriteria { diff --git a/src/Rest/Traits/Methods/UpdateMethod.php b/src/General/Transport/Rest/Traits/Methods/UpdateMethod.php similarity index 55% rename from src/Rest/Traits/Methods/UpdateMethod.php rename to src/General/Transport/Rest/Traits/Methods/UpdateMethod.php index 69749718..82fafd3b 100644 --- a/src/Rest/Traits/Methods/UpdateMethod.php +++ b/src/General/Transport/Rest/Traits/Methods/UpdateMethod.php @@ -2,10 +2,13 @@ declare(strict_types=1); -namespace App\Rest\Traits\Methods; +namespace App\General\Transport\Rest\Traits\Methods; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\ResponseHandler; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Application\Rest\Interfaces\RestResourceInterface; +use App\General\Application\Rest\Interfaces\RestUpdateResourceInterface; +use App\General\Transport\Rest\RequestHandler; +use App\General\Transport\Rest\ResponseHandler; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Throwable; @@ -13,7 +16,7 @@ /** * Trait UpdateMethod * - * @package App\Rest\Traits\Methods + * @package App\General * * @method ResponseHandler getResponseHandler() */ @@ -32,14 +35,16 @@ public function updateMethod( string $id, ?array $allowedHttpMethods = null, ): Response { + /** @var RestResourceInterface|RestUpdateResourceInterface $resource */ $resource = $this->getResourceForMethod($request, $allowedHttpMethods ?? [Request::METHOD_PUT]); try { - $data = $resource->update($id, $restDto, true); + $entityManagerName = RequestHandler::getTenant($request); + $data = $resource->update(id: $id, dto: $restDto, flush: true, entityManagerName: $entityManagerName); - return $this->getResponseHandler()->createResponse($request, $data, $resource); + return $this->getResponseHandler()->createResponse($request, $data, $resource); /** @phpstan-ignore-line */ } catch (Throwable $exception) { - throw $this->handleRestMethodException($exception, $id); + throw $this->handleRestMethodException($exception, $id, $entityManagerName ?? null); } } } diff --git a/src/Rest/Traits/RestMethodHelper.php b/src/General/Transport/Rest/Traits/RestMethodHelper.php similarity index 86% rename from src/Rest/Traits/RestMethodHelper.php rename to src/General/Transport/Rest/Traits/RestMethodHelper.php index 3c3f2413..d3e08b7c 100644 --- a/src/Rest/Traits/RestMethodHelper.php +++ b/src/General/Transport/Rest/Traits/RestMethodHelper.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Rest\Traits; +namespace App\General\Transport\Rest\Traits; -use App\DTO\Interfaces\RestDtoInterface; -use App\Rest\Interfaces\ControllerInterface; -use App\Rest\Traits\Methods\RestMethodProcessCriteria; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Transport\Rest\Interfaces\ControllerInterface; +use App\General\Transport\Rest\Traits\Methods\RestMethodProcessCriteria; use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\NoResultException; use Doctrine\ORM\UnitOfWork; @@ -28,7 +28,7 @@ /** * Trait RestMethodHelper * - * @package App\Rest\Traits + * @package App\General */ trait RestMethodHelper { @@ -98,10 +98,13 @@ public function validateRestMethod(Request $request, array $allowedHttpMethods): * * @throws Throwable */ - public function handleRestMethodException(Throwable $exception, ?string $id = null): Throwable - { + public function handleRestMethodException( + Throwable $exception, + ?string $id = null, + ?string $entityManagerName = null + ): Throwable { if ($id !== null) { - $this->detachEntityFromManager($id); + $this->detachEntityFromManager($id, $entityManagerName); } return $this->determineOutputAndStatusCodeForRestMethodException($exception); @@ -122,12 +125,12 @@ private function getExceptionCode(Throwable $exception): int * * @throws Throwable */ - private function detachEntityFromManager(string $id): void + private function detachEntityFromManager(string $id, ?string $entityManagerName): void { $currentResource = $this->getResource(); - $entityManager = $currentResource->getRepository()->getEntityManager(); + $entityManager = $currentResource->getRepository()->getEntityManager($entityManagerName); // Fetch entity - $entity = $currentResource->getRepository()->find($id); + $entity = $currentResource->getRepository()->find(id: $id, entityManagerName: $entityManagerName); // Detach entity from manager if it's been managed by it if ( diff --git a/src/Utils/Tests/Auth.php b/src/General/Transport/Utils/Tests/Auth.php similarity index 97% rename from src/Utils/Tests/Auth.php rename to src/General/Transport/Utils/Tests/Auth.php index c5a4d0ee..2985e329 100644 --- a/src/Utils/Tests/Auth.php +++ b/src/General/Transport/Utils/Tests/Auth.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Utils\Tests; +namespace App\General\Transport\Utils\Tests; -use App\Utils\JSON; +use App\General\Domain\Utils\JSON; use JsonException; use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Component\HttpKernel\KernelInterface; @@ -28,7 +28,7 @@ /** * Class Auth * - * @package App\Utils\Tests + * @package App\General */ class Auth { diff --git a/src/Utils/Tests/RestIntegrationControllerTestCase.php b/src/General/Transport/Utils/Tests/RestIntegrationControllerTestCase.php similarity index 92% rename from src/Utils/Tests/RestIntegrationControllerTestCase.php rename to src/General/Transport/Utils/Tests/RestIntegrationControllerTestCase.php index 5aab39e1..51f9ee3b 100644 --- a/src/Utils/Tests/RestIntegrationControllerTestCase.php +++ b/src/General/Transport/Utils/Tests/RestIntegrationControllerTestCase.php @@ -2,13 +2,14 @@ declare(strict_types=1); -namespace App\Utils\Tests; +namespace App\General\Transport\Utils\Tests; -use App\Rest\Controller; +use App\General\Transport\Rest\Controller; use ReflectionClass; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use UnexpectedValueException; +use function assert; use function gc_collect_cycles; use function gc_enable; use function mb_substr; @@ -17,7 +18,7 @@ /** * Class RestIntegrationControllerTestCase * - * @package App\Utils\Tests + * @package App\General */ abstract class RestIntegrationControllerTestCase extends KernelTestCase { @@ -44,6 +45,7 @@ protected function setUp(): void /** @var Controller $controller */ $controller = self::getContainer()->get($this->controllerClass); + assert($controller instanceof Controller); $this->controller = $controller; } diff --git a/src/Utils/Tests/RestTraitTestCase.php b/src/General/Transport/Utils/Tests/RestTraitTestCase.php similarity index 99% rename from src/Utils/Tests/RestTraitTestCase.php rename to src/General/Transport/Utils/Tests/RestTraitTestCase.php index dc3e39d3..1005c615 100644 --- a/src/Utils/Tests/RestTraitTestCase.php +++ b/src/General/Transport/Utils/Tests/RestTraitTestCase.php @@ -2,8 +2,9 @@ declare(strict_types=1); -namespace App\Utils\Tests; +namespace App\General\Transport\Utils\Tests; +use App\General\Application\Utils\Tests\PhpUnitUtil; use Generator; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -16,7 +17,7 @@ * * @codeCoverageIgnore * - * @package App\Utils\Tests + * @package App\General */ abstract class RestTraitTestCase extends WebTestCase { diff --git a/src/Utils/Tests/WebTestCase.php b/src/General/Transport/Utils/Tests/WebTestCase.php similarity index 97% rename from src/Utils/Tests/WebTestCase.php rename to src/General/Transport/Utils/Tests/WebTestCase.php index d3adafb9..d006627d 100644 --- a/src/Utils/Tests/WebTestCase.php +++ b/src/General/Transport/Utils/Tests/WebTestCase.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Utils\Tests; +namespace App\General\Transport\Utils\Tests; use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase as BaseWebTestCase; @@ -15,7 +15,7 @@ /** * Class WebTestCase * - * @package App\Tests + * @package App\General */ abstract class WebTestCase extends BaseWebTestCase { diff --git a/src/Kernel.php b/src/Kernel.php index c28147f8..830d8089 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -4,7 +4,7 @@ namespace App; -use App\Compiler\StopwatchCompilerPass; +use App\General\Application\Compiler\StopwatchCompilerPass; use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\HttpKernel\Kernel as BaseKernel; diff --git a/src/Log/Application/Resource/LogLoginFailureResource.php b/src/Log/Application/Resource/LogLoginFailureResource.php new file mode 100644 index 00000000..bb1fe8ca --- /dev/null +++ b/src/Log/Application/Resource/LogLoginFailureResource.php @@ -0,0 +1,55 @@ +getRepository()->clear($user); + } +} diff --git a/src/Log/Application/Resource/LogLoginResource.php b/src/Log/Application/Resource/LogLoginResource.php new file mode 100644 index 00000000..fd70f9d8 --- /dev/null +++ b/src/Log/Application/Resource/LogLoginResource.php @@ -0,0 +1,43 @@ +processTimeAndDate(); $this->processRequestData($request); $this->processClientData(); + + if ($this->user !== null) { + $this->username = $this->user->getUsername(); + } } public function getId(): string @@ -257,6 +274,11 @@ public function getType(): string return $this->type; } + public function getUsername(): string + { + return $this->username; + } + public function getClientType(): ?string { return $this->clientType; diff --git a/src/Entity/LogLoginFailure.php b/src/Log/Domain/Entity/LogLoginFailure.php similarity index 90% rename from src/Entity/LogLoginFailure.php rename to src/Log/Domain/Entity/LogLoginFailure.php index 9b95fdc7..c7dfcf5d 100644 --- a/src/Entity/LogLoginFailure.php +++ b/src/Log/Domain/Entity/LogLoginFailure.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace App\Entity; +namespace App\Log\Domain\Entity; -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Traits\Uuid; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Traits\Uuid; +use App\User\Domain\Entity\User; use DateTimeImmutable; use DateTimeZone; use Doctrine\DBAL\Types\Types; @@ -19,7 +20,7 @@ /** * Class LogLoginFailure * - * @package App\Entity + * @package App\Log */ #[ORM\Entity(readOnly: true)] #[ORM\Table(name: 'log_login_failure')] @@ -70,6 +71,7 @@ public function __construct( #[ORM\JoinColumn( name: 'user_id', nullable: false, + onDelete: 'CASCADE', )] #[Groups([ 'LogLoginFailure', diff --git a/src/Entity/LogRequest.php b/src/Log/Domain/Entity/LogRequest.php similarity index 92% rename from src/Entity/LogRequest.php rename to src/Log/Domain/Entity/LogRequest.php index 05c5879c..94d732f5 100644 --- a/src/Entity/LogRequest.php +++ b/src/Log/Domain/Entity/LogRequest.php @@ -2,12 +2,14 @@ declare(strict_types=1); -namespace App\Entity; - -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Traits\LogEntityTrait; -use App\Entity\Traits\LogRequestProcessRequestTrait; -use App\Entity\Traits\Uuid; +namespace App\Log\Domain\Entity; + +use App\ApiKey\Domain\Entity\ApiKey; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Traits\Uuid; +use App\Log\Domain\Entity\Traits\LogEntityTrait; +use App\Log\Domain\Entity\Traits\LogRequestProcessRequestTrait; +use App\User\Domain\Entity\User; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; use OpenApi\Annotations as OA; @@ -23,7 +25,7 @@ /** * Class LogRequest * - * @package App\Entity + * @package App\Log */ #[ORM\Entity(readOnly: true)] #[ORM\Table(name: 'log_request')] diff --git a/src/Entity/Traits/LogEntityTrait.php b/src/Log/Domain/Entity/Traits/LogEntityTrait.php similarity index 96% rename from src/Entity/Traits/LogEntityTrait.php rename to src/Log/Domain/Entity/Traits/LogEntityTrait.php index 52d5acf5..d66b325b 100644 --- a/src/Entity/Traits/LogEntityTrait.php +++ b/src/Log/Domain/Entity/Traits/LogEntityTrait.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Entity\Traits; +namespace App\Log\Domain\Entity\Traits; -use App\Entity\User; +use App\User\Domain\Entity\User; use DateTimeImmutable; use DateTimeZone; use Doctrine\DBAL\Types\Types; @@ -16,7 +16,7 @@ /** * Trait LogEntityTrait * - * @package App\Entity\Traits + * @package App\Log * * @property User|null $user */ diff --git a/src/Entity/Traits/LogRequestProcessRequestTrait.php b/src/Log/Domain/Entity/Traits/LogRequestProcessRequestTrait.php similarity index 99% rename from src/Entity/Traits/LogRequestProcessRequestTrait.php rename to src/Log/Domain/Entity/Traits/LogRequestProcessRequestTrait.php index 79b16e0e..8a682a09 100644 --- a/src/Entity/Traits/LogRequestProcessRequestTrait.php +++ b/src/Log/Domain/Entity/Traits/LogRequestProcessRequestTrait.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Entity\Traits; +namespace App\Log\Domain\Entity\Traits; -use App\Utils\JSON; +use App\General\Domain\Utils\JSON; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; use JsonException; @@ -26,7 +26,7 @@ /** * Trait LogRequestProcessRequestTrait * - * @package App\Entity\Traits + * @package App\Log * * @method array getSensitiveProperties(); */ diff --git a/src/Log/Domain/Repository/Interfaces/LogLoginFailureRepositoryInterface.php b/src/Log/Domain/Repository/Interfaces/LogLoginFailureRepositoryInterface.php new file mode 100644 index 00000000..9404beba --- /dev/null +++ b/src/Log/Domain/Repository/Interfaces/LogLoginFailureRepositoryInterface.php @@ -0,0 +1,20 @@ +setDescription('Command to run a cron job for cleanup logs by schedule.'); + parent::__construct(); } /** @@ -63,7 +68,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int private function createScheduledCommand(): string { $entity = $this->entityManager->getRepository(ScheduledCommand::class)->findOneBy([ - 'command' => CleanupLogsCommand::COMMAND_NAME, + 'command' => CleanupLogsCommand::NAME, ]); if ($entity !== null) { @@ -82,7 +87,7 @@ private function createScheduledCommand(): string $scheduledCommand = (new ScheduledCommand()) ->setName('Cleanup logs in tables log_login, log_request') - ->setCommand(CleanupLogsCommand::COMMAND_NAME) + ->setCommand(CleanupLogsCommand::NAME) // Run once a day, midnight ->setCronExpression('0 0 * * *') ->setPriority(100) diff --git a/src/Command/Utils/CleanupLogsCommand.php b/src/Log/Transport/Command/Utils/CleanupLogsCommand.php similarity index 59% rename from src/Command/Utils/CleanupLogsCommand.php rename to src/Log/Transport/Command/Utils/CleanupLogsCommand.php index b88c6f5c..c32fd9f8 100644 --- a/src/Command/Utils/CleanupLogsCommand.php +++ b/src/Log/Transport/Command/Utils/CleanupLogsCommand.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace App\Command\Utils; +namespace App\Log\Transport\Command\Utils; -use App\Command\Traits\SymfonyStyleTrait; -use App\Repository\LogLoginRepository; -use App\Repository\LogRequestRepository; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\Log\Domain\Repository\Interfaces\LogLoginRepositoryInterface; +use App\Log\Domain\Repository\Interfaces\LogRequestRepositoryInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -16,26 +17,31 @@ /** * Class CleanupLogsCommand * - * @package App\Command\Utils + * @package App\Log */ +#[AsCommand( + name: self::NAME, + description: 'Command to cleanup logs(log_login, log_request) in the database.', +)] class CleanupLogsCommand extends Command { use SymfonyStyleTrait; - public const COMMAND_NAME = 'logs:cleanup'; + public const NAME = 'logs:cleanup'; /** * Constructor * + * @param \App\Log\Infrastructure\Repository\LogLoginRepository $logLoginRepository + * @param \App\Log\Infrastructure\Repository\LogRequestRepository $logRequestRepository + * * @throws LogicException */ public function __construct( - private LogLoginRepository $logLoginRepository, - private LogRequestRepository $logRequestRepository, + private LogLoginRepositoryInterface $logLoginRepository, + private LogRequestRepositoryInterface $logRequestRepository, ) { - parent::__construct(self::COMMAND_NAME); - - $this->setDescription('Command to cleanup logs(log_login, log_request) in the database'); + parent::__construct(); } /** diff --git a/src/Repository/.gitignore b/src/Repository/.gitignore deleted file mode 100644 index e69de29b..00000000 diff --git a/src/Resource/ApiKeyResource.php b/src/Resource/ApiKeyResource.php deleted file mode 100644 index b70a13db..00000000 --- a/src/Resource/ApiKeyResource.php +++ /dev/null @@ -1,40 +0,0 @@ -getRepository()->clear($user); - } -} diff --git a/src/Resource/LogLoginResource.php b/src/Resource/LogLoginResource.php deleted file mode 100644 index e4219596..00000000 --- a/src/Resource/LogLoginResource.php +++ /dev/null @@ -1,40 +0,0 @@ - getAll() - */ -class ResourceCollection implements Countable -{ - use CollectionTrait; - - /** - * Constructor - * - * @param IteratorAggregate $items - */ - public function __construct( - private IteratorAggregate $items, - private LoggerInterface $logger, - ) { - } - - /** - * Getter method for REST resource by entity class name. - */ - public function getEntityResource(string $className): RestResourceInterface - { - return $this->getFilteredItemByEntity($className) ?? throw new InvalidArgumentException( - sprintf('Resource class does not exist for entity \'%s\'', $className), - ); - } - - /** - * Method to check if specified entity class REST resource exist or not in current collection. - */ - public function hasEntityResource(?string $className = null): bool - { - return $this->getFilteredItemByEntity($className ?? '') !== null; - } - - /** - * {@inheritdoc} - */ - public function filter(string $className): Closure - { - return static fn (RestResourceInterface $restResource): bool => $restResource instanceof $className; - } - - /** - * {@inheritdoc} - */ - public function getErrorMessage(string $className): string - { - return sprintf('Resource \'%s\' does not exist', $className); - } - - /** - * Getter method to get filtered item by given entity class. - */ - private function getFilteredItemByEntity(string $entityName): ?RestResourceInterface - { - try { - $iterator = $this->items->getIterator(); - } catch (Throwable $throwable) { - $this->logger->error($throwable->getMessage()); - - return null; - } - - $callback = static fn (RestResourceInterface $resource): bool => $resource->getEntityName() === $entityName; - - $filteredIterator = new CallbackFilterIterator(new IteratorIterator($iterator), $callback); - $filteredIterator->rewind(); - - return $filteredIterator->current(); - } -} diff --git a/src/Resource/RoleResource.php b/src/Resource/RoleResource.php deleted file mode 100644 index f87f809d..00000000 --- a/src/Resource/RoleResource.php +++ /dev/null @@ -1,40 +0,0 @@ - - */ - public function getSerializerContext(): array; - - /** - * Getter method for entity repository. - * - * @throws Throwable - */ - public function getRepository(): BaseRepositoryInterface; - - /** - * Setter method for repository. - */ - public function setRepository(BaseRepositoryInterface $repository): self; - - /** - * Getter for used validator. - */ - public function getValidator(): ValidatorInterface; - - /** - * Setter for used validator. - */ - public function setValidator(ValidatorInterface $validator): self; - - /** - * Getter method for used DTO class for this REST service. - * - * @throws UnexpectedValueException - */ - public function getDtoClass(): string; - - /** - * Setter for used DTO class. - */ - public function setDtoClass(string $dtoClass): self; - - /** - * Getter method for current entity name. - * - * @throws Throwable - */ - public function getEntityName(): string; - - /** - * Gets a reference to the entity identified by the given type and identifier without actually loading it, - * if the entity is not yet loaded. - * - * @throws Throwable - */ - public function getReference(string $id): ?object; - - /** - * Getter method for all associations that current entity contains. - * - * @return array - * - * @throws Throwable - */ - public function getAssociations(): array; - - /** - * Getter method DTO class with loaded entity data. - * - * @throws Throwable - */ - public function getDtoForEntity( - string $id, - string $dtoClass, - RestDtoInterface $dto, - ?bool $patch = null - ): RestDtoInterface; - - /** - * Generic find method to return an array of items from database. Return value is an array of specified repository - * entities. - * - * @param array>|null $criteria - * @param array|null $orderBy - * @param array|null $search - * - * @throws Throwable - * - * @return array - */ - public function find( - ?array $criteria = null, - ?array $orderBy = null, - ?int $limit = null, - ?int $offset = null, - ?array $search = null - ): array; - - /** - * Generic findOne method to return single item from database. Return value is single entity from specified - * repository. - * - * @psalm-return ( - * $throwExceptionIfNotFound is true - * ? EntityInterface - * : EntityInterface|null - * ) - * - * @throws Throwable - */ - public function findOne(string $id, ?bool $throwExceptionIfNotFound = null): ?EntityInterface; - - /** - * Generic findOneBy method to return single item from database by given criteria. Return value is single entity - * from specified repository or null if entity was not found. - * - * @param array> $criteria - * @param array|null $orderBy - * - * @psalm-return ( - * $throwExceptionIfNotFound is true - * ? EntityInterface - * : EntityInterface|null - * ) - * - * @throws Throwable - */ - public function findOneBy( - array $criteria, - ?array $orderBy = null, - ?bool $throwExceptionIfNotFound = null - ): ?EntityInterface; - - /** - * Generic count method to return entity count for specified criteria and search terms. - * - * @param array>|null $criteria - * @param array|null $search - * - * @throws Throwable - */ - public function count(?array $criteria = null, ?array $search = null): int; - - /** - * Generic method to create new item (entity) to specified database repository. Return value is created entity for - * specified repository. - * - * @throws Throwable - */ - public function create(RestDtoInterface $dto, ?bool $flush = null, ?bool $skipValidation = null): EntityInterface; - - /** - * Generic method to update specified entity with new data. - * - * @throws Throwable - */ - public function update( - string $id, - RestDtoInterface $dto, - ?bool $flush = null, - ?bool $skipValidation = null - ): EntityInterface; - - /** - * Generic method to patch specified entity with new data. - * - * @throws Throwable - */ - public function patch( - string $id, - RestDtoInterface $dto, - ?bool $flush = null, - ?bool $skipValidation = null - ): EntityInterface; - - /** - * Generic method to delete specified entity from database. - * - * @throws Throwable - */ - public function delete(string $id, ?bool $flush = null): EntityInterface; - - /** - * Generic ids method to return an array of id values from database. Return value is an array of specified - * repository entity id values. - * - * @param array>|null $criteria - * @param array|null $search - * - * @return array - */ - public function getIds(?array $criteria = null, ?array $search = null): array; - - /** - * Generic method to save given entity to specified repository. Return value is created entity. - * - * @throws Throwable - */ - public function save(EntityInterface $entity, ?bool $flush = null, ?bool $skipValidation = null): EntityInterface; -} diff --git a/src/Rest/Traits/RestResourceBaseMethods.php b/src/Rest/Traits/RestResourceBaseMethods.php deleted file mode 100644 index 2f20065a..00000000 --- a/src/Rest/Traits/RestResourceBaseMethods.php +++ /dev/null @@ -1,328 +0,0 @@ - - */ - public function find( - ?array $criteria = null, - ?array $orderBy = null, - ?int $limit = null, - ?int $offset = null, - ?array $search = null - ): array { - $criteria ??= []; - $orderBy ??= []; - $search ??= []; - // Before callback method call - $this->beforeFind($criteria, $orderBy, $limit, $offset, $search); - // Fetch data - $entities = $this->getRepository()->findByAdvanced($criteria, $orderBy, $limit, $offset, $search); - // After callback method call - $this->afterFind($criteria, $orderBy, $limit, $offset, $search, $entities); - - return $entities; - } - - /** - * {@inheritdoc} - */ - public function findOne(string $id, ?bool $throwExceptionIfNotFound = null): ?EntityInterface - { - $throwExceptionIfNotFound ??= false; - // Before callback method call - $this->beforeFindOne($id); - /** @var EntityInterface|null $entity */ - $entity = $this->getRepository()->findAdvanced($id); - $this->checkThatEntityExists($throwExceptionIfNotFound, $entity); - // After callback method call - $this->afterFindOne($id, $entity); - - return $entity; - } - - /** - * {@inheritdoc} - */ - public function findOneBy( - array $criteria, - ?array $orderBy = null, - ?bool $throwExceptionIfNotFound = null - ): ?EntityInterface { - $orderBy ??= []; - $throwExceptionIfNotFound ??= false; - // Before callback method call - $this->beforeFindOneBy($criteria, $orderBy); - /** @var EntityInterface|null $entity */ - $entity = $this->getRepository()->findOneBy($criteria, $orderBy); - $this->checkThatEntityExists($throwExceptionIfNotFound, $entity); - // After callback method call - $this->afterFindOneBy($criteria, $orderBy, $entity); - - return $entity; - } - - /** - * {@inheritdoc} - */ - public function count(?array $criteria = null, ?array $search = null): int - { - $criteria ??= []; - $search ??= []; - // Before callback method call - $this->beforeCount($criteria, $search); - $count = $this->getRepository()->countAdvanced($criteria, $search); - // After callback method call - $this->afterCount($criteria, $search, $count); - - return $count; - } - - /** - * {@inheritdoc} - */ - public function create(RestDtoInterface $dto, ?bool $flush = null, ?bool $skipValidation = null): EntityInterface - { - $flush ??= true; - $skipValidation ??= false; - // Create new entity - $entity = $this->createEntity(); - // Before callback method call - $this->beforeCreate($dto, $entity); - // Validate DTO - $this->validateDto($dto, $skipValidation); - // Create or update entity - $this->persistEntity($entity, $dto, $flush, $skipValidation); - // After callback method call - $this->afterCreate($dto, $entity); - - return $entity; - } - - /** - * {@inheritdoc} - */ - public function update( - string $id, - RestDtoInterface $dto, - ?bool $flush = null, - ?bool $skipValidation = null - ): EntityInterface { - $flush ??= true; - $skipValidation ??= false; - // Fetch entity - $entity = $this->getEntity($id); - /** - * Determine used dto class and create new instance of that and load entity to that. And after that patch - * that dto with given partial OR whole dto class. - */ - $restDto = $this->getDtoForEntity($id, $dto::class, $dto); - // Before callback method call - $this->beforeUpdate($id, $restDto, $entity); - // Validate DTO - $this->validateDto($restDto, $skipValidation); - // Create or update entity - $this->persistEntity($entity, $restDto, $flush, $skipValidation); - // After callback method call - $this->afterUpdate($id, $restDto, $entity); - - return $entity; - } - - /** - * {@inheritdoc} - */ - public function patch( - string $id, - RestDtoInterface $dto, - ?bool $flush = null, - ?bool $skipValidation = null - ): EntityInterface { - $flush ??= true; - $skipValidation ??= false; - // Fetch entity - $entity = $this->getEntity($id); - /** - * Determine used dto class and create new instance of that and load entity to that. And after that patch - * that dto with given partial OR whole dto class. - */ - $restDto = $this->getDtoForEntity($id, $dto::class, $dto, true); - // Before callback method call - $this->beforePatch($id, $restDto, $entity); - // Validate DTO - $this->validateDto($restDto, $skipValidation); - // Create or update entity - $this->persistEntity($entity, $restDto, $flush, $skipValidation); - // After callback method call - $this->afterPatch($id, $restDto, $entity); - - return $entity; - } - - /** - * {@inheritdoc} - */ - public function delete(string $id, ?bool $flush = null): EntityInterface - { - $flush ??= true; - // Fetch entity - $entity = $this->getEntity($id); - // Before callback method call - $this->beforeDelete($id, $entity); - // And remove entity from repo - $this->getRepository()->remove($entity, $flush); - // After callback method call - $this->afterDelete($id, $entity); - - return $entity; - } - - /** - * {@inheritdoc} - * - * @return array - */ - public function getIds(?array $criteria = null, ?array $search = null): array - { - $criteria ??= []; - $search ??= []; - // Before callback method call - $this->beforeIds($criteria, $search); - // Fetch data - $ids = $this->getRepository()->findIds($criteria, $search); - // After callback method call - $this->afterIds($ids, $criteria, $search); - - return $ids; - } - - /** - * {@inheritdoc} - */ - public function save(EntityInterface $entity, ?bool $flush = null, ?bool $skipValidation = null): EntityInterface - { - $flush ??= true; - $skipValidation ??= false; - // Before callback method call - $this->beforeSave($entity); - // Validate current entity - $this->validateEntity($entity, $skipValidation); - // Persist on database - $this->getRepository()->save($entity, $flush); - // After callback method call - $this->afterSave($entity); - - return $entity; - } - - /** - * Helper method to set data to specified entity and store it to database. - * - * @throws Throwable - */ - protected function persistEntity( - EntityInterface $entity, - RestDtoInterface $dto, - bool $flush, - bool $skipValidation - ): void { - // Update entity according to DTO current state - $dto->update($entity); - // And save current entity - $this->save($entity, $flush, $skipValidation); - } - - /** - * @throws NotFoundHttpException - */ - protected function getEntity(string $id): EntityInterface - { - $entity = $this->getRepository()->find($id); - - if ($entity === null) { - throw new NotFoundHttpException('Not found'); - } - - return $entity; - } - - /** - * Helper method to validate given DTO class. - * - * @throws Throwable - */ - private function validateDto(RestDtoInterface $dto, bool $skipValidation): void - { - /** @var ConstraintViolationListInterface|null $errors */ - $errors = $skipValidation ? null : $this->getValidator()->validate($dto); - - // Oh noes, we have some errors - if ($errors !== null && $errors->count() > 0) { - throw new ValidatorException($dto::class, $errors); - } - } - - /** - * Method to validate specified entity. - * - * @throws Throwable - */ - private function validateEntity(EntityInterface $entity, bool $skipValidation): void - { - $errors = $skipValidation ? null : $this->getValidator()->validate($entity); - - // Oh noes, we have some errors - if ($errors !== null && $errors->count() > 0) { - throw new ValidatorException($entity::class, $errors); - } - } - - private function createEntity(): EntityInterface - { - /** @var class-string $entityClass */ - $entityClass = $this->getRepository()->getEntityName(); - - $entity = new $entityClass(); - - $exception = new UnexpectedValueException( - sprintf('Given `%s` class does not implement `EntityInterface`', $entityClass), - ); - - return assert($entity instanceof EntityInterface) ? $entity : throw $exception; - } - - /** - * @throws NotFoundHttpException - */ - private function checkThatEntityExists(bool $throwExceptionIfNotFound, ?EntityInterface $entity): void - { - // Entity not found - if ($throwExceptionIfNotFound && $entity === null) { - throw new NotFoundHttpException('Not found'); - } - } -} diff --git a/src/Rest/Traits/RestResourceLifeCycles.php b/src/Rest/Traits/RestResourceLifeCycles.php deleted file mode 100644 index 2bc28bdf..00000000 --- a/src/Rest/Traits/RestResourceLifeCycles.php +++ /dev/null @@ -1,24 +0,0 @@ - */ private static array $roleNames = [ - self::ROLE_LOGGED => 'Logged in users', - self::ROLE_USER => 'Normal users', - self::ROLE_ADMIN => 'Admin users', - self::ROLE_ROOT => 'Root users', - self::ROLE_API => 'API users', + Role::ROLE_LOGGED => 'Logged in users', + Role::ROLE_USER => 'Normal users', + Role::ROLE_ADMIN => 'Admin users', + Role::ROLE_ROOT => 'Root users', + Role::ROLE_API => 'API users', ]; public function __construct( @@ -40,11 +41,11 @@ public function __construct( public function getRoles(): array { return [ - self::ROLE_LOGGED, - self::ROLE_USER, - self::ROLE_ADMIN, - self::ROLE_ROOT, - self::ROLE_API, + Role::ROLE_LOGGED, + Role::ROLE_USER, + Role::ROLE_ADMIN, + Role::ROLE_ROOT, + Role::ROLE_API, ]; } diff --git a/src/Entity/Role.php b/src/Role/Domain/Entity/Role.php similarity index 77% rename from src/Entity/Role.php rename to src/Role/Domain/Entity/Role.php index 1ef34f89..33728585 100644 --- a/src/Entity/Role.php +++ b/src/Role/Domain/Entity/Role.php @@ -2,11 +2,13 @@ declare(strict_types=1); -namespace App\Entity; +namespace App\Role\Domain\Entity; -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Traits\Blameable; -use App\Entity\Traits\Timestampable; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Traits\Timestampable; +use App\User\Domain\Entity\Traits\Blameable; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\DBAL\Types\Types; @@ -16,7 +18,7 @@ /** * Class Role * - * @package App\Entity + * @package App\Role */ #[ORM\Entity] #[ORM\Table(name: 'role')] @@ -30,6 +32,13 @@ class Role implements EntityInterface use Blameable; use Timestampable; + // Used role constants + public const ROLE_LOGGED = 'ROLE_LOGGED'; + public const ROLE_USER = 'ROLE_USER'; + public const ROLE_ADMIN = 'ROLE_ADMIN'; + public const ROLE_ROOT = 'ROLE_ROOT'; + public const ROLE_API = 'ROLE_API'; + #[ORM\Column( name: 'description', type: Types::TEXT, @@ -77,6 +86,11 @@ public function __construct( $this->userGroups = new ArrayCollection(); } + public function __toString(): string + { + return self::class; + } + public function getId(): string { return $this->id; diff --git a/src/Role/Domain/Repository/Interfaces/RoleRepositoryInterface.php b/src/Role/Domain/Repository/Interfaces/RoleRepositoryInterface.php new file mode 100644 index 00000000..b9c4c9ca --- /dev/null +++ b/src/Role/Domain/Repository/Interfaces/RoleRepositoryInterface.php @@ -0,0 +1,14 @@ +setDescription('Console command to create roles to database'); + parent::__construct(); } /** @@ -85,6 +92,7 @@ private function createRole(string $role): int if ($this->roleRepository->find($role) === null) { $entity = new Role($role); + $entity->setDescription($this->rolesService->getRoleLabel($role)); $this->entityManager->persist($entity); $output = 1; } diff --git a/src/Command/User/CreateRolesWithUserGroupsCommand.php b/src/Role/Transport/Command/Role/CreateRolesWithUserGroupsCommand.php similarity index 84% rename from src/Command/User/CreateRolesWithUserGroupsCommand.php rename to src/Role/Transport/Command/Role/CreateRolesWithUserGroupsCommand.php index d12eac77..e96153da 100644 --- a/src/Command/User/CreateRolesWithUserGroupsCommand.php +++ b/src/Role/Transport/Command/Role/CreateRolesWithUserGroupsCommand.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\Role\Transport\Command\Role; -use App\Command\Traits\ApiKeyUserManagementHelperTrait; -use App\Command\Traits\SymfonyStyleTrait; -use App\Repository\RoleRepository; -use App\Resource\UserGroupResource; -use App\Security\RolesService; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\Role\Application\Security\RolesService; +use App\Role\Domain\Repository\Interfaces\RoleRepositoryInterface; +use App\User\Application\Resource\UserGroupResource; +use App\User\Transport\Command\Traits\ApiKeyUserManagementHelperTrait; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -19,7 +19,7 @@ /** * Class CreateRolesWithUserGroupsCommand * - * @package App\Command\User + * @package App\Role */ class CreateRolesWithUserGroupsCommand extends Command { @@ -30,12 +30,14 @@ class CreateRolesWithUserGroupsCommand extends Command /** * Constructor * + * @param \App\Role\Infrastructure\Repository\RoleRepository $roleRepository + * * @throws LogicException */ public function __construct( private UserGroupResource $userGroupResource, private RolesService $rolesService, - private RoleRepository $roleRepository, + private RoleRepositoryInterface $roleRepository, ) { parent::__construct('user:create-roles-groups'); diff --git a/src/Controller/Api/v1/Role/FindOneRoleController.php b/src/Role/Transport/Controller/Api/v1/Role/FindOneRoleController.php similarity index 85% rename from src/Controller/Api/v1/Role/FindOneRoleController.php rename to src/Role/Transport/Controller/Api/v1/Role/FindOneRoleController.php index a328f039..8164ed3e 100644 --- a/src/Controller/Api/v1/Role/FindOneRoleController.php +++ b/src/Role/Transport/Controller/Api/v1/Role/FindOneRoleController.php @@ -2,13 +2,12 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Role; +namespace App\Role\Transport\Controller\Api\v1\Role; -use App\Entity\Role; -use App\Resource\RoleResource; -use App\Rest\Controller; -use App\Rest\Traits\Methods; -use App\Security\Interfaces\RolesServiceInterface; +use App\General\Transport\Rest\Controller; +use App\General\Transport\Rest\Traits\Methods; +use App\Role\Application\Resource\RoleResource; +use App\Role\Domain\Entity\Role; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -22,7 +21,7 @@ * * @OA\Tag(name="Role Management") * - * @package App\Controller\Api\v1\Role + * @package App\Role */ class FindOneRoleController extends Controller { @@ -67,7 +66,7 @@ public function __construct( ], methods: [Request::METHOD_GET], )] - #[IsGranted(RolesServiceInterface::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] public function __invoke(Request $request, string $role): Response { return $this->findOneMethod($request, $role); diff --git a/src/Controller/Api/v1/Role/InheritedRolesController.php b/src/Role/Transport/Controller/Api/v1/Role/InheritedRolesController.php similarity index 86% rename from src/Controller/Api/v1/Role/InheritedRolesController.php rename to src/Role/Transport/Controller/Api/v1/Role/InheritedRolesController.php index 689f26ed..82e22611 100644 --- a/src/Controller/Api/v1/Role/InheritedRolesController.php +++ b/src/Role/Transport/Controller/Api/v1/Role/InheritedRolesController.php @@ -2,12 +2,11 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Role; +namespace App\Role\Transport\Controller\Api\v1\Role; -use App\Entity\Role; -use App\Resource\RoleResource; -use App\Security\Interfaces\RolesServiceInterface; -use App\Security\RolesService; +use App\Role\Application\Resource\RoleResource; +use App\Role\Application\Security\RolesService; +use App\Role\Domain\Entity\Role; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; @@ -20,7 +19,7 @@ * * @OA\Tag(name="Role Management") * - * @package App\Controller\Api\v1\Role + * @package App\Role */ class InheritedRolesController { @@ -58,7 +57,7 @@ public function __construct( ], methods: [Request::METHOD_GET], )] - #[IsGranted(RolesServiceInterface::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] #[ParamConverter( data: 'role', class: RoleResource::class, diff --git a/src/Controller/Api/v1/Role/RoleController.php b/src/Role/Transport/Controller/Api/v1/Role/RoleController.php similarity index 74% rename from src/Controller/Api/v1/Role/RoleController.php rename to src/Role/Transport/Controller/Api/v1/Role/RoleController.php index f1232c0d..2b190b79 100644 --- a/src/Controller/Api/v1/Role/RoleController.php +++ b/src/Role/Transport/Controller/Api/v1/Role/RoleController.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Role; +namespace App\Role\Transport\Controller\Api\v1\Role; -use App\Resource\RoleResource; -use App\Rest\Controller; -use App\Rest\ResponseHandler; -use App\Rest\Traits\Actions; +use App\General\Transport\Rest\Controller; +use App\General\Transport\Rest\ResponseHandler; +use App\General\Transport\Rest\Traits\Actions; +use App\Role\Application\Resource\RoleResource; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\Routing\Annotation\Route; @@ -18,7 +18,7 @@ * * @OA\Tag(name="Role Management") * - * @package App\Controller\Api\v1\Role + * @package App\Role * * @method RoleResource getResource() * @method ResponseHandler getResponseHandler() diff --git a/src/Form/DataTransformer/RoleTransformer.php b/src/Role/Transport/Form/DataTransformer/RoleTransformer.php similarity index 88% rename from src/Form/DataTransformer/RoleTransformer.php rename to src/Role/Transport/Form/DataTransformer/RoleTransformer.php index 62dbcc7d..9d734e29 100644 --- a/src/Form/DataTransformer/RoleTransformer.php +++ b/src/Role/Transport/Form/DataTransformer/RoleTransformer.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Form\DataTransformer; +namespace App\Role\Transport\Form\DataTransformer; -use App\Entity\Role; -use App\Resource\RoleResource; +use App\Role\Application\Resource\RoleResource; +use App\Role\Domain\Entity\Role; use Symfony\Component\Form\DataTransformerInterface; use Symfony\Component\Form\Exception\TransformationFailedException; use Throwable; @@ -16,7 +16,7 @@ /** * Class RoleTransformer * - * @package App\Form\Console\DataTransformer + * @package App\Role */ class RoleTransformer implements DataTransformerInterface { diff --git a/src/Security/Provider/Interfaces/ApiKeyUserProviderInterface.php b/src/Security/Provider/Interfaces/ApiKeyUserProviderInterface.php deleted file mode 100644 index 6a7532db..00000000 --- a/src/Security/Provider/Interfaces/ApiKeyUserProviderInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - + * {@inheritdoc} */ public function getLanguages(): array { @@ -44,7 +41,7 @@ public function getLanguages(): array } /** - * @return array + * {@inheritdoc} */ public function getLocales(): array { @@ -52,16 +49,13 @@ public function getLocales(): array } /** - * @return array - * - * @noinspection PhpDocMissingThrowsInspection + * {@inheritdoc} */ public function getTimezones(): array { $output = []; try { - /** @noinspection PhpUnhandledExceptionInspection */ $output = $this->appCache->get('application_timezone', $this->getClosure()); } catch (Throwable $exception) { $this->logger->error($exception->getMessage(), $exception->getTrace()); @@ -71,9 +65,7 @@ public function getTimezones(): array } /** - * @noinspection PhpDocMissingThrowsInspection - * - * @return array + * {@inheritdoc} */ public function getFormattedTimezones(): array { @@ -84,7 +76,6 @@ public function getFormattedTimezones(): array foreach ($identifiers as $identifier) { $dateTimeZone = new DateTimeZone($identifier); - /** @noinspection PhpUnhandledExceptionInspection */ $dateTime = new DateTimeImmutable(timezone: $dateTimeZone); $hours = floor($dateTimeZone->getOffset($dateTime) / 3600); diff --git a/src/Service/VersionService.php b/src/Tool/Application/Service/VersionService.php similarity index 83% rename from src/Service/VersionService.php rename to src/Tool/Application/Service/VersionService.php index 05f9b966..b565a351 100644 --- a/src/Service/VersionService.php +++ b/src/Tool/Application/Service/VersionService.php @@ -2,12 +2,11 @@ declare(strict_types=1); -namespace App\Service; +namespace App\Tool\Application\Service; -use App\Utils\JSON; +use App\General\Domain\Utils\JSON; use Closure; use Psr\Log\LoggerInterface; -use stdClass; use Symfony\Contracts\Cache\CacheInterface; use Symfony\Contracts\Cache\ItemInterface; use Throwable; @@ -15,7 +14,7 @@ /** * Class VersionService * - * @package App\Service + * @package App\Tool */ class VersionService { @@ -29,15 +28,12 @@ public function __construct( /** * Method to get application version from cache or create new entry to cache with version value from * composer.json file. - * - * @noinspection PhpDocMissingThrowsInspection */ public function get(): string { $output = '0.0.0'; try { - /** @noinspection PhpUnhandledExceptionInspection */ $output = $this->appCache->get('application_version', $this->getClosure()); } catch (Throwable $exception) { $this->logger->error($exception->getMessage(), $exception->getTrace()); @@ -51,8 +47,6 @@ private function getClosure(): Closure return function (ItemInterface $item): string { // One year $item->expiresAfter(31536000); - - /** @var stdClass $composerData */ $composerData = JSON::decode((string)file_get_contents($this->projectDir . '/composer.json')); return (string)($composerData->version ?? '0.0.0'); diff --git a/src/Validator/Constraints/Language.php b/src/Tool/Application/Validator/Constraints/Language.php similarity index 66% rename from src/Validator/Constraints/Language.php rename to src/Tool/Application/Validator/Constraints/Language.php index 94974f9a..f71589a7 100644 --- a/src/Validator/Constraints/Language.php +++ b/src/Tool/Application/Validator/Constraints/Language.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\Tool\Application\Validator\Constraints; use Attribute; use Symfony\Component\Validator\Constraint; @@ -11,12 +11,12 @@ * Class Language * * Usage example; - * App\Validator\Constraints\Language() + * App\Tool\Application\Validator\Constraints\Language() * * @Annotation * @Target({"PROPERTY"}) * - * @package App\Validator\Constraints + * @package App\Tool */ #[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)] class Language extends Constraint @@ -32,14 +32,4 @@ class Language extends Constraint protected static $errorNames = [ self::INVALID_LANGUAGE => 'INVALID_LANGUAGE', ]; - - /** - * @noinspection PhpMissingParentCallCommonInspection - * - * {@inheritdoc} - */ - public function getTargets(): string - { - return self::PROPERTY_CONSTRAINT; - } } diff --git a/src/Validator/Constraints/LanguageValidator.php b/src/Tool/Application/Validator/Constraints/LanguageValidator.php similarity index 86% rename from src/Validator/Constraints/LanguageValidator.php rename to src/Tool/Application/Validator/Constraints/LanguageValidator.php index 7822f762..f747c324 100644 --- a/src/Validator/Constraints/LanguageValidator.php +++ b/src/Tool/Application/Validator/Constraints/LanguageValidator.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\Tool\Application\Validator\Constraints; -use App\Service\LocalizationService; +use App\Tool\Application\Service\LocalizationService; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; @@ -13,7 +13,7 @@ /** * Class LanguageValidator * - * @package App\Validator\Constraints + * @package App\Tool */ class LanguageValidator extends ConstraintValidator { diff --git a/src/Validator/Constraints/Locale.php b/src/Tool/Application/Validator/Constraints/Locale.php similarity index 68% rename from src/Validator/Constraints/Locale.php rename to src/Tool/Application/Validator/Constraints/Locale.php index 88e5d6b0..2120d433 100644 --- a/src/Validator/Constraints/Locale.php +++ b/src/Tool/Application/Validator/Constraints/Locale.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\Tool\Application\Validator\Constraints; use Attribute; use Symfony\Component\Validator\Constraint; @@ -11,14 +11,14 @@ * Class Locale * * Usage example; - * App\Validator\Constraints\Locale() + * App\Tool\Application\Validator\Constraints\Locale() * * Just add that to your property as an annotation and you're good to go. * * @Annotation * @Target({"PROPERTY"}) * - * @package App\Validator\Constraints + * @package App\Tool */ #[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)] class Locale extends Constraint @@ -34,14 +34,4 @@ class Locale extends Constraint protected static $errorNames = [ self::INVALID_LOCALE => 'INVALID_LOCALE', ]; - - /** - * @noinspection PhpMissingParentCallCommonInspection - * - * {@inheritdoc} - */ - public function getTargets(): string - { - return self::PROPERTY_CONSTRAINT; - } } diff --git a/src/Validator/Constraints/LocaleValidator.php b/src/Tool/Application/Validator/Constraints/LocaleValidator.php similarity index 85% rename from src/Validator/Constraints/LocaleValidator.php rename to src/Tool/Application/Validator/Constraints/LocaleValidator.php index 57c511bc..64588d4c 100644 --- a/src/Validator/Constraints/LocaleValidator.php +++ b/src/Tool/Application/Validator/Constraints/LocaleValidator.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\Tool\Application\Validator\Constraints; -use App\Service\LocalizationService; +use App\Tool\Application\Service\LocalizationService; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; @@ -13,7 +13,7 @@ /** * Class LocaleValidator * - * @package App\Validator\Constraints + * @package App\Tool */ class LocaleValidator extends ConstraintValidator { diff --git a/src/Validator/Constraints/Timezone.php b/src/Tool/Application/Validator/Constraints/Timezone.php similarity index 68% rename from src/Validator/Constraints/Timezone.php rename to src/Tool/Application/Validator/Constraints/Timezone.php index 2fb3aed1..b1d98011 100644 --- a/src/Validator/Constraints/Timezone.php +++ b/src/Tool/Application/Validator/Constraints/Timezone.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\Tool\Application\Validator\Constraints; use Attribute; use Symfony\Component\Validator\Constraint; @@ -11,14 +11,14 @@ * Class Timezone * * Usage example; - * App\Validator\Constraints\Timezone() + * App\Tool\Application\Validator\Constraints\Timezone() * * Just add that to your property as an annotation and you're good to go. * * @Annotation * @Target({"PROPERTY"}) * - * @package App\Validator\Constraints + * @package App\Tool */ #[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)] class Timezone extends Constraint @@ -34,14 +34,4 @@ class Timezone extends Constraint protected static $errorNames = [ self::INVALID_TIMEZONE => 'INVALID_TIMEZONE', ]; - - /** - * @noinspection PhpMissingParentCallCommonInspection - * - * {@inheritdoc} - */ - public function getTargets(): string - { - return self::PROPERTY_CONSTRAINT; - } } diff --git a/src/Validator/Constraints/TimezoneValidator.php b/src/Tool/Application/Validator/Constraints/TimezoneValidator.php similarity index 66% rename from src/Validator/Constraints/TimezoneValidator.php rename to src/Tool/Application/Validator/Constraints/TimezoneValidator.php index de02476c..c97892fa 100644 --- a/src/Validator/Constraints/TimezoneValidator.php +++ b/src/Tool/Application/Validator/Constraints/TimezoneValidator.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\Tool\Application\Validator\Constraints; -use App\Service\LocalizationService; +use App\Tool\Application\Service\LocalizationService; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; @@ -15,7 +15,7 @@ /** * Class TimezoneValidator * - * @package App\Validator\Constraints + * @package App\Tool */ class TimezoneValidator extends ConstraintValidator { @@ -29,10 +29,13 @@ public function __construct( */ public function validate(mixed $value, Constraint $constraint): void { - if (in_array($value, array_column($this->localization->getTimezones(), 'identifier'), true) !== true) { + if ( + is_string($value) + && !in_array($value, array_column($this->localization->getTimezones(), 'identifier'), true) + ) { $this->context ->buildViolation(Timezone::MESSAGE) - ->setParameter('{{ timezone }}', !is_string($value) ? $value->getTimezone() : $value) + ->setParameter('{{ timezone }}', $value) ->setCode(Timezone::INVALID_TIMEZONE) ->addViolation(); } diff --git a/src/Entity/Health.php b/src/Tool/Domain/Entity/Health.php similarity index 91% rename from src/Entity/Health.php rename to src/Tool/Domain/Entity/Health.php index a409c410..3b0c25f3 100644 --- a/src/Entity/Health.php +++ b/src/Tool/Domain/Entity/Health.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Entity; +namespace App\Tool\Domain\Entity; -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Traits\Uuid; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Traits\Uuid; use DateTimeImmutable; use DateTimeZone; use Doctrine\DBAL\Types\Types; @@ -19,7 +19,7 @@ /** * Class Health * - * @package App\Entity + * @package App\Tool */ #[ORM\Entity] #[ORM\Table(name: 'health')] diff --git a/src/Tool/Domain/Repository/Interfaces/HealthRepositoryInterface.php b/src/Tool/Domain/Repository/Interfaces/HealthRepositoryInterface.php new file mode 100644 index 00000000..fedc063e --- /dev/null +++ b/src/Tool/Domain/Repository/Interfaces/HealthRepositoryInterface.php @@ -0,0 +1,39 @@ + + */ + public function getLanguages(): array; + + /** + * @return array + */ + public function getLocales(): array; + + /** + * @return array + */ + public function getTimezones(): array; + + /** + * @return array + * + * @throws Throwable + */ + public function getFormattedTimezones(): array; +} diff --git a/src/Repository/HealthRepository.php b/src/Tool/Infrastructure/Repository/HealthRepository.php similarity index 77% rename from src/Repository/HealthRepository.php rename to src/Tool/Infrastructure/Repository/HealthRepository.php index 0819a414..427861c8 100644 --- a/src/Repository/HealthRepository.php +++ b/src/Tool/Infrastructure/Repository/HealthRepository.php @@ -2,9 +2,11 @@ declare(strict_types=1); -namespace App\Repository; +namespace App\Tool\Infrastructure\Repository; -use App\Entity\Health as Entity; +use App\General\Infrastructure\Repository\BaseRepository; +use App\Tool\Domain\Entity\Health as Entity; +use App\Tool\Domain\Repository\Interfaces\HealthRepositoryInterface; use DateInterval; use DateTimeImmutable; use DateTimeZone; @@ -17,21 +19,21 @@ /** * Class HealthRepository * - * @package App\Repository + * @package App\Tool * * @psalm-suppress LessSpecificImplementedReturnType * @codingStandardsIgnoreStart * - * @method Entity|null find(string $id, ?int $lockMode = null, ?int $lockVersion = null) - * @method Entity|null findAdvanced(string $id, string | int | null $hydrationMode = null) - * @method Entity|null findOneBy(array $criteria, ?array $orderBy = null) - * @method Entity[] findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null) - * @method Entity[] findByAdvanced(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null, ?array $search = null) - * @method Entity[] findAll() + * @method Entity|null find(string $id, ?int $lockMode = null, ?int $lockVersion = null, ?string $entityManagerName = null) + * @method Entity|null findAdvanced(string $id, string | int | null $hydrationMode = null, string|null $entityManagerName = null) + * @method Entity|null findOneBy(array $criteria, ?array $orderBy = null, ?string $entityManagerName = null) + * @method Entity[] findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null, ?string $entityManagerName = null) + * @method Entity[] findByAdvanced(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null, ?array $search = null, ?string $entityManagerName = null) + * @method Entity[] findAll(?string $entityManagerName = null) * * @codingStandardsIgnoreEnd */ -class HealthRepository extends BaseRepository +class HealthRepository extends BaseRepository implements HealthRepositoryInterface { /** * @psalm-var class-string diff --git a/src/Command/Elastic/CreateOrUpdateTemplateCommand.php b/src/Tool/Transport/Command/Elastic/CreateOrUpdateTemplateCommand.php similarity index 82% rename from src/Command/Elastic/CreateOrUpdateTemplateCommand.php rename to src/Tool/Transport/Command/Elastic/CreateOrUpdateTemplateCommand.php index 48ae85ca..3cd65a5a 100644 --- a/src/Command/Elastic/CreateOrUpdateTemplateCommand.php +++ b/src/Tool/Transport/Command/Elastic/CreateOrUpdateTemplateCommand.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Command\Elastic; +namespace App\Tool\Transport\Command\Elastic; -use App\Command\Traits\SymfonyStyleTrait; -use App\Service\ElasticsearchService; -use App\Service\Interfaces\ElasticsearchServiceInterface; +use App\General\Domain\Service\Interfaces\ElasticsearchServiceInterface; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -18,28 +18,31 @@ /** * Class CreateOrUpdateTemplateCommand * - * @package App\Command\Elastic + * @package App\Tool */ +#[AsCommand( + name: self::NAME, + description: 'Command to create/update index template in Elastic.', +)] class CreateOrUpdateTemplateCommand extends Command { use SymfonyStyleTrait; - public const COMMAND_NAME = 'elastic:create-or-update-template'; + public const NAME = 'elastic:create-or-update-template'; /** * Constructor * + * @param \App\General\Infrastructure\Service\ElasticsearchService $elasticsearchService + * * @throws LogicException */ public function __construct( - /** @var ElasticsearchService $elasticsearchService */ private ElasticsearchServiceInterface $elasticsearchService, private int $elasticNumberOfShards, private int $elasticNumberOfReplicas, ) { - parent::__construct(self::COMMAND_NAME); - - $this->setDescription('Command to create/update index template in Elastic'); + parent::__construct(); } /** diff --git a/src/Command/Utils/CheckDependencies.php b/src/Tool/Transport/Command/Utils/CheckDependencies.php similarity index 96% rename from src/Command/Utils/CheckDependencies.php rename to src/Tool/Transport/Command/Utils/CheckDependencies.php index 3f430780..eeadfce7 100644 --- a/src/Command/Utils/CheckDependencies.php +++ b/src/Tool/Transport/Command/Utils/CheckDependencies.php @@ -2,14 +2,15 @@ declare(strict_types=1); -namespace App\Command\Utils; +namespace App\Tool\Transport\Command\Utils; -use App\Command\Traits\SymfonyStyleTrait; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; use InvalidArgumentException; use JsonException; use LogicException; use SplFileInfo; use stdClass; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\RuntimeException; use Symfony\Component\Console\Helper\ProgressBar; @@ -42,8 +43,12 @@ /** * Class CheckDependencies * - * @package App\Command\Utils + * @package App\Tool */ +#[AsCommand( + name: 'check-dependencies', + description: 'Console command to check which vendor dependencies has updates.', +)] class CheckDependencies extends Command { use SymfonyStyleTrait; @@ -51,9 +56,7 @@ class CheckDependencies extends Command public function __construct( private string $projectDir, ) { - parent::__construct('check-dependencies'); - - $this->setDescription('Console command to check which vendor dependencies has updates'); + parent::__construct(); $this->addOption( 'minor', diff --git a/src/Command/Utils/WaitDatabaseCommand.php b/src/Tool/Transport/Command/Utils/WaitDatabaseCommand.php similarity index 81% rename from src/Command/Utils/WaitDatabaseCommand.php rename to src/Tool/Transport/Command/Utils/WaitDatabaseCommand.php index 8bd23715..4a9679e2 100644 --- a/src/Command/Utils/WaitDatabaseCommand.php +++ b/src/Tool/Transport/Command/Utils/WaitDatabaseCommand.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace App\Command\Utils; +namespace App\Tool\Transport\Command\Utils; -use App\Command\Traits\SymfonyStyleTrait; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; use Doctrine\ORM\EntityManagerInterface; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -15,8 +16,12 @@ /** * Class WaitDatabaseCommand * - * @package App\Command\Utils + * @package App\Tool */ +#[AsCommand( + name: 'db:wait', + description: 'Waits for database availability.', +)] class WaitDatabaseCommand extends Command { use SymfonyStyleTrait; @@ -34,10 +39,7 @@ class WaitDatabaseCommand extends Command public function __construct( private EntityManagerInterface $em, ) { - parent::__construct('db:wait'); - - $this->setDescription('Waits for database availability.') - ->setHelp('This command allows you to wait for database availability.'); + parent::__construct(); } /** @@ -52,7 +54,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int try { $connection = $this->em->getConnection(); $statement = $connection->prepare('SHOW TABLES'); - $statement->execute(); + $statement->executeQuery(); $io->success('Connection to the database is ok!'); return 0; diff --git a/src/Command/Utils/WaitElasticCommand.php b/src/Tool/Transport/Command/Utils/WaitElasticCommand.php similarity index 80% rename from src/Command/Utils/WaitElasticCommand.php rename to src/Tool/Transport/Command/Utils/WaitElasticCommand.php index 25680867..78167802 100644 --- a/src/Command/Utils/WaitElasticCommand.php +++ b/src/Tool/Transport/Command/Utils/WaitElasticCommand.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace App\Command\Utils; +namespace App\Tool\Transport\Command\Utils; -use App\Command\Traits\SymfonyStyleTrait; -use App\Service\Interfaces\ElasticsearchServiceInterface; +use App\General\Domain\Service\Interfaces\ElasticsearchServiceInterface; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -15,8 +16,12 @@ /** * Class WaitElasticCommand * - * @package App\Command\Utils + * @package App\Tool */ +#[AsCommand( + name: 'elastic:wait', + description: 'Waits for elastic availability.', +)] class WaitElasticCommand extends Command { use SymfonyStyleTrait; @@ -34,10 +39,7 @@ class WaitElasticCommand extends Command public function __construct( private ElasticsearchServiceInterface $elasticsearchService, ) { - parent::__construct('elastic:wait'); - - $this->setDescription('Waits for elastic availability.') - ->setHelp('This command allows you to wait for elastic availability.'); + parent::__construct(); } /** diff --git a/src/Controller/Api/HealthController.php b/src/Tool/Transport/Controller/Api/HealthController.php similarity index 83% rename from src/Controller/Api/HealthController.php rename to src/Tool/Transport/Controller/Api/HealthController.php index 3b11aaa0..ded9de17 100644 --- a/src/Controller/Api/HealthController.php +++ b/src/Tool/Transport/Controller/Api/HealthController.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace App\Controller\Api; +namespace App\Tool\Transport\Controller\Api; -use App\Rest\ResponseHandler; -use App\Service\HealthService; +use App\General\Transport\Rest\Interfaces\ResponseHandlerInterface; +use App\General\Transport\Rest\ResponseHandler; +use App\Tool\Application\Service\HealthService; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -17,7 +18,7 @@ * * @OA\Tag(name="Tools") * - * @package App\Controller\Api + * @package App\Tool */ class HealthController { @@ -56,7 +57,7 @@ public function __invoke(Request $request): Response return $this->responseHandler->createResponse( $request, $this->healthService->check(), - format: ResponseHandler::FORMAT_JSON, + format: ResponseHandlerInterface::FORMAT_JSON, context: [ 'groups' => [ 'Health.timestamp', diff --git a/src/Controller/Api/IndexController.php b/src/Tool/Transport/Controller/Api/IndexController.php similarity index 91% rename from src/Controller/Api/IndexController.php rename to src/Tool/Transport/Controller/Api/IndexController.php index 64f2beb3..18d9761b 100644 --- a/src/Controller/Api/IndexController.php +++ b/src/Tool/Transport/Controller/Api/IndexController.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Controller\Api; +namespace App\Tool\Transport\Controller\Api; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\JsonResponse; @@ -13,7 +13,7 @@ /** * Class IndexController * - * @package App\Controller\Api + * @package App\Tool */ class IndexController { diff --git a/src/Controller/Api/VersionController.php b/src/Tool/Transport/Controller/Api/VersionController.php similarity index 90% rename from src/Controller/Api/VersionController.php rename to src/Tool/Transport/Controller/Api/VersionController.php index 682e09bc..fac1e53c 100644 --- a/src/Controller/Api/VersionController.php +++ b/src/Tool/Transport/Controller/Api/VersionController.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Controller\Api; +namespace App\Tool\Transport\Controller\Api; -use App\Service\VersionService; +use App\Tool\Application\Service\VersionService; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -16,7 +16,7 @@ * * @OA\Tag(name="Tools") * - * @package App\Controller\Api + * @package App\Tool */ class VersionController { diff --git a/src/Controller/Api/v1/Localization/LanguageController.php b/src/Tool/Transport/Controller/Api/v1/Localization/LanguageController.php similarity index 89% rename from src/Controller/Api/v1/Localization/LanguageController.php rename to src/Tool/Transport/Controller/Api/v1/Localization/LanguageController.php index 0ad0b705..3d7214a7 100644 --- a/src/Controller/Api/v1/Localization/LanguageController.php +++ b/src/Tool/Transport/Controller/Api/v1/Localization/LanguageController.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Localization; +namespace App\Tool\Transport\Controller\Api\v1\Localization; -use App\Service\LocalizationService; +use App\Tool\Application\Service\LocalizationService; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -17,7 +17,7 @@ * * @OA\Tag(name="Localization") * - * @package App\Controller\Api\v1\Localization + * @package App\Tool */ class LanguageController { diff --git a/src/Controller/Api/v1/Localization/LocaleController.php b/src/Tool/Transport/Controller/Api/v1/Localization/LocaleController.php similarity index 89% rename from src/Controller/Api/v1/Localization/LocaleController.php rename to src/Tool/Transport/Controller/Api/v1/Localization/LocaleController.php index eede201a..36f80b06 100644 --- a/src/Controller/Api/v1/Localization/LocaleController.php +++ b/src/Tool/Transport/Controller/Api/v1/Localization/LocaleController.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Localization; +namespace App\Tool\Transport\Controller\Api\v1\Localization; -use App\Service\LocalizationService; +use App\Tool\Application\Service\LocalizationService; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -17,7 +17,7 @@ * * @OA\Tag(name="Localization") * - * @package App\Controller\Api\v1\Localization + * @package App\Tool */ class LocaleController { diff --git a/src/Controller/Api/v1/Localization/TimeZoneController.php b/src/Tool/Transport/Controller/Api/v1/Localization/TimeZoneController.php similarity index 94% rename from src/Controller/Api/v1/Localization/TimeZoneController.php rename to src/Tool/Transport/Controller/Api/v1/Localization/TimeZoneController.php index f835bff4..e07c6e6d 100644 --- a/src/Controller/Api/v1/Localization/TimeZoneController.php +++ b/src/Tool/Transport/Controller/Api/v1/Localization/TimeZoneController.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Localization; +namespace App\Tool\Transport\Controller\Api\v1\Localization; -use App\Service\LocalizationService; +use App\Tool\Application\Service\LocalizationService; use OpenApi\Annotations as OA; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -18,7 +18,7 @@ * * @OA\Tag(name="Localization") * - * @package App\Controller\Api\v1\Localization + * @package App\Tool */ class TimeZoneController { diff --git a/src/EventSubscriber/AcceptLanguageSubscriber.php b/src/Tool/Transport/EventSubscriber/AcceptLanguageSubscriber.php similarity index 95% rename from src/EventSubscriber/AcceptLanguageSubscriber.php rename to src/Tool/Transport/EventSubscriber/AcceptLanguageSubscriber.php index a76bd4db..5f3ee7ec 100644 --- a/src/EventSubscriber/AcceptLanguageSubscriber.php +++ b/src/Tool/Transport/EventSubscriber/AcceptLanguageSubscriber.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\Tool\Transport\EventSubscriber; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\Event\RequestEvent; @@ -12,7 +12,7 @@ /** * Class AcceptLanguageSubscriber * - * @package App\EventSubscriber + * @package App\Tool */ class AcceptLanguageSubscriber implements EventSubscriberInterface { diff --git a/src/DTO/Traits/PatchUserGroups.php b/src/User/Application/DTO/Traits/PatchUserGroups.php similarity index 74% rename from src/DTO/Traits/PatchUserGroups.php rename to src/User/Application/DTO/Traits/PatchUserGroups.php index 9a12a5d1..0b5e5447 100644 --- a/src/DTO/Traits/PatchUserGroups.php +++ b/src/User/Application/DTO/Traits/PatchUserGroups.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\DTO\Traits; +namespace App\User\Application\DTO\Traits; -use App\Entity\Interfaces\UserGroupAwareInterface; -use App\Entity\UserGroup as UserGroupEntity; +use App\User\Domain\Entity\Interfaces\UserGroupAwareInterface; +use App\User\Domain\Entity\UserGroup as UserGroupEntity; use function array_map; /** * Trait PatchUserGroups * - * @package App\DTO\Traits + * @package App\User */ trait PatchUserGroups { diff --git a/src/DTO/User/User.php b/src/User/Application/DTO/User/User.php similarity index 82% rename from src/DTO/User/User.php rename to src/User/Application/DTO/User/User.php index 78214a7e..dc9dda16 100644 --- a/src/DTO/User/User.php +++ b/src/User/Application/DTO/User/User.php @@ -2,16 +2,18 @@ declare(strict_types=1); -namespace App\DTO\User; - -use App\DTO\Interfaces\RestDtoInterface; -use App\DTO\RestDto; -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Interfaces\UserGroupAwareInterface; -use App\Entity\User as Entity; -use App\Entity\UserGroup as UserGroupEntity; -use App\Service\LocalizationService; -use App\Validator\Constraints as AppAssert; +namespace App\User\Application\DTO\User; + +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Application\DTO\RestDto; +use App\General\Application\Validator\Constraints as GeneralAppAssert; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\Tool\Application\Validator\Constraints as ToolAppAssert; +use App\Tool\Domain\Service\Interfaces\LocalizationServiceInterface; +use App\User\Application\Validator\Constraints as UserAppAssert; +use App\User\Domain\Entity\Interfaces\UserGroupAwareInterface; +use App\User\Domain\Entity\User as Entity; +use App\User\Domain\Entity\UserGroup as UserGroupEntity; use Symfony\Component\Validator\Constraints as Assert; use function array_map; @@ -19,14 +21,14 @@ /** * Class User * - * @package App\DTO\User + * @package App\User * * @method self|RestDtoInterface get(string $id) * @method self|RestDtoInterface patch(RestDtoInterface $dto) * @method Entity|EntityInterface update(EntityInterface $entity) */ -#[AppAssert\UniqueEmail] -#[AppAssert\UniqueUsername] +#[UserAppAssert\UniqueEmail] +#[UserAppAssert\UniqueUsername] class User extends RestDto { /** @@ -59,23 +61,23 @@ class User extends RestDto #[Assert\NotBlank] #[Assert\NotNull] - #[AppAssert\Language] - protected string $language = LocalizationService::DEFAULT_LANGUAGE; + #[ToolAppAssert\Language] + protected string $language = LocalizationServiceInterface::DEFAULT_LANGUAGE; #[Assert\NotBlank] #[Assert\NotNull] - #[AppAssert\Locale] - protected string $locale = LocalizationService::DEFAULT_LOCALE; + #[ToolAppAssert\Locale] + protected string $locale = LocalizationServiceInterface::DEFAULT_LOCALE; #[Assert\NotBlank] #[Assert\NotNull] - #[AppAssert\Timezone] - protected string $timezone = LocalizationService::DEFAULT_TIMEZONE; + #[ToolAppAssert\Timezone] + protected string $timezone = LocalizationServiceInterface::DEFAULT_TIMEZONE; /** * @var UserGroupEntity[]|array */ - #[AppAssert\EntityReferenceExists(entityClass: UserGroupEntity::class)] + #[GeneralAppAssert\EntityReferenceExists(entityClass: UserGroupEntity::class)] protected array $userGroups = []; #[Assert\NotBlank] diff --git a/src/DTO/User/UserCreate.php b/src/User/Application/DTO/User/UserCreate.php similarity index 74% rename from src/DTO/User/UserCreate.php rename to src/User/Application/DTO/User/UserCreate.php index 4e3f80f8..c309a3ae 100644 --- a/src/DTO/User/UserCreate.php +++ b/src/User/Application/DTO/User/UserCreate.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace App\DTO\User; +namespace App\User\Application\DTO\User; -use App\Entity\User as Entity; +use App\User\Domain\Entity\User as Entity; use Symfony\Component\Validator\Constraints as Assert; /** * Class UserCreate * - * @package App\DTO\User + * @package App\User */ class UserCreate extends User { diff --git a/src/DTO/User/UserPatch.php b/src/User/Application/DTO/User/UserPatch.php similarity index 51% rename from src/DTO/User/UserPatch.php rename to src/User/Application/DTO/User/UserPatch.php index c7509050..a320458a 100644 --- a/src/DTO/User/UserPatch.php +++ b/src/User/Application/DTO/User/UserPatch.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\DTO\User; +namespace App\User\Application\DTO\User; -use App\DTO\Traits\PatchUserGroups; +use App\User\Application\DTO\Traits\PatchUserGroups; /** * Class UserPatch * - * @package App\DTO\User + * @package App\User */ class UserPatch extends User { diff --git a/src/DTO/User/UserUpdate.php b/src/User/Application/DTO/User/UserUpdate.php similarity index 61% rename from src/DTO/User/UserUpdate.php rename to src/User/Application/DTO/User/UserUpdate.php index e5b9ca8c..316c7b8a 100644 --- a/src/DTO/User/UserUpdate.php +++ b/src/User/Application/DTO/User/UserUpdate.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\DTO\User; +namespace App\User\Application\DTO\User; /** * Class UserUpdate * - * @package App\DTO\User + * @package App\User */ class UserUpdate extends User { diff --git a/src/DTO/UserGroup/UserGroup.php b/src/User/Application/DTO/UserGroup/UserGroup.php similarity index 77% rename from src/DTO/UserGroup/UserGroup.php rename to src/User/Application/DTO/UserGroup/UserGroup.php index 0da47669..db92ab9d 100644 --- a/src/DTO/UserGroup/UserGroup.php +++ b/src/User/Application/DTO/UserGroup/UserGroup.php @@ -2,20 +2,20 @@ declare(strict_types=1); -namespace App\DTO\UserGroup; +namespace App\User\Application\DTO\UserGroup; -use App\DTO\Interfaces\RestDtoInterface; -use App\DTO\RestDto; -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Role as RoleEntity; -use App\Entity\UserGroup as Entity; -use App\Validator\Constraints as AppAssert; +use App\General\Application\DTO\Interfaces\RestDtoInterface; +use App\General\Application\DTO\RestDto; +use App\General\Application\Validator\Constraints as AppAssert; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\Role\Domain\Entity\Role as RoleEntity; +use App\User\Domain\Entity\UserGroup as Entity; use Symfony\Component\Validator\Constraints as Assert; /** * Class UserGroup * - * @package App\DTO\UserGroup + * @package App\User * * @method self|RestDtoInterface get(string $id) * @method self|RestDtoInterface patch(RestDtoInterface $dto) diff --git a/src/DTO/UserGroup/UserGroupCreate.php b/src/User/Application/DTO/UserGroup/UserGroupCreate.php similarity index 64% rename from src/DTO/UserGroup/UserGroupCreate.php rename to src/User/Application/DTO/UserGroup/UserGroupCreate.php index 633f089f..38b3555f 100644 --- a/src/DTO/UserGroup/UserGroupCreate.php +++ b/src/User/Application/DTO/UserGroup/UserGroupCreate.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\DTO\UserGroup; +namespace App\User\Application\DTO\UserGroup; -use App\Entity\Role as RoleEntity; -use App\Validator\Constraints as AppAssert; +use App\General\Application\Validator\Constraints as AppAssert; +use App\Role\Domain\Entity\Role as RoleEntity; use Symfony\Component\Validator\Constraints as Assert; /** * Class UserGroupCreate * - * @package App\DTO\UserGroup + * @package App\User */ class UserGroupCreate extends UserGroup { diff --git a/src/DTO/UserGroup/UserGroupPatch.php b/src/User/Application/DTO/UserGroup/UserGroupPatch.php similarity index 62% rename from src/DTO/UserGroup/UserGroupPatch.php rename to src/User/Application/DTO/UserGroup/UserGroupPatch.php index 0e371e6d..14bc65c8 100644 --- a/src/DTO/UserGroup/UserGroupPatch.php +++ b/src/User/Application/DTO/UserGroup/UserGroupPatch.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\DTO\UserGroup; +namespace App\User\Application\DTO\UserGroup; /** * Class UserGroupPatch * - * @package App\DTO\UserGroup + * @package App\User */ class UserGroupPatch extends UserGroup { diff --git a/src/DTO/UserGroup/UserGroupUpdate.php b/src/User/Application/DTO/UserGroup/UserGroupUpdate.php similarity index 64% rename from src/DTO/UserGroup/UserGroupUpdate.php rename to src/User/Application/DTO/UserGroup/UserGroupUpdate.php index d59fd7f2..4a65d732 100644 --- a/src/DTO/UserGroup/UserGroupUpdate.php +++ b/src/User/Application/DTO/UserGroup/UserGroupUpdate.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\DTO\UserGroup; +namespace App\User\Application\DTO\UserGroup; -use App\Entity\Role as RoleEntity; -use App\Validator\Constraints as AppAssert; +use App\General\Application\Validator\Constraints as AppAssert; +use App\Role\Domain\Entity\Role as RoleEntity; use Symfony\Component\Validator\Constraints as Assert; /** * Class UserGroupUpdate * - * @package App\DTO\UserGroup + * @package App\User */ class UserGroupUpdate extends UserGroup { diff --git a/src/User/Application/Resource/UserGroupResource.php b/src/User/Application/Resource/UserGroupResource.php new file mode 100644 index 00000000..5669901d --- /dev/null +++ b/src/User/Application/Resource/UserGroupResource.php @@ -0,0 +1,43 @@ +translator->trans('Invalid credentials.', [], 'security') ) ); diff --git a/src/Security/Provider/SecurityUserFactory.php b/src/User/Application/Security/Provider/SecurityUserFactory.php similarity index 78% rename from src/Security/Provider/SecurityUserFactory.php rename to src/User/Application/Security/Provider/SecurityUserFactory.php index 70dd515c..85bf409c 100644 --- a/src/Security/Provider/SecurityUserFactory.php +++ b/src/User/Application/Security/Provider/SecurityUserFactory.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Security\Provider; +namespace App\User\Application\Security\Provider; -use App\Entity\User; -use App\Repository\UserRepository; -use App\Security\RolesService; -use App\Security\SecurityUser; +use App\Role\Application\Security\RolesService; +use App\User\Application\Security\SecurityUser; +use App\User\Domain\Entity\User; +use App\User\Domain\Repository\Interfaces\UserRepositoryInterface; use Symfony\Component\Security\Core\Exception\UnsupportedUserException; use Symfony\Component\Security\Core\Exception\UserNotFoundException; use Symfony\Component\Security\Core\User\UserInterface; @@ -17,12 +17,15 @@ /** * Class SecurityUserFactory * - * @package App\Security\Provider + * @package App\User */ class SecurityUserFactory implements UserProviderInterface { + /** + * @param \App\User\Infrastructure\Repository\UserRepository $userRepository + */ public function __construct( - private UserRepository $userRepository, + private UserRepositoryInterface $userRepository, private RolesService $rolesService, private string $uuidV1Regex, ) { @@ -74,18 +77,4 @@ public function refreshUser(UserInterface $user): SecurityUser return new SecurityUser($userEntity, $this->rolesService->getInheritedRoles($userEntity->getRoles())); } - - /** - * @reminder Remove this method when Symfony 6.0.0 is released - * - * {@inheritDoc} - * - * @throws Throwable - * - * @codeCoverageIgnore - */ - public function loadUserByUsername(string $username): SecurityUser - { - return $this->loadUserByIdentifier($username); - } } diff --git a/src/Security/SecurityUser.php b/src/User/Application/Security/SecurityUser.php similarity index 86% rename from src/Security/SecurityUser.php rename to src/User/Application/Security/SecurityUser.php index 0bc31d7a..2d70e5a5 100644 --- a/src/Security/SecurityUser.php +++ b/src/User/Application/Security/SecurityUser.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace App\Security; +namespace App\User\Application\Security; -use App\Entity\User; +use App\User\Domain\Entity\User; use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\UserInterface; /** * Class SecurityUser * - * @package App\Security + * @package App\User */ class SecurityUser implements UserInterface, PasswordAuthenticatedUserInterface { @@ -104,16 +104,4 @@ public function getTimezone(): string { return $this->timezone; } - - /** - * @reminder Remove this method when Symfony 6.0.0 is released - * - * {@inheritdoc} - * - * @codeCoverageIgnore - */ - public function getUsername(): string - { - return $this->getUserIdentifier(); - } } diff --git a/src/Security/UserTypeIdentification.php b/src/User/Application/Security/UserTypeIdentification.php similarity index 82% rename from src/Security/UserTypeIdentification.php rename to src/User/Application/Security/UserTypeIdentification.php index 31fd73c0..6d02a971 100644 --- a/src/Security/UserTypeIdentification.php +++ b/src/User/Application/Security/UserTypeIdentification.php @@ -2,12 +2,13 @@ declare(strict_types=1); -namespace App\Security; +namespace App\User\Application\Security; -use App\Entity\ApiKey; -use App\Entity\User; -use App\Repository\UserRepository; -use App\Security\Provider\ApiKeyUserProvider; +use App\ApiKey\Application\Security\ApiKeyUser; +use App\ApiKey\Application\Security\Provider\ApiKeyUserProvider; +use App\ApiKey\Domain\Entity\ApiKey; +use App\User\Domain\Entity\User; +use App\User\Domain\Repository\Interfaces\UserRepositoryInterface; use Doctrine\ORM\NonUniqueResultException; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\User\UserInterface; @@ -15,13 +16,16 @@ /** * Class UserTypeIdentification * - * @package App\Security + * @package App\User */ class UserTypeIdentification { + /** + * @param \App\User\Infrastructure\Repository\UserRepository $userRepository + */ public function __construct( private TokenStorageInterface $tokenStorage, - private UserRepository $userRepository, + private UserRepositoryInterface $userRepository, private ApiKeyUserProvider $apiKeyUserProvider, ) { } diff --git a/src/Security/Voter/IsUserHimselfVoter.php b/src/User/Application/Security/Voter/IsUserHimselfVoter.php similarity index 83% rename from src/Security/Voter/IsUserHimselfVoter.php rename to src/User/Application/Security/Voter/IsUserHimselfVoter.php index 3403753d..4d5c2e1f 100644 --- a/src/Security/Voter/IsUserHimselfVoter.php +++ b/src/User/Application/Security/Voter/IsUserHimselfVoter.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\Security\Voter; +namespace App\User\Application\Security\Voter; -use App\Entity\User; -use App\Security\SecurityUser; +use App\User\Application\Security\SecurityUser; +use App\User\Domain\Entity\User; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Authorization\Voter\Voter; /** * Class IsUserHimselfVoter * - * @package App\Security + * @package App\User */ class IsUserHimselfVoter extends Voter { diff --git a/src/Validator/Constraints/UniqueEmail.php b/src/User/Application/Validator/Constraints/UniqueEmail.php similarity index 69% rename from src/Validator/Constraints/UniqueEmail.php rename to src/User/Application/Validator/Constraints/UniqueEmail.php index 7eb04887..d928777b 100644 --- a/src/Validator/Constraints/UniqueEmail.php +++ b/src/User/Application/Validator/Constraints/UniqueEmail.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\User\Application\Validator\Constraints; use Attribute; use Symfony\Component\Validator\Constraint; @@ -11,14 +11,14 @@ * Class UniqueEmail * * Usage example; - * App\Validator\Constraints\UniqueEmail() + * App\User\Application\Validator\Constraints\UniqueEmail() * * Just add that to your class as an annotation and you're good to go. * * @Annotation * @Target({"CLASS"}) * - * @package App\Validator\Constraints + * @package App\User */ #[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] class UniqueEmail extends Constraint @@ -35,13 +35,14 @@ class UniqueEmail extends Constraint self::IS_UNIQUE_EMAIL_ERROR => 'IS_UNIQUE_EMAIL_ERROR', ]; - /** - * @noinspection PhpMissingParentCallCommonInspection - * - * {@inheritdoc} - */ public function getTargets(): string { - return self::CLASS_CONSTRAINT; + $output = null; + + if (parent::getTargets() !== self::CLASS_CONSTRAINT) { + $output = self::CLASS_CONSTRAINT; + } + + return $output ?? self::CLASS_CONSTRAINT; } } diff --git a/src/Validator/Constraints/UniqueEmailValidator.php b/src/User/Application/Validator/Constraints/UniqueEmailValidator.php similarity index 62% rename from src/Validator/Constraints/UniqueEmailValidator.php rename to src/User/Application/Validator/Constraints/UniqueEmailValidator.php index 891659f5..7ca23472 100644 --- a/src/Validator/Constraints/UniqueEmailValidator.php +++ b/src/User/Application/Validator/Constraints/UniqueEmailValidator.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\User\Application\Validator\Constraints; -use App\Entity\Interfaces\UserInterface; -use App\Repository\UserRepository; +use App\User\Application\DTO\User\User as UserDto; +use App\User\Domain\Entity\Interfaces\UserInterface; +use App\User\Domain\Repository\Interfaces\UserRepositoryInterface; use Doctrine\ORM\NonUniqueResultException; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; @@ -13,12 +14,15 @@ /** * Class UniqueEmailValidator * - * @package App\Validator\Constraints + * @package App\User */ class UniqueEmailValidator extends ConstraintValidator { + /** + * @param \App\User\Infrastructure\Repository\UserRepository $repository + */ public function __construct( - private UserRepository $repository, + private UserRepositoryInterface $repository, ) { } @@ -30,7 +34,7 @@ public function __construct( public function validate(mixed $value, Constraint $constraint): void { if ( - $value instanceof UserInterface + ($value instanceof UserInterface || $value instanceof UserDto) && !$this->repository->isEmailAvailable($value->getEmail(), $value->getId()) ) { $this->context diff --git a/src/Validator/Constraints/UniqueUsername.php b/src/User/Application/Validator/Constraints/UniqueUsername.php similarity index 69% rename from src/Validator/Constraints/UniqueUsername.php rename to src/User/Application/Validator/Constraints/UniqueUsername.php index 633189b1..f8560292 100644 --- a/src/Validator/Constraints/UniqueUsername.php +++ b/src/User/Application/Validator/Constraints/UniqueUsername.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\User\Application\Validator\Constraints; use Attribute; use Symfony\Component\Validator\Constraint; @@ -11,14 +11,14 @@ * Class UniqueUsername * * Usage example; - * App\Validator\Constraints\UniqueUsername() + * App\User\Application\Validator\Constraints\UniqueUsername() * * Just add that to your class as an annotation and you're good to go. * * @Annotation * @Target({"CLASS"}) * - * @package App\Validator\Constraints + * @package App\User */ #[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] class UniqueUsername extends Constraint @@ -35,13 +35,14 @@ class UniqueUsername extends Constraint self::IS_UNIQUE_USERNAME_ERROR => 'IS_UNIQUE_USERNAME_ERROR', ]; - /** - * @noinspection PhpMissingParentCallCommonInspection - * - * {@inheritdoc} - */ public function getTargets(): string { - return self::CLASS_CONSTRAINT; + $output = null; + + if (parent::getTargets() !== self::CLASS_CONSTRAINT) { + $output = self::CLASS_CONSTRAINT; + } + + return $output ?? self::CLASS_CONSTRAINT; } } diff --git a/src/Validator/Constraints/UniqueUsernameValidator.php b/src/User/Application/Validator/Constraints/UniqueUsernameValidator.php similarity index 63% rename from src/Validator/Constraints/UniqueUsernameValidator.php rename to src/User/Application/Validator/Constraints/UniqueUsernameValidator.php index 27637d8f..68eab5e6 100644 --- a/src/Validator/Constraints/UniqueUsernameValidator.php +++ b/src/User/Application/Validator/Constraints/UniqueUsernameValidator.php @@ -2,10 +2,11 @@ declare(strict_types=1); -namespace App\Validator\Constraints; +namespace App\User\Application\Validator\Constraints; -use App\Entity\Interfaces\UserInterface; -use App\Repository\UserRepository; +use App\User\Application\DTO\User\User as UserDto; +use App\User\Domain\Entity\Interfaces\UserInterface; +use App\User\Domain\Repository\Interfaces\UserRepositoryInterface; use Doctrine\ORM\NonUniqueResultException; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; @@ -13,12 +14,15 @@ /** * Class UniqueUsernameValidator * - * @package App\Validator\Constraints + * @package App\User */ class UniqueUsernameValidator extends ConstraintValidator { + /** + * @param \App\User\Infrastructure\Repository\UserRepository $repository + */ public function __construct( - private UserRepository $repository, + private UserRepositoryInterface $repository, ) { } @@ -30,7 +34,7 @@ public function __construct( public function validate(mixed $value, Constraint $constraint): void { if ( - $value instanceof UserInterface + ($value instanceof UserInterface || $value instanceof UserDto) && !$this->repository->isUsernameAvailable($value->getUsername(), $value->getId()) ) { $this->context diff --git a/src/Entity/Interfaces/UserGroupAwareInterface.php b/src/User/Domain/Entity/Interfaces/UserGroupAwareInterface.php similarity index 84% rename from src/Entity/Interfaces/UserGroupAwareInterface.php rename to src/User/Domain/Entity/Interfaces/UserGroupAwareInterface.php index bce72c20..e76a7f29 100644 --- a/src/Entity/Interfaces/UserGroupAwareInterface.php +++ b/src/User/Domain/Entity/Interfaces/UserGroupAwareInterface.php @@ -2,16 +2,17 @@ declare(strict_types=1); -namespace App\Entity\Interfaces; +namespace App\User\Domain\Entity\Interfaces; -use App\Entity\UserGroup; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\User\Domain\Entity\UserGroup; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; /** * Interface UserGroupAwareInterface * - * @package App\Entity\Interfaces + * @package App\User */ interface UserGroupAwareInterface extends EntityInterface { diff --git a/src/Entity/Interfaces/UserInterface.php b/src/User/Domain/Entity/Interfaces/UserInterface.php similarity index 76% rename from src/Entity/Interfaces/UserInterface.php rename to src/User/Domain/Entity/Interfaces/UserInterface.php index 3cdc6d2c..523d95aa 100644 --- a/src/Entity/Interfaces/UserInterface.php +++ b/src/User/Domain/Entity/Interfaces/UserInterface.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Entity\Interfaces; +namespace App\User\Domain\Entity\Interfaces; /** * Interface UserInterface * - * @package App\Entity\Interfaces + * @package App\User */ interface UserInterface { diff --git a/src/Entity/Traits/Blameable.php b/src/User/Domain/Entity/Traits/Blameable.php similarity index 87% rename from src/Entity/Traits/Blameable.php rename to src/User/Domain/Entity/Traits/Blameable.php index de96520a..914c6810 100644 --- a/src/Entity/Traits/Blameable.php +++ b/src/User/Domain/Entity/Traits/Blameable.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Entity\Traits; +namespace App\User\Domain\Entity\Traits; -use App\Entity\User; +use App\User\Domain\Entity\User; use Doctrine\ORM\Mapping as ORM; use Gedmo\Mapping\Annotation as Gedmo; use Symfony\Component\Serializer\Annotation\Groups; @@ -12,13 +12,10 @@ /** * Trait Blameable * - * @package App\Entity\Traits + * @package App\User */ trait Blameable { - /** - * @Gedmo\Blameable(on="create") - */ #[ORM\ManyToOne(targetEntity: User::class)] #[ORM\JoinColumn( name: 'created_by_id', @@ -26,6 +23,9 @@ trait Blameable nullable: true, onDelete: 'SET NULL', )] + #[Gedmo\Blameable( + on: 'create', + )] #[Groups([ 'ApiKey.createdBy', 'Role.createdBy', @@ -34,9 +34,6 @@ trait Blameable ])] protected ?User $createdBy = null; - /** - * @Gedmo\Blameable(on="update") - */ #[ORM\ManyToOne(targetEntity: User::class)] #[ORM\JoinColumn( name: 'updated_by_id', @@ -44,6 +41,9 @@ trait Blameable nullable: true, onDelete: 'SET NULL', )] + #[Gedmo\Blameable( + on: 'update', + )] #[Groups([ 'ApiKey.updatedBy', 'Role.updatedBy', diff --git a/src/Entity/Traits/UserRelations.php b/src/User/Domain/Entity/Traits/UserRelations.php similarity index 94% rename from src/Entity/Traits/UserRelations.php rename to src/User/Domain/Entity/Traits/UserRelations.php index b6fa2203..2827f6cd 100644 --- a/src/Entity/Traits/UserRelations.php +++ b/src/User/Domain/Entity/Traits/UserRelations.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\Entity\Traits; +namespace App\User\Domain\Entity\Traits; -use App\Entity\LogLogin; -use App\Entity\LogLoginFailure; -use App\Entity\LogRequest; -use App\Entity\User; -use App\Entity\UserGroup; +use App\Log\Domain\Entity\LogLogin; +use App\Log\Domain\Entity\LogLoginFailure; +use App\Log\Domain\Entity\LogRequest; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; @@ -17,7 +17,7 @@ /** * Class UserRelations * - * @package App\Entity\Traits + * @package App\User */ trait UserRelations { @@ -140,8 +140,6 @@ public function addUserGroup(UserGroup $userGroup): self { if ($this->userGroups->contains($userGroup) === false) { $this->userGroups->add($userGroup); - - /* @noinspection PhpParamsInspection */ $userGroup->addUser($this); } diff --git a/src/Entity/User.php b/src/User/Domain/Entity/User.php similarity index 84% rename from src/Entity/User.php rename to src/User/Domain/Entity/User.php index 3ecfded8..fde3d899 100644 --- a/src/Entity/User.php +++ b/src/User/Domain/Entity/User.php @@ -2,18 +2,19 @@ declare(strict_types=1); -namespace App\Entity; - -use App\Doctrine\DBAL\Types\Types as AppTypes; -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Interfaces\UserGroupAwareInterface; -use App\Entity\Interfaces\UserInterface; -use App\Entity\Traits\Blameable; -use App\Entity\Traits\Timestampable; -use App\Entity\Traits\UserRelations; -use App\Entity\Traits\Uuid; -use App\Service\LocalizationService; -use App\Validator\Constraints as AppAssert; +namespace App\User\Domain\Entity; + +use App\General\Domain\Doctrine\DBAL\Types\EnumLanguageType; +use App\General\Domain\Doctrine\DBAL\Types\EnumLocaleType; +use App\General\Domain\Doctrine\DBAL\Types\Types as AppTypes; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Traits\Timestampable; +use App\General\Domain\Entity\Traits\Uuid; +use App\Tool\Domain\Service\Interfaces\LocalizationServiceInterface; +use App\User\Domain\Entity\Interfaces\UserGroupAwareInterface; +use App\User\Domain\Entity\Interfaces\UserInterface; +use App\User\Domain\Entity\Traits\Blameable; +use App\User\Domain\Entity\Traits\UserRelations; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; @@ -24,11 +25,14 @@ use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Validator\Constraints as Assert; use Throwable; +use UnexpectedValueException; + +use function in_array; /** * Class User * - * @package App\Entity + * @package App\User */ #[ORM\Entity] #[ORM\Table(name: 'user')] @@ -178,8 +182,7 @@ class User implements EntityInterface, UserInterface, UserGroupAwareInterface ])] #[Assert\NotBlank] #[Assert\NotNull] - #[AppAssert\Language] - private string $language = LocalizationService::DEFAULT_LANGUAGE; + private string $language = LocalizationServiceInterface::DEFAULT_LANGUAGE; #[ORM\Column( name: 'locale', @@ -198,8 +201,7 @@ class User implements EntityInterface, UserInterface, UserGroupAwareInterface ])] #[Assert\NotBlank] #[Assert\NotNull] - #[AppAssert\Locale] - private string $locale = LocalizationService::DEFAULT_LOCALE; + private string $locale = LocalizationServiceInterface::DEFAULT_LOCALE; #[ORM\Column( name: 'timezone', @@ -208,7 +210,7 @@ class User implements EntityInterface, UserInterface, UserGroupAwareInterface nullable: false, options: [ 'comment' => 'User timezone which should be used to display time, date, etc.', - 'default' => LocalizationService::DEFAULT_TIMEZONE, + 'default' => LocalizationServiceInterface::DEFAULT_TIMEZONE, ], )] #[Groups([ @@ -220,8 +222,7 @@ class User implements EntityInterface, UserInterface, UserGroupAwareInterface ])] #[Assert\NotBlank] #[Assert\NotNull] - #[AppAssert\Timezone] - private string $timezone = LocalizationService::DEFAULT_TIMEZONE; + private string $timezone = LocalizationServiceInterface::DEFAULT_TIMEZONE; #[ORM\Column( name: 'password', @@ -315,6 +316,10 @@ public function getLanguage(): string public function setLanguage(string $language): self { + if (in_array($language, EnumLanguageType::getValues(), true) !== true) { + throw new UnexpectedValueException(sprintf("Invalid language value: '%s'", $language)); + } + $this->language = $language; return $this; @@ -327,6 +332,10 @@ public function getLocale(): string public function setLocale(string $locale): self { + if (in_array($locale, EnumLocaleType::getValues(), true) !== true) { + throw new UnexpectedValueException(sprintf("Invalid locale value: '%s'", $locale)); + } + $this->locale = $locale; return $this; diff --git a/src/Entity/UserGroup.php b/src/User/Domain/Entity/UserGroup.php similarity index 93% rename from src/Entity/UserGroup.php rename to src/User/Domain/Entity/UserGroup.php index f71ecc3b..d7c5aaf8 100644 --- a/src/Entity/UserGroup.php +++ b/src/User/Domain/Entity/UserGroup.php @@ -2,12 +2,14 @@ declare(strict_types=1); -namespace App\Entity; - -use App\Entity\Interfaces\EntityInterface; -use App\Entity\Traits\Blameable; -use App\Entity\Traits\Timestampable; -use App\Entity\Traits\Uuid; +namespace App\User\Domain\Entity; + +use App\ApiKey\Domain\Entity\ApiKey; +use App\General\Domain\Entity\Interfaces\EntityInterface; +use App\General\Domain\Entity\Traits\Timestampable; +use App\General\Domain\Entity\Traits\Uuid; +use App\Role\Domain\Entity\Role; +use App\User\Domain\Entity\Traits\Blameable; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\DBAL\Types\Types; @@ -23,7 +25,7 @@ /** * Class UserGroup * - * @package App\Entity + * @package App\User */ #[ORM\Entity] #[ORM\Table(name: 'user_group')] @@ -106,7 +108,7 @@ class UserGroup implements EntityInterface, Stringable * @var Collection|ArrayCollection */ #[ORM\ManyToMany( - targetEntity: 'User', + targetEntity: User::class, mappedBy: 'userGroups', )] #[ORM\JoinTable( @@ -121,7 +123,7 @@ class UserGroup implements EntityInterface, Stringable * @var Collection|ArrayCollection */ #[ORM\ManyToMany( - targetEntity: 'ApiKey', + targetEntity: ApiKey::class, mappedBy: 'userGroups', )] #[ORM\JoinTable( diff --git a/src/User/Domain/Repository/Interfaces/UserGroupRepositoryInterface.php b/src/User/Domain/Repository/Interfaces/UserGroupRepositoryInterface.php new file mode 100644 index 00000000..efe57196 --- /dev/null +++ b/src/User/Domain/Repository/Interfaces/UserGroupRepositoryInterface.php @@ -0,0 +1,14 @@ + @@ -48,9 +50,7 @@ public function __construct( } /** - * Method to check if specified username is available or not. - * - * @throws NonUniqueResultException + * {@inheritdoc} */ public function isUsernameAvailable(string $username, ?string $id = null): bool { @@ -58,12 +58,7 @@ public function isUsernameAvailable(string $username, ?string $id = null): bool } /** - * Method to check if specified email is available or not. - * - * @param string $email Email to check - * @param string|null $id User id to ignore - * - * @throws NonUniqueResultException + * {@inheritdoc} */ public function isEmailAvailable(string $email, ?string $id = null): bool { @@ -71,19 +66,7 @@ public function isEmailAvailable(string $email, ?string $id = null): bool } /** - * Loads the user for the given username. - * - * This method must throw UsernameNotFoundException if the user is not found. - * - * Method is override for performance reasons see link below. - * - * @see http://symfony2-document.readthedocs.org/en/latest/cookbook/security/entity_provider.html - * #managing-roles-in-the-database - * - * @param string $username The username - * @param bool $uuid Is username parameter UUID or not - * - * @throws NonUniqueResultException + * {@inheritdoc} */ public function loadUserByIdentifier(string $username, bool $uuid): ?Entity { diff --git a/src/AutoMapper/User/AutoMapperConfiguration.php b/src/User/Transport/AutoMapper/User/AutoMapperConfiguration.php similarity index 64% rename from src/AutoMapper/User/AutoMapperConfiguration.php rename to src/User/Transport/AutoMapper/User/AutoMapperConfiguration.php index dc3efe73..4d2c2f48 100644 --- a/src/AutoMapper/User/AutoMapperConfiguration.php +++ b/src/User/Transport/AutoMapper/User/AutoMapperConfiguration.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\AutoMapper\User; +namespace App\User\Transport\AutoMapper\User; -use App\AutoMapper\RestAutoMapperConfiguration; -use App\DTO\User\UserCreate; -use App\DTO\User\UserPatch; -use App\DTO\User\UserUpdate; +use App\General\Transport\AutoMapper\RestAutoMapperConfiguration; +use App\User\Application\DTO\User\UserCreate; +use App\User\Application\DTO\User\UserPatch; +use App\User\Application\DTO\User\UserUpdate; /** * Class AutoMapperConfiguration * - * @package App\AutoMapper + * @package App\User */ class AutoMapperConfiguration extends RestAutoMapperConfiguration { diff --git a/src/AutoMapper/User/RequestMapper.php b/src/User/Transport/AutoMapper/User/RequestMapper.php similarity index 81% rename from src/AutoMapper/User/RequestMapper.php rename to src/User/Transport/AutoMapper/User/RequestMapper.php index 7df8a4e5..ee245d66 100644 --- a/src/AutoMapper/User/RequestMapper.php +++ b/src/User/Transport/AutoMapper/User/RequestMapper.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\AutoMapper\User; +namespace App\User\Transport\AutoMapper\User; -use App\AutoMapper\RestRequestMapper; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; +use App\General\Transport\AutoMapper\RestRequestMapper; +use App\User\Application\Resource\UserGroupResource; +use App\User\Domain\Entity\UserGroup; use Throwable; use function array_map; @@ -14,7 +14,7 @@ /** * Class RequestMapper * - * @package App\AutoMapper + * @package App\User */ class RequestMapper extends RestRequestMapper { diff --git a/src/AutoMapper/UserGroup/AutoMapperConfiguration.php b/src/User/Transport/AutoMapper/UserGroup/AutoMapperConfiguration.php similarity index 62% rename from src/AutoMapper/UserGroup/AutoMapperConfiguration.php rename to src/User/Transport/AutoMapper/UserGroup/AutoMapperConfiguration.php index e93fc14a..c0b045b9 100644 --- a/src/AutoMapper/UserGroup/AutoMapperConfiguration.php +++ b/src/User/Transport/AutoMapper/UserGroup/AutoMapperConfiguration.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\AutoMapper\UserGroup; +namespace App\User\Transport\AutoMapper\UserGroup; -use App\AutoMapper\RestAutoMapperConfiguration; -use App\DTO\UserGroup\UserGroupCreate; -use App\DTO\UserGroup\UserGroupPatch; -use App\DTO\UserGroup\UserGroupUpdate; +use App\General\Transport\AutoMapper\RestAutoMapperConfiguration; +use App\User\Application\DTO\UserGroup\UserGroupCreate; +use App\User\Application\DTO\UserGroup\UserGroupPatch; +use App\User\Application\DTO\UserGroup\UserGroupUpdate; /** * Class AutoMapperConfiguration * - * @package App\AutoMapper + * @package App\User */ class AutoMapperConfiguration extends RestAutoMapperConfiguration { diff --git a/src/AutoMapper/UserGroup/RequestMapper.php b/src/User/Transport/AutoMapper/UserGroup/RequestMapper.php similarity index 71% rename from src/AutoMapper/UserGroup/RequestMapper.php rename to src/User/Transport/AutoMapper/UserGroup/RequestMapper.php index 37eee62e..40668467 100644 --- a/src/AutoMapper/UserGroup/RequestMapper.php +++ b/src/User/Transport/AutoMapper/UserGroup/RequestMapper.php @@ -2,17 +2,17 @@ declare(strict_types=1); -namespace App\AutoMapper\UserGroup; +namespace App\User\Transport\AutoMapper\UserGroup; -use App\AutoMapper\RestRequestMapper; -use App\Entity\Role; -use App\Resource\RoleResource; +use App\General\Transport\AutoMapper\RestRequestMapper; +use App\Role\Application\Resource\RoleResource; +use App\Role\Domain\Entity\Role; use Throwable; /** * Class RequestMapper * - * @package App\AutoMapper + * @package App\User */ class RequestMapper extends RestRequestMapper { diff --git a/src/Command/Traits/ApiKeyUserManagementHelperTrait.php b/src/User/Transport/Command/Traits/ApiKeyUserManagementHelperTrait.php similarity index 86% rename from src/Command/Traits/ApiKeyUserManagementHelperTrait.php rename to src/User/Transport/Command/Traits/ApiKeyUserManagementHelperTrait.php index 972fbd92..74febff0 100644 --- a/src/Command/Traits/ApiKeyUserManagementHelperTrait.php +++ b/src/User/Transport/Command/Traits/ApiKeyUserManagementHelperTrait.php @@ -2,9 +2,10 @@ declare(strict_types=1); -namespace App\Command\Traits; +namespace App\User\Transport\Command\Traits; -use App\Security\RolesService; +use App\General\Transport\Command\Traits\GetApplicationTrait; +use App\Role\Application\Security\RolesService; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\OutputInterface; use Throwable; @@ -12,7 +13,7 @@ /** * Trait ApiKeyUserManagementHelperTrait * - * @package App\Command\Traits + * @package App\User */ trait ApiKeyUserManagementHelperTrait { diff --git a/src/Command/User/CreateUserCommand.php b/src/User/Transport/Command/User/CreateUserCommand.php similarity index 80% rename from src/Command/User/CreateUserCommand.php rename to src/User/Transport/Command/User/CreateUserCommand.php index 52d86dad..cc0b8096 100644 --- a/src/Command/User/CreateUserCommand.php +++ b/src/User/Transport/Command/User/CreateUserCommand.php @@ -2,18 +2,19 @@ declare(strict_types=1); -namespace App\Command\User; - -use App\Command\HelperConfigure; -use App\Command\Traits\ApiKeyUserManagementHelperTrait; -use App\Command\Traits\SymfonyStyleTrait; -use App\DTO\User\UserCreate as UserDto; -use App\Form\Type\Console\UserType; -use App\Repository\RoleRepository; -use App\Resource\UserGroupResource; -use App\Resource\UserResource; -use App\Security\RolesService; +namespace App\User\Transport\Command\User; + +use App\General\Transport\Command\HelperConfigure; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\Role\Application\Security\RolesService; +use App\Role\Domain\Repository\Interfaces\RoleRepositoryInterface; +use App\User\Application\DTO\User\UserCreate as UserDto; +use App\User\Application\Resource\UserGroupResource; +use App\User\Application\Resource\UserResource; +use App\User\Transport\Command\Traits\ApiKeyUserManagementHelperTrait; +use App\User\Transport\Form\Type\Console\UserType; use Matthias\SymfonyConsoleForm\Console\Helper\FormHelper; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -24,13 +25,18 @@ /** * Class CreateUserCommand * - * @package App\Command\User + * @package App\User */ +#[AsCommand( + name: self::NAME, + description: 'Console command to create user to database', +)] class CreateUserCommand extends Command { use ApiKeyUserManagementHelperTrait; use SymfonyStyleTrait; + public const NAME = 'user:create'; private const PARAMETER_NAME = 'name'; private const PARAMETER_DESCRIPTION = 'description'; @@ -67,17 +73,17 @@ class CreateUserCommand extends Command /** * Constructor * + * @param \App\Role\Infrastructure\Repository\RoleRepository $roleRepository + * * @throws LogicException */ public function __construct( private UserResource $userResource, private UserGroupResource $userGroupResource, private RolesService $rolesService, - private RoleRepository $roleRepository, + private RoleRepositoryInterface $roleRepository, ) { - parent::__construct('user:create'); - - $this->setDescription('Console command to create user to database'); + parent::__construct(); } public function getRolesService(): RolesService diff --git a/src/Command/User/CreateUserGroupCommand.php b/src/User/Transport/Command/User/CreateUserGroupCommand.php similarity index 77% rename from src/Command/User/CreateUserGroupCommand.php rename to src/User/Transport/Command/User/CreateUserGroupCommand.php index 54f90d12..b98b73b9 100644 --- a/src/Command/User/CreateUserGroupCommand.php +++ b/src/User/Transport/Command/User/CreateUserGroupCommand.php @@ -2,16 +2,17 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\User\Transport\Command\User; -use App\Command\HelperConfigure; -use App\Command\Traits\GetApplicationTrait; -use App\Command\Traits\SymfonyStyleTrait; -use App\DTO\UserGroup\UserGroupCreate as UserGroupDto; -use App\Form\Type\Console\UserGroupType; -use App\Repository\RoleRepository; -use App\Resource\UserGroupResource; +use App\General\Transport\Command\HelperConfigure; +use App\General\Transport\Command\Traits\GetApplicationTrait; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\Role\Domain\Repository\Interfaces\RoleRepositoryInterface; +use App\User\Application\DTO\UserGroup\UserGroupCreate as UserGroupDto; +use App\User\Application\Resource\UserGroupResource; +use App\User\Transport\Form\Type\Console\UserGroupType; use Matthias\SymfonyConsoleForm\Console\Helper\FormHelper; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\InvalidArgumentException; use Symfony\Component\Console\Exception\LogicException; @@ -24,13 +25,19 @@ /** * Class CreateUserGroupCommand * - * @package App\Command\User + * @package App\User */ +#[AsCommand( + name: self::NAME, + description: 'Console command to create user groups', +)] class CreateUserGroupCommand extends Command { use GetApplicationTrait; use SymfonyStyleTrait; + public const NAME = 'user:create-group'; + /** * @var array> */ @@ -48,15 +55,15 @@ class CreateUserGroupCommand extends Command /** * Constructor * + * @param \App\Role\Infrastructure\Repository\RoleRepository $roleRepository + * * @throws LogicException */ public function __construct( private UserGroupResource $userGroupResource, - private RoleRepository $roleRepository, + private RoleRepositoryInterface $roleRepository, ) { - parent::__construct('user:create-group'); - - $this->setDescription('Console command to create user groups'); + parent::__construct(); } /** diff --git a/src/Command/User/EditUserCommand.php b/src/User/Transport/Command/User/EditUserCommand.php similarity index 78% rename from src/Command/User/EditUserCommand.php rename to src/User/Transport/Command/User/EditUserCommand.php index 8a733ac7..c3e5b46c 100644 --- a/src/Command/User/EditUserCommand.php +++ b/src/User/Transport/Command/User/EditUserCommand.php @@ -2,14 +2,15 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\User\Transport\Command\User; -use App\Command\Traits\SymfonyStyleTrait; -use App\DTO\User\UserUpdate as UserDto; -use App\Entity\User as UserEntity; -use App\Form\Type\Console\UserType; -use App\Resource\UserResource; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\User\Application\DTO\User\UserUpdate as UserDto; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User as UserEntity; +use App\User\Transport\Form\Type\Console\UserType; use Matthias\SymfonyConsoleForm\Console\Helper\FormHelper; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -19,12 +20,18 @@ /** * Class EditUserCommand * - * @package App\Command\User + * @package App\User */ +#[AsCommand( + name: self::NAME, + description: 'Command to edit existing user', +)] class EditUserCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'user:edit'; + /** * Constructor * @@ -34,9 +41,7 @@ public function __construct( private UserResource $userResource, private UserHelper $userHelper, ) { - parent::__construct('user:edit'); - - $this->setDescription('Command to edit existing user'); + parent::__construct(); } /** diff --git a/src/Command/User/EditUserGroupCommand.php b/src/User/Transport/Command/User/EditUserGroupCommand.php similarity index 78% rename from src/Command/User/EditUserGroupCommand.php rename to src/User/Transport/Command/User/EditUserGroupCommand.php index 264da7a7..f8d6f820 100644 --- a/src/Command/User/EditUserGroupCommand.php +++ b/src/User/Transport/Command/User/EditUserGroupCommand.php @@ -2,14 +2,15 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\User\Transport\Command\User; -use App\Command\Traits\SymfonyStyleTrait; -use App\DTO\UserGroup\UserGroupPatch as UserGroupDto; -use App\Entity\UserGroup as UserGroupEntity; -use App\Form\Type\Console\UserGroupType; -use App\Resource\UserGroupResource; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\User\Application\DTO\UserGroup\UserGroupPatch as UserGroupDto; +use App\User\Application\Resource\UserGroupResource; +use App\User\Domain\Entity\UserGroup as UserGroupEntity; +use App\User\Transport\Form\Type\Console\UserGroupType; use Matthias\SymfonyConsoleForm\Console\Helper\FormHelper; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -19,12 +20,18 @@ /** * Class EditUserGroupCommand * - * @package App\Command\User + * @package App\User */ +#[AsCommand( + name: self::NAME, + description: 'Command to edit existing user group', +)] class EditUserGroupCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'user:edit-group'; + /** * Constructor * @@ -34,9 +41,7 @@ public function __construct( private UserGroupResource $userGroupResource, private UserHelper $userHelper, ) { - parent::__construct('user:edit-group'); - - $this->setDescription('Command to edit existing user group'); + parent::__construct(); } /** diff --git a/src/Command/User/ListUserGroupsCommand.php b/src/User/Transport/Command/User/ListUserGroupsCommand.php similarity index 82% rename from src/Command/User/ListUserGroupsCommand.php rename to src/User/Transport/Command/User/ListUserGroupsCommand.php index 591906c4..80a40c6b 100644 --- a/src/Command/User/ListUserGroupsCommand.php +++ b/src/User/Transport/Command/User/ListUserGroupsCommand.php @@ -2,13 +2,14 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\User\Transport\Command\User; -use App\Command\Traits\SymfonyStyleTrait; -use App\Entity\User; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\User\Application\Resource\UserGroupResource; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Closure; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -22,12 +23,18 @@ /** * Class ListUserGroupsCommand * - * @package App\Command\User + * @package App\User */ +#[AsCommand( + name: self::NAME, + description: 'Console command to list user groups', +)] class ListUserGroupsCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'user:list-groups'; + /** * Constructor * @@ -36,9 +43,7 @@ class ListUserGroupsCommand extends Command public function __construct( private UserGroupResource $userGroupResource, ) { - parent::__construct('user:list-groups'); - - $this->setDescription('Console command to list user groups'); + parent::__construct(); } /** diff --git a/src/Command/User/ListUsersCommand.php b/src/User/Transport/Command/User/ListUsersCommand.php similarity index 82% rename from src/Command/User/ListUsersCommand.php rename to src/User/Transport/Command/User/ListUsersCommand.php index a2dd924d..5e0f4475 100644 --- a/src/Command/User/ListUsersCommand.php +++ b/src/User/Transport/Command/User/ListUsersCommand.php @@ -2,14 +2,15 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\User\Transport\Command\User; -use App\Command\Traits\SymfonyStyleTrait; -use App\Entity\User; -use App\Entity\UserGroup; -use App\Resource\UserResource; -use App\Security\RolesService; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\Role\Application\Security\RolesService; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Closure; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -23,12 +24,18 @@ /** * Class ListUsersCommand * - * @package App\Command\User + * @package App\User */ +#[AsCommand( + name: self::NAME, + description: 'Console command to list users', +)] class ListUsersCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'user:list'; + /** * Constructor * @@ -38,9 +45,7 @@ public function __construct( private UserResource $userResource, private RolesService $roles, ) { - parent::__construct('user:list'); - - $this->setDescription('Console command to list users'); + parent::__construct(); } /** diff --git a/src/User/Transport/Command/User/ManagementCommand.php b/src/User/Transport/Command/User/ManagementCommand.php new file mode 100644 index 00000000..edd15990 --- /dev/null +++ b/src/User/Transport/Command/User/ManagementCommand.php @@ -0,0 +1,46 @@ +setChoices([ + ListUsersCommand::NAME => 'List users', + ListUserGroupsCommand::NAME => 'List user groups', + CreateUserCommand::NAME => 'Create user', + CreateUserGroupCommand::NAME => 'Create user group', + EditUserCommand::NAME => 'Edit user', + EditUserGroupCommand::NAME => 'Edit user group', + RemoveUserCommand::NAME => 'Remove user', + RemoveUserGroupCommand::NAME => 'Remove user group', + '0' => 'Exit', + ]); + } +} diff --git a/src/Command/User/RemoveUserCommand.php b/src/User/Transport/Command/User/RemoveUserCommand.php similarity index 76% rename from src/Command/User/RemoveUserCommand.php rename to src/User/Transport/Command/User/RemoveUserCommand.php index 4764111f..48891413 100644 --- a/src/Command/User/RemoveUserCommand.php +++ b/src/User/Transport/Command/User/RemoveUserCommand.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\User\Transport\Command\User; -use App\Command\Traits\SymfonyStyleTrait; -use App\Entity\User; -use App\Resource\UserResource; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -16,12 +17,18 @@ /** * Class RemoveUserCommand * - * @package App\Command\User + * @package App\User */ +#[AsCommand( + name: self::NAME, + description: 'Console command to remove existing user', +)] class RemoveUserCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'user:remove'; + /** * Constructor * @@ -31,9 +38,7 @@ public function __construct( private UserResource $userResource, private UserHelper $userHelper, ) { - parent::__construct('user:remove'); - - $this->setDescription('Console command to remove existing user'); + parent::__construct(); } /** diff --git a/src/Command/User/RemoveUserGroupCommand.php b/src/User/Transport/Command/User/RemoveUserGroupCommand.php similarity index 76% rename from src/Command/User/RemoveUserGroupCommand.php rename to src/User/Transport/Command/User/RemoveUserGroupCommand.php index 1c23c736..e450b03b 100644 --- a/src/Command/User/RemoveUserGroupCommand.php +++ b/src/User/Transport/Command/User/RemoveUserGroupCommand.php @@ -2,11 +2,12 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\User\Transport\Command\User; -use App\Command\Traits\SymfonyStyleTrait; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; +use App\General\Transport\Command\Traits\SymfonyStyleTrait; +use App\User\Application\Resource\UserGroupResource; +use App\User\Domain\Entity\UserGroup; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; use Symfony\Component\Console\Input\InputInterface; @@ -16,12 +17,18 @@ /** * Class RemoveUserGroupCommand * - * @package App\Command\User + * @package App\User */ +#[AsCommand( + name: self::NAME, + description: 'Console command to remove existing user group', +)] class RemoveUserGroupCommand extends Command { use SymfonyStyleTrait; + public const NAME = 'user:remove-group'; + /** * Constructor * @@ -31,9 +38,7 @@ public function __construct( private UserGroupResource $userGroupResource, private UserHelper $userHelper, ) { - parent::__construct('user:remove-group'); - - $this->setDescription('Console command to remove existing user group'); + parent::__construct(); } /** diff --git a/src/Command/User/UserHelper.php b/src/User/Transport/Command/User/UserHelper.php similarity index 94% rename from src/Command/User/UserHelper.php rename to src/User/Transport/Command/User/UserHelper.php index 717087ab..6957c224 100644 --- a/src/Command/User/UserHelper.php +++ b/src/User/Transport/Command/User/UserHelper.php @@ -2,12 +2,12 @@ declare(strict_types=1); -namespace App\Command\User; +namespace App\User\Transport\Command\User; -use App\Entity\User as UserEntity; -use App\Entity\UserGroup as UserGroupEntity; -use App\Resource\UserGroupResource; -use App\Resource\UserResource; +use App\User\Application\Resource\UserGroupResource; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User as UserEntity; +use App\User\Domain\Entity\UserGroup as UserGroupEntity; use Closure; use Symfony\Component\Console\Style\SymfonyStyle; use Throwable; @@ -18,7 +18,7 @@ /** * Class UserHelper * - * @package App\Command\User + * @package App\User */ class UserHelper { diff --git a/src/Controller/Api/v1/Auth/GetTokenController.php b/src/User/Transport/Controller/Api/v1/Auth/GetTokenController.php similarity index 93% rename from src/Controller/Api/v1/Auth/GetTokenController.php rename to src/User/Transport/Controller/Api/v1/Auth/GetTokenController.php index 5a6a5622..70f6dc96 100644 --- a/src/Controller/Api/v1/Auth/GetTokenController.php +++ b/src/User/Transport/Controller/Api/v1/Auth/GetTokenController.php @@ -2,9 +2,10 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Auth; +namespace App\User\Transport\Controller\Api\v1\Auth; -use App\Utils\JSON; +use App\General\Domain\Utils\JSON; +use App\User\Domain\Entity\User; use JsonException; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; @@ -20,7 +21,7 @@ * * @OA\Tag(name="Authentication") * - * @package App\Controller\Api\v1\Auth + * @package App\User */ class GetTokenController { @@ -36,7 +37,7 @@ class GetTokenController * @OA\JsonContent( * type="object", * example={"username": "username", "password": "password"}, - * @OA\Property(property="username", ref=@Model(type=\App\Entity\User::class, groups={"User.username"})), + * @OA\Property(property="username", ref=@Model(type=User::class, groups={"User.username"})), * @OA\Property(property="password", type="string"), * ) * ) diff --git a/src/Controller/Api/v1/Profile/GroupsController.php b/src/User/Transport/Controller/Api/v1/Profile/GroupsController.php similarity index 94% rename from src/Controller/Api/v1/Profile/GroupsController.php rename to src/User/Transport/Controller/Api/v1/Profile/GroupsController.php index 787c28ce..7cead978 100644 --- a/src/Controller/Api/v1/Profile/GroupsController.php +++ b/src/User/Transport/Controller/Api/v1/Profile/GroupsController.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Profile; +namespace App\User\Transport\Controller\Api\v1\Profile; -use App\Entity\User; -use App\Entity\UserGroup; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -20,7 +20,7 @@ * * @OA\Tag(name="Profile") * - * @package App\Controller\Api\v1\Profile + * @package App\User */ class GroupsController { diff --git a/src/Controller/Api/v1/Profile/IndexController.php b/src/User/Transport/Controller/Api/v1/Profile/IndexController.php similarity index 92% rename from src/Controller/Api/v1/Profile/IndexController.php rename to src/User/Transport/Controller/Api/v1/Profile/IndexController.php index f82b04fd..0ca6ee52 100644 --- a/src/Controller/Api/v1/Profile/IndexController.php +++ b/src/User/Transport/Controller/Api/v1/Profile/IndexController.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Profile; +namespace App\User\Transport\Controller\Api\v1\Profile; -use App\Entity\User; -use App\Security\RolesService; -use App\Utils\JSON; +use App\General\Domain\Utils\JSON; +use App\Role\Application\Security\RolesService; +use App\User\Domain\Entity\User; use JsonException; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; @@ -22,7 +22,7 @@ * * @OA\Tag(name="Profile") * - * @package App\Controller\Api\v1\Profile + * @package App\User */ class IndexController { diff --git a/src/Controller/Api/v1/Profile/RolesController.php b/src/User/Transport/Controller/Api/v1/Profile/RolesController.php similarity index 91% rename from src/Controller/Api/v1/Profile/RolesController.php rename to src/User/Transport/Controller/Api/v1/Profile/RolesController.php index cbde095f..3c313b69 100644 --- a/src/Controller/Api/v1/Profile/RolesController.php +++ b/src/User/Transport/Controller/Api/v1/Profile/RolesController.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\Profile; +namespace App\User\Transport\Controller\Api\v1\Profile; -use App\Entity\User; -use App\Security\RolesService; +use App\Role\Application\Security\RolesService; +use App\User\Domain\Entity\User; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\HttpFoundation\JsonResponse; @@ -18,7 +18,7 @@ * * @OA\Tag(name="Profile") * - * @package App\Controller\Api\v1\Profile + * @package App\User */ class RolesController { diff --git a/src/Controller/Api/v1/User/AttachUserGroupController.php b/src/User/Transport/Controller/Api/v1/User/AttachUserGroupController.php similarity index 90% rename from src/Controller/Api/v1/User/AttachUserGroupController.php rename to src/User/Transport/Controller/Api/v1/User/AttachUserGroupController.php index dd628993..6f8e5893 100644 --- a/src/Controller/Api/v1/User/AttachUserGroupController.php +++ b/src/User/Transport/Controller/Api/v1/User/AttachUserGroupController.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\User; +namespace App\User\Transport\Controller\Api\v1\User; -use App\Entity\User; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; -use App\Resource\UserResource; -use App\Security\RolesService; +use App\Role\Domain\Entity\Role; +use App\User\Application\Resource\UserGroupResource; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -25,7 +25,7 @@ * * @OA\Tag(name="User Management") * - * @package App\Controller\Api\v1\User + * @package App\User */ class AttachUserGroupController { @@ -66,7 +66,7 @@ public function __construct( * type="array", * @OA\Items( * ref=@Model( - * type=\App\Entity\UserGroup::class, + * type=\App\User\Domain\Entity\UserGroup::class, * groups={"UserGroup", "UserGroup.role"}, * ), * ), @@ -79,7 +79,7 @@ public function __construct( * type="array", * @OA\Items( * ref=@Model( - * type=\App\Entity\UserGroup::class, + * type=\App\User\Domain\Entity\UserGroup::class, * groups={"UserGroup", "UserGroup.role"}, * ), * ), @@ -116,7 +116,7 @@ public function __construct( ], methods: [Request::METHOD_POST], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] #[ParamConverter( data: 'user', class: UserResource::class, diff --git a/src/Controller/Api/v1/User/DeleteUserController.php b/src/User/Transport/Controller/Api/v1/User/DeleteUserController.php similarity index 87% rename from src/Controller/Api/v1/User/DeleteUserController.php rename to src/User/Transport/Controller/Api/v1/User/DeleteUserController.php index 993f7180..c1c5d7fe 100644 --- a/src/Controller/Api/v1/User/DeleteUserController.php +++ b/src/User/Transport/Controller/Api/v1/User/DeleteUserController.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\User; +namespace App\User\Transport\Controller\Api\v1\User; -use App\Entity\User; -use App\Resource\UserResource; -use App\Rest\Controller; -use App\Rest\Traits\Methods; -use App\Security\RolesService; +use App\General\Transport\Rest\Controller; +use App\General\Transport\Rest\Traits\Methods; +use App\Role\Domain\Entity\Role; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -24,7 +24,7 @@ * * @OA\Tag(name="User Management") * - * @package App\Controller\Api\v1\User + * @package App\User */ class DeleteUserController extends Controller { @@ -68,7 +68,7 @@ public function __construct( ], methods: [Request::METHOD_DELETE], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] #[ParamConverter( data: 'requestUser', class: UserResource::class, diff --git a/src/Controller/Api/v1/User/DetachUserGroupController.php b/src/User/Transport/Controller/Api/v1/User/DetachUserGroupController.php similarity index 90% rename from src/Controller/Api/v1/User/DetachUserGroupController.php rename to src/User/Transport/Controller/Api/v1/User/DetachUserGroupController.php index a2a11fbb..9bfd9614 100644 --- a/src/Controller/Api/v1/User/DetachUserGroupController.php +++ b/src/User/Transport/Controller/Api/v1/User/DetachUserGroupController.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\User; +namespace App\User\Transport\Controller\Api\v1\User; -use App\Entity\User; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; -use App\Resource\UserResource; -use App\Security\RolesService; +use App\Role\Domain\Entity\Role; +use App\User\Application\Resource\UserGroupResource; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -24,7 +24,7 @@ * * @OA\Tag(name="User Management") * - * @package App\Controller\Api\v1\User + * @package App\User */ class DetachUserGroupController { @@ -65,7 +65,7 @@ public function __construct( * type="array", * @OA\Items( * ref=@Model( - * type=\App\Entity\UserGroup::class, + * type=\App\User\Domain\Entity\UserGroup::class, * groups={"UserGroup", "UserGroup.role"}, * ), * ), @@ -102,7 +102,7 @@ public function __construct( ], methods: [Request::METHOD_DELETE], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] #[ParamConverter( data: 'user', class: UserResource::class, diff --git a/src/Controller/Api/v1/User/UserController.php b/src/User/Transport/Controller/Api/v1/User/UserController.php similarity index 74% rename from src/Controller/Api/v1/User/UserController.php rename to src/User/Transport/Controller/Api/v1/User/UserController.php index 140d9c57..0053b2bd 100644 --- a/src/Controller/Api/v1/User/UserController.php +++ b/src/User/Transport/Controller/Api/v1/User/UserController.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\User; +namespace App\User\Transport\Controller\Api\v1\User; -use App\DTO\User\UserCreate; -use App\DTO\User\UserPatch; -use App\DTO\User\UserUpdate; -use App\Resource\UserResource; -use App\Rest\Controller; -use App\Rest\ResponseHandler; -use App\Rest\Traits\Actions; +use App\General\Transport\Rest\Controller; +use App\General\Transport\Rest\ResponseHandler; +use App\General\Transport\Rest\Traits\Actions; +use App\User\Application\DTO\User\UserCreate; +use App\User\Application\DTO\User\UserPatch; +use App\User\Application\DTO\User\UserUpdate; +use App\User\Application\Resource\UserResource; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\Routing\Annotation\Route; @@ -21,7 +21,7 @@ * * @OA\Tag(name="User Management") * - * @package App\Controller\Api\v1\User + * @package App\User * * @method UserResource getResource() * @method ResponseHandler getResponseHandler() diff --git a/src/Controller/Api/v1/User/UserGroupsController.php b/src/User/Transport/Controller/Api/v1/User/UserGroupsController.php similarity index 91% rename from src/Controller/Api/v1/User/UserGroupsController.php rename to src/User/Transport/Controller/Api/v1/User/UserGroupsController.php index 7ba81498..bfc30368 100644 --- a/src/Controller/Api/v1/User/UserGroupsController.php +++ b/src/User/Transport/Controller/Api/v1/User/UserGroupsController.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\User; +namespace App\User\Transport\Controller\Api\v1\User; -use App\Entity\User; -use App\Entity\UserGroup; -use App\Resource\UserResource; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; @@ -21,7 +21,7 @@ * * @OA\Tag(name="User Management") * - * @package App\Controller\Api\v1\User + * @package App\User */ class UserGroupsController { @@ -40,7 +40,7 @@ public function __construct( * type="array", * @OA\Items( * ref=@Model( - * type=\App\Entity\UserGroup::class, + * type=\App\User\Domain\Entity\UserGroup::class, * groups={"UserGroup", "UserGroup.role"}, * ), * ), diff --git a/src/Controller/Api/v1/User/UserRolesController.php b/src/User/Transport/Controller/Api/v1/User/UserRolesController.php similarity index 91% rename from src/Controller/Api/v1/User/UserRolesController.php rename to src/User/Transport/Controller/Api/v1/User/UserRolesController.php index d2aa83bc..9cf248bf 100644 --- a/src/Controller/Api/v1/User/UserRolesController.php +++ b/src/User/Transport/Controller/Api/v1/User/UserRolesController.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\User; +namespace App\User\Transport\Controller\Api\v1\User; -use App\Entity\User; -use App\Resource\UserResource; -use App\Security\RolesService; +use App\Role\Application\Security\RolesService; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; @@ -19,7 +19,7 @@ * * @OA\Tag(name="User Management") * - * @package App\Controller\Api\v1\User + * @package App\User */ class UserRolesController { diff --git a/src/Controller/Api/v1/UserGroup/AttachUserController.php b/src/User/Transport/Controller/Api/v1/UserGroup/AttachUserController.php similarity index 90% rename from src/Controller/Api/v1/UserGroup/AttachUserController.php rename to src/User/Transport/Controller/Api/v1/UserGroup/AttachUserController.php index d4a651a1..3ec1581b 100644 --- a/src/Controller/Api/v1/UserGroup/AttachUserController.php +++ b/src/User/Transport/Controller/Api/v1/UserGroup/AttachUserController.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\UserGroup; +namespace App\User\Transport\Controller\Api\v1\UserGroup; -use App\Entity\User; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; -use App\Resource\UserResource; -use App\Security\RolesService; +use App\Role\Domain\Entity\Role; +use App\User\Application\Resource\UserGroupResource; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -25,7 +25,7 @@ * * @OA\Tag(name="UserGroup Management") * - * @package App\Controller\Api\v1\UserGroup + * @package App\User */ class AttachUserController { @@ -66,7 +66,7 @@ public function __construct( * type="array", * @OA\Items( * ref=@Model( - * type=\App\Entity\User::class, + * type=\App\User\Domain\Entity\User::class, * groups={"User"}, * ), * ), @@ -79,7 +79,7 @@ public function __construct( * type="array", * @OA\Items( * ref=@Model( - * type=\App\Entity\User::class, + * type=\App\User\Domain\Entity\User::class, * groups={"User"}, * ), * ), @@ -116,7 +116,7 @@ public function __construct( ], methods: [Request::METHOD_POST], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] #[ParamConverter( data: 'userGroup', class: UserGroupResource::class, diff --git a/src/Controller/Api/v1/UserGroup/DetachUserController.php b/src/User/Transport/Controller/Api/v1/UserGroup/DetachUserController.php similarity index 90% rename from src/Controller/Api/v1/UserGroup/DetachUserController.php rename to src/User/Transport/Controller/Api/v1/UserGroup/DetachUserController.php index 50cef095..8378d92d 100644 --- a/src/Controller/Api/v1/UserGroup/DetachUserController.php +++ b/src/User/Transport/Controller/Api/v1/UserGroup/DetachUserController.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\UserGroup; +namespace App\User\Transport\Controller\Api\v1\UserGroup; -use App\Entity\User; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; -use App\Resource\UserResource; -use App\Security\RolesService; +use App\Role\Domain\Entity\Role; +use App\User\Application\Resource\UserGroupResource; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -24,7 +24,7 @@ * * @OA\Tag(name="UserGroup Management") * - * @package App\Controller\Api\v1\UserGroup + * @package App\User */ class DetachUserController { @@ -65,7 +65,7 @@ public function __construct( * type="array", * @OA\Items( * ref=@Model( - * type=\App\Entity\User::class, + * type=\App\User\Domain\Entity\User::class, * groups={"User"}, * ), * ), @@ -102,7 +102,7 @@ public function __construct( ], methods: [Request::METHOD_DELETE], )] - #[IsGranted(RolesService::ROLE_ROOT)] + #[IsGranted(Role::ROLE_ROOT)] #[ParamConverter( data: 'userGroup', class: UserGroupResource::class, diff --git a/src/Controller/Api/v1/UserGroup/UserGroupController.php b/src/User/Transport/Controller/Api/v1/UserGroup/UserGroupController.php similarity index 73% rename from src/Controller/Api/v1/UserGroup/UserGroupController.php rename to src/User/Transport/Controller/Api/v1/UserGroup/UserGroupController.php index 650727c0..64c07fdb 100644 --- a/src/Controller/Api/v1/UserGroup/UserGroupController.php +++ b/src/User/Transport/Controller/Api/v1/UserGroup/UserGroupController.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\UserGroup; +namespace App\User\Transport\Controller\Api\v1\UserGroup; -use App\DTO\UserGroup\UserGroupCreate; -use App\DTO\UserGroup\UserGroupPatch; -use App\DTO\UserGroup\UserGroupUpdate; -use App\Resource\UserGroupResource; -use App\Rest\Controller; -use App\Rest\ResponseHandler; -use App\Rest\Traits\Actions; +use App\General\Transport\Rest\Controller; +use App\General\Transport\Rest\ResponseHandler; +use App\General\Transport\Rest\Traits\Actions; +use App\User\Application\DTO\UserGroup\UserGroupCreate; +use App\User\Application\DTO\UserGroup\UserGroupPatch; +use App\User\Application\DTO\UserGroup\UserGroupUpdate; +use App\User\Application\Resource\UserGroupResource; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Component\Routing\Annotation\Route; @@ -21,7 +21,7 @@ * * @OA\Tag(name="UserGroup Management") * - * @package App\Controller\Api\v1\UserGroup + * @package App\User * * @method UserGroupResource getResource() * @method ResponseHandler getResponseHandler() diff --git a/src/Controller/Api/v1/UserGroup/UsersController.php b/src/User/Transport/Controller/Api/v1/UserGroup/UsersController.php similarity index 85% rename from src/Controller/Api/v1/UserGroup/UsersController.php rename to src/User/Transport/Controller/Api/v1/UserGroup/UsersController.php index aef59768..369c549a 100644 --- a/src/Controller/Api/v1/UserGroup/UsersController.php +++ b/src/User/Transport/Controller/Api/v1/UserGroup/UsersController.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\Controller\Api\v1\UserGroup; +namespace App\User\Transport\Controller\Api\v1\UserGroup; -use App\Entity\User; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; -use App\Resource\UserResource; -use App\Rest\ResponseHandler; -use App\Security\RolesService; +use App\General\Transport\Rest\ResponseHandler; +use App\Role\Domain\Entity\Role; +use App\User\Application\Resource\UserGroupResource; +use App\User\Application\Resource\UserResource; +use App\User\Domain\Entity\User; +use App\User\Domain\Entity\UserGroup; use Nelmio\ApiDocBundle\Annotation\Model; use OpenApi\Annotations as OA; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -24,7 +24,7 @@ * * @OA\Tag(name="UserGroup Management") * - * @package App\Controller\Api\v1\UserGroup + * @package App\User */ class UsersController { @@ -71,7 +71,7 @@ public function __construct( ], methods: [Request::METHOD_GET], )] - #[IsGranted(RolesService::ROLE_ADMIN)] + #[IsGranted(Role::ROLE_ADMIN)] #[ParamConverter( data: 'userGroup', class: UserGroupResource::class, diff --git a/src/EventListener/UserEntityEventListener.php b/src/User/Transport/EventListener/UserEntityEventListener.php similarity index 93% rename from src/EventListener/UserEntityEventListener.php rename to src/User/Transport/EventListener/UserEntityEventListener.php index 36ed4d7f..bc3ff35b 100644 --- a/src/EventListener/UserEntityEventListener.php +++ b/src/User/Transport/EventListener/UserEntityEventListener.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\EventListener; +namespace App\User\Transport\EventListener; -use App\Entity\User; -use App\Security\SecurityUser; +use App\User\Application\Security\SecurityUser; +use App\User\Domain\Entity\User; use Doctrine\Persistence\Event\LifecycleEventArgs; use LengthException; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; @@ -15,7 +15,7 @@ /** * Class UserEntityEventListener * - * @package App\EventSubscriber + * @package App\User */ class UserEntityEventListener { diff --git a/src/EventSubscriber/AuthenticationFailureSubscriber.php b/src/User/Transport/EventSubscriber/AuthenticationFailureSubscriber.php similarity index 81% rename from src/EventSubscriber/AuthenticationFailureSubscriber.php rename to src/User/Transport/EventSubscriber/AuthenticationFailureSubscriber.php index e67176de..03968fa7 100644 --- a/src/EventSubscriber/AuthenticationFailureSubscriber.php +++ b/src/User/Transport/EventSubscriber/AuthenticationFailureSubscriber.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\User\Transport\EventSubscriber; -use App\Doctrine\DBAL\Types\EnumLogLoginType; -use App\Repository\UserRepository; -use App\Service\LoginLoggerService; +use App\General\Domain\Doctrine\DBAL\Types\EnumLogLoginType; +use App\Log\Application\Service\LoginLoggerService; +use App\User\Domain\Repository\Interfaces\UserRepositoryInterface; use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationFailureEvent; use Lexik\Bundle\JWTAuthenticationBundle\Events; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -18,13 +18,16 @@ /** * Class AuthenticationFailureSubscriber * - * @package App\EventSubscriber + * @package App\User */ class AuthenticationFailureSubscriber implements EventSubscriberInterface { + /** + * @param \App\User\Infrastructure\Repository\UserRepository $userRepository + */ public function __construct( private LoginLoggerService $loginLoggerService, - private UserRepository $userRepository, + private UserRepositoryInterface $userRepository, ) { } diff --git a/src/EventSubscriber/AuthenticationSuccessSubscriber.php b/src/User/Transport/EventSubscriber/AuthenticationSuccessSubscriber.php similarity index 76% rename from src/EventSubscriber/AuthenticationSuccessSubscriber.php rename to src/User/Transport/EventSubscriber/AuthenticationSuccessSubscriber.php index c90d62aa..923d004c 100644 --- a/src/EventSubscriber/AuthenticationSuccessSubscriber.php +++ b/src/User/Transport/EventSubscriber/AuthenticationSuccessSubscriber.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\User\Transport\EventSubscriber; -use App\Doctrine\DBAL\Types\EnumLogLoginType; -use App\Repository\UserRepository; -use App\Service\LoginLoggerService; +use App\General\Domain\Doctrine\DBAL\Types\EnumLogLoginType; +use App\Log\Application\Service\LoginLoggerService; +use App\User\Domain\Repository\Interfaces\UserRepositoryInterface; use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent; use Lexik\Bundle\JWTAuthenticationBundle\Events; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -15,13 +15,16 @@ /** * Class AuthenticationSuccessSubscriber * - * @package App\EventSubscriber + * @package App\User */ class AuthenticationSuccessSubscriber implements EventSubscriberInterface { + /** + * @param \App\User\Infrastructure\Repository\UserRepository $userRepository + */ public function __construct( private LoginLoggerService $loginLoggerService, - private UserRepository $userRepository, + private UserRepositoryInterface $userRepository, ) { } diff --git a/src/EventSubscriber/DoctrineExtensionSubscriber.php b/src/User/Transport/EventSubscriber/DoctrineExtensionSubscriber.php similarity index 89% rename from src/EventSubscriber/DoctrineExtensionSubscriber.php rename to src/User/Transport/EventSubscriber/DoctrineExtensionSubscriber.php index 0180ced8..9fa8198c 100644 --- a/src/EventSubscriber/DoctrineExtensionSubscriber.php +++ b/src/User/Transport/EventSubscriber/DoctrineExtensionSubscriber.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\User\Transport\EventSubscriber; -use App\Security\UserTypeIdentification; +use App\User\Application\Security\UserTypeIdentification; use Doctrine\ORM\NonUniqueResultException; use Gedmo\Blameable\BlameableListener; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -13,7 +13,7 @@ /** * Class DoctrineExtensionSubscriber * - * @package App\EventSubscriber + * @package App\User */ class DoctrineExtensionSubscriber implements EventSubscriberInterface { diff --git a/src/EventSubscriber/JWTCreatedSubscriber.php b/src/User/Transport/EventSubscriber/JWTCreatedSubscriber.php similarity index 88% rename from src/EventSubscriber/JWTCreatedSubscriber.php rename to src/User/Transport/EventSubscriber/JWTCreatedSubscriber.php index d51da98f..e41237c3 100644 --- a/src/EventSubscriber/JWTCreatedSubscriber.php +++ b/src/User/Transport/EventSubscriber/JWTCreatedSubscriber.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\User\Transport\EventSubscriber; -use App\Security\SecurityUser; -use App\Service\LocalizationService; +use App\Tool\Domain\Service\Interfaces\LocalizationServiceInterface; +use App\User\Application\Security\SecurityUser; use DateTime; use DateTimeZone; use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent; @@ -21,7 +21,7 @@ /** * Class JWTCreatedSubscriber * - * @package App\EventSubscriber + * @package App\User */ class JWTCreatedSubscriber implements EventSubscriberInterface { @@ -71,16 +71,15 @@ private function setLocalizationData(array &$payload, UserInterface $user): void { $payload['language'] = $user instanceof SecurityUser ? $user->getLanguage() - : LocalizationService::DEFAULT_LANGUAGE; + : LocalizationServiceInterface::DEFAULT_LANGUAGE; $payload['locale'] = $user instanceof SecurityUser ? $user->getLocale() - : LocalizationService::DEFAULT_LOCALE; + : LocalizationServiceInterface::DEFAULT_LOCALE; $payload['timezone'] = $user instanceof SecurityUser ? $user->getTimezone() - : LocalizationService::DEFAULT_TIMEZONE; + : LocalizationServiceInterface::DEFAULT_TIMEZONE; } - /** @noinspection PhpDocMissingThrowsInspection */ /** * Method to set/modify JWT expiration date dynamically. * @@ -89,7 +88,6 @@ private function setLocalizationData(array &$payload, UserInterface $user): void private function setExpiration(array &$payload): void { // Set new exp value for JWT - /* @noinspection PhpUnhandledExceptionInspection */ $payload['exp'] = (new DateTime('+1 day', new DateTimeZone('UTC')))->getTimestamp(); } diff --git a/src/EventSubscriber/JWTDecodedSubscriber.php b/src/User/Transport/EventSubscriber/JWTDecodedSubscriber.php similarity index 97% rename from src/EventSubscriber/JWTDecodedSubscriber.php rename to src/User/Transport/EventSubscriber/JWTDecodedSubscriber.php index b24fccd9..71711237 100644 --- a/src/EventSubscriber/JWTDecodedSubscriber.php +++ b/src/User/Transport/EventSubscriber/JWTDecodedSubscriber.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\User\Transport\EventSubscriber; use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTDecodedEvent; use Lexik\Bundle\JWTAuthenticationBundle\Events; @@ -18,7 +18,7 @@ /** * Class JWTDecodedSubscriber * - * @package App\EventSubscriber + * @package App\User */ class JWTDecodedSubscriber implements EventSubscriberInterface { diff --git a/src/EventSubscriber/LockedUserSubscriber.php b/src/User/Transport/EventSubscriber/LockedUserSubscriber.php similarity index 86% rename from src/EventSubscriber/LockedUserSubscriber.php rename to src/User/Transport/EventSubscriber/LockedUserSubscriber.php index f9ad65fe..2f1bcb4f 100644 --- a/src/EventSubscriber/LockedUserSubscriber.php +++ b/src/User/Transport/EventSubscriber/LockedUserSubscriber.php @@ -2,13 +2,13 @@ declare(strict_types=1); -namespace App\EventSubscriber; +namespace App\User\Transport\EventSubscriber; -use App\Entity\LogLoginFailure; -use App\Entity\User; -use App\Repository\UserRepository; -use App\Resource\LogLoginFailureResource; -use App\Security\SecurityUser; +use App\Log\Application\Resource\LogLoginFailureResource; +use App\Log\Domain\Entity\LogLoginFailure; +use App\User\Application\Security\SecurityUser; +use App\User\Domain\Entity\User; +use App\User\Domain\Repository\Interfaces\UserRepositoryInterface; use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationFailureEvent; use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent; use Lexik\Bundle\JWTAuthenticationBundle\Events; @@ -26,12 +26,15 @@ /** * Class LockedUserSubscriber * - * @package App\EventSubscriber + * @package App\User */ class LockedUserSubscriber implements EventSubscriberInterface { + /** + * @param \App\User\Infrastructure\Repository\UserRepository $userRepository + */ public function __construct( - private UserRepository $userRepository, + private UserRepositoryInterface $userRepository, private LogLoginFailureResource $logLoginFailureResource, private RequestStack $requestStack, private int $lockUserOnLoginFailureAttempts, diff --git a/src/Form/DataTransformer/UserGroupTransformer.php b/src/User/Transport/Form/DataTransformer/UserGroupTransformer.php similarity index 91% rename from src/Form/DataTransformer/UserGroupTransformer.php rename to src/User/Transport/Form/DataTransformer/UserGroupTransformer.php index 9aaee813..a2679381 100644 --- a/src/Form/DataTransformer/UserGroupTransformer.php +++ b/src/User/Transport/Form/DataTransformer/UserGroupTransformer.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Form\DataTransformer; +namespace App\User\Transport\Form\DataTransformer; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; +use App\User\Application\Resource\UserGroupResource; +use App\User\Domain\Entity\UserGroup; use Stringable; use Symfony\Component\Form\DataTransformerInterface; use Symfony\Component\Form\Exception\TransformationFailedException; @@ -18,7 +18,7 @@ /** * Class UserGroupTransformer * - * @package App\Form\Console\DataTransformer + * @package App\User */ class UserGroupTransformer implements DataTransformerInterface { diff --git a/src/Form/Type/Console/UserGroupType.php b/src/User/Transport/Form/Type/Console/UserGroupType.php similarity index 84% rename from src/Form/Type/Console/UserGroupType.php rename to src/User/Transport/Form/Type/Console/UserGroupType.php index 52314e0f..fdb4a5fc 100644 --- a/src/Form/Type/Console/UserGroupType.php +++ b/src/User/Transport/Form/Type/Console/UserGroupType.php @@ -2,15 +2,15 @@ declare(strict_types=1); -namespace App\Form\Type\Console; +namespace App\User\Transport\Form\Type\Console; -use App\DTO\UserGroup\UserGroup; -use App\Entity\Role as RoleEntity; -use App\Form\DataTransformer\RoleTransformer; -use App\Form\Type\Interfaces\FormTypeLabelInterface; -use App\Form\Type\Traits\AddBasicFieldToForm; -use App\Resource\RoleResource; -use App\Security\RolesService; +use App\General\Transport\Form\Type\Interfaces\FormTypeLabelInterface; +use App\General\Transport\Form\Type\Traits\AddBasicFieldToForm; +use App\Role\Application\Resource\RoleResource; +use App\Role\Application\Security\RolesService; +use App\Role\Domain\Entity\Role as RoleEntity; +use App\Role\Transport\Form\DataTransformer\RoleTransformer; +use App\User\Application\DTO\UserGroup\UserGroup; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type; use Symfony\Component\Form\FormBuilderInterface; @@ -21,7 +21,7 @@ /** * Class UserGroupType * - * @package App\Form\Type\Console + * @package App\User */ class UserGroupType extends AbstractType { diff --git a/src/Form/Type/Console/UserType.php b/src/User/Transport/Form/Type/Console/UserType.php similarity index 89% rename from src/Form/Type/Console/UserType.php rename to src/User/Transport/Form/Type/Console/UserType.php index 2e038900..5473a708 100644 --- a/src/Form/Type/Console/UserType.php +++ b/src/User/Transport/Form/Type/Console/UserType.php @@ -2,15 +2,16 @@ declare(strict_types=1); -namespace App\Form\Type\Console; - -use App\DTO\User\User as UserDto; -use App\Form\DataTransformer\UserGroupTransformer; -use App\Form\Type\Interfaces\FormTypeLabelInterface; -use App\Form\Type\Traits\AddBasicFieldToForm; -use App\Form\Type\Traits\UserGroupChoices; -use App\Resource\UserGroupResource; -use App\Service\LocalizationService; +namespace App\User\Transport\Form\Type\Console; + +use App\General\Transport\Form\Type\Interfaces\FormTypeLabelInterface; +use App\General\Transport\Form\Type\Traits\AddBasicFieldToForm; +use App\Tool\Application\Service\LocalizationService; +use App\Tool\Domain\Service\Interfaces\LocalizationServiceInterface; +use App\User\Application\DTO\User\User as UserDto; +use App\User\Application\Resource\UserGroupResource; +use App\User\Transport\Form\DataTransformer\UserGroupTransformer; +use App\User\Transport\Form\Type\Traits\UserGroupChoices; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type; use Symfony\Component\Form\FormBuilderInterface; @@ -24,7 +25,7 @@ /** * Class UserType * - * @package App\Form\Type\Console + * @package App\User */ class UserType extends AbstractType { @@ -152,7 +153,7 @@ private function addLocalizationFieldsToForm(FormBuilderInterface $builder): voi [ FormTypeLabelInterface::LABEL => 'Language', FormTypeLabelInterface::REQUIRED => true, - FormTypeLabelInterface::EMPTY_DATA => LocalizationService::DEFAULT_LANGUAGE, + FormTypeLabelInterface::EMPTY_DATA => LocalizationServiceInterface::DEFAULT_LANGUAGE, FormTypeLabelInterface::CHOICES => array_combine($languages, $languages), ], ); @@ -163,7 +164,7 @@ private function addLocalizationFieldsToForm(FormBuilderInterface $builder): voi [ FormTypeLabelInterface::LABEL => 'Locale', FormTypeLabelInterface::REQUIRED => true, - FormTypeLabelInterface::EMPTY_DATA => LocalizationService::DEFAULT_LOCALE, + FormTypeLabelInterface::EMPTY_DATA => LocalizationServiceInterface::DEFAULT_LOCALE, FormTypeLabelInterface::CHOICES => array_combine($locales, $locales), ], ); @@ -174,7 +175,7 @@ private function addLocalizationFieldsToForm(FormBuilderInterface $builder): voi [ FormTypeLabelInterface::LABEL => 'Timezone', FormTypeLabelInterface::REQUIRED => true, - FormTypeLabelInterface::EMPTY_DATA => LocalizationService::DEFAULT_TIMEZONE, + FormTypeLabelInterface::EMPTY_DATA => LocalizationServiceInterface::DEFAULT_TIMEZONE, FormTypeLabelInterface::CHOICES => $this->getTimeZoneChoices(), ], ); diff --git a/src/Form/Type/Traits/UserGroupChoices.php b/src/User/Transport/Form/Type/Traits/UserGroupChoices.php similarity index 84% rename from src/Form/Type/Traits/UserGroupChoices.php rename to src/User/Transport/Form/Type/Traits/UserGroupChoices.php index 5836fa8e..0f916407 100644 --- a/src/Form/Type/Traits/UserGroupChoices.php +++ b/src/User/Transport/Form/Type/Traits/UserGroupChoices.php @@ -2,10 +2,10 @@ declare(strict_types=1); -namespace App\Form\Type\Traits; +namespace App\User\Transport\Form\Type\Traits; -use App\Entity\UserGroup; -use App\Resource\UserGroupResource; +use App\User\Application\Resource\UserGroupResource; +use App\User\Domain\Entity\UserGroup; use Throwable; use function array_map; @@ -13,7 +13,7 @@ /** * Trait UserGroupChoices * - * @package App\Form\Type\Traits + * @package App\User * * @property UserGroupResource $userGroupResource */ diff --git a/symfony.lock b/symfony.lock index 960c1795..c3f4ce2f 100644 --- a/symfony.lock +++ b/symfony.lock @@ -1,4 +1,7 @@ { + "bamarni/composer-bin-plugin": { + "version": "v1.5.0" + }, "beberlei/doctrineextensions": { "version": "v1.3.0" }, @@ -291,6 +294,9 @@ "config/packages/sensio_framework_extra.yaml" ] }, + "stella-maris/clock": { + "version": "0.1.4" + }, "symfony/amqp-messenger": { "version": "v5.3.4" }, @@ -322,9 +328,6 @@ "config/bootstrap.php" ] }, - "symfony/debug": { - "version": "v4.4.25" - }, "symfony/debug-bundle": { "version": "4.1", "recipe": { @@ -421,9 +424,6 @@ "symfony/http-kernel": { "version": "v4.4.25" }, - "symfony/inflector": { - "version": "v4.4.25" - }, "symfony/intl": { "version": "v4.4.25" }, @@ -511,9 +511,6 @@ "symfony/password-hasher": { "version": "v5.3.4" }, - "symfony/polyfill-ctype": { - "version": "v1.23.0" - }, "symfony/polyfill-intl-grapheme": { "version": "v1.23.1" }, @@ -526,24 +523,9 @@ "symfony/polyfill-intl-normalizer": { "version": "v1.23.0" }, - "symfony/polyfill-mbstring": { - "version": "v1.23.0" - }, "symfony/polyfill-php56": { "version": "v1.20.0" }, - "symfony/polyfill-php72": { - "version": "v1.23.0" - }, - "symfony/polyfill-php73": { - "version": "v1.23.0" - }, - "symfony/polyfill-php80": { - "version": "v1.23.0" - }, - "symfony/polyfill-php81": { - "version": "v1.23.0" - }, "symfony/process": { "version": "v4.4.25" }, @@ -556,9 +538,6 @@ "symfony/proxy-manager-bridge": { "version": "v5.4.2" }, - "symfony/redis-messenger": { - "version": "v5.3.4" - }, "symfony/requirements-checker": { "version": "2.0", "recipe": { @@ -603,9 +582,6 @@ "symfony/security-csrf": { "version": "v4.4.25" }, - "symfony/security-guard": { - "version": "v4.4.25" - }, "symfony/security-http": { "version": "v4.4.25" }, diff --git a/templates/Doctrine/migration.tpl b/templates/Doctrine/migration.tpl index 4b548c6e..ffee590f 100644 --- a/templates/Doctrine/migration.tpl +++ b/templates/Doctrine/migration.tpl @@ -6,6 +6,7 @@ declare(strict_types=1); namespace ; use Doctrine\DBAL\Exception; +use Doctrine\DBAL\Platforms\AbstractMySQLPlatform; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; @@ -37,7 +38,7 @@ final class extends AbstractMigration { // this up() migration is auto-generated, please modify it to your needs $this->abortIf( - $this->connection->getDatabasePlatform()->getName() !== 'mysql', + !$this->connection->getDatabasePlatform() instanceof AbstractMySQLPlatform, 'Migration can only be executed safely on \'mysql\'.' ); @@ -53,7 +54,7 @@ final class extends AbstractMigration { // this down() migration is auto-generated, please modify it to your needs $this->abortIf( - $this->connection->getDatabasePlatform()->getName() !== 'mysql', + !$this->connection->getDatabasePlatform() instanceof AbstractMySQLPlatform, 'Migration can only be executed safely on \'mysql\'.' ); diff --git a/tests/Functional/Controller/Api/DefaultControllerTest.php b/tests/Functional/Controller/Api/DefaultControllerTest.php index 556e159d..7ebbbc83 100644 --- a/tests/Functional/Controller/Api/DefaultControllerTest.php +++ b/tests/Functional/Controller/Api/DefaultControllerTest.php @@ -4,7 +4,7 @@ namespace App\Tests\Functional\Controller\Api; -use App\Utils\Tests\WebTestCase; +use App\General\Transport\Utils\Tests\WebTestCase; use Symfony\Component\HttpFoundation\Response; use Throwable; diff --git a/tests/Functional/Controller/Api/HealthControllerTest.php b/tests/Functional/Controller/Api/HealthControllerTest.php index 8952e0e2..dc24a66c 100644 --- a/tests/Functional/Controller/Api/HealthControllerTest.php +++ b/tests/Functional/Controller/Api/HealthControllerTest.php @@ -4,8 +4,8 @@ namespace App\Tests\Functional\Controller\Api; -use App\Resource\LogRequestResource; -use App\Utils\Tests\WebTestCase; +use App\General\Transport\Utils\Tests\WebTestCase; +use App\Log\Application\Resource\LogRequestResource; use Symfony\Component\HttpFoundation\Response; use Throwable; diff --git a/tests/Functional/Controller/Api/VersionControllerTest.php b/tests/Functional/Controller/Api/VersionControllerTest.php index 12819726..956b8d67 100644 --- a/tests/Functional/Controller/Api/VersionControllerTest.php +++ b/tests/Functional/Controller/Api/VersionControllerTest.php @@ -4,9 +4,9 @@ namespace App\Tests\Functional\Controller\Api; -use App\Resource\LogRequestResource; -use App\Utils\JSON; -use App\Utils\Tests\WebTestCase; +use App\General\Domain\Utils\JSON; +use App\General\Transport\Utils\Tests\WebTestCase; +use App\Log\Application\Resource\LogRequestResource; use Symfony\Component\HttpFoundation\Response; use Throwable; diff --git a/tests/Functional/Controller/CommandSchedulerTest.php b/tests/Functional/Controller/CommandSchedulerTest.php index ee0395d7..6d1e963d 100644 --- a/tests/Functional/Controller/CommandSchedulerTest.php +++ b/tests/Functional/Controller/CommandSchedulerTest.php @@ -4,7 +4,7 @@ namespace App\Tests\Functional\Controller; -use App\Utils\Tests\WebTestCase; +use App\General\Transport\Utils\Tests\WebTestCase; use Symfony\Component\HttpFoundation\Response; use Throwable; diff --git a/tests/Functional/Controller/DocumentationTest.php b/tests/Functional/Controller/DocumentationTest.php index dde8c556..052642aa 100644 --- a/tests/Functional/Controller/DocumentationTest.php +++ b/tests/Functional/Controller/DocumentationTest.php @@ -4,7 +4,7 @@ namespace App\Tests\Functional\Controller; -use App\Utils\Tests\WebTestCase; +use App\General\Transport\Utils\Tests\WebTestCase; use Symfony\Component\HttpFoundation\Response; use Throwable; diff --git a/tools/01_phpunit/composer.json b/tools/01_phpunit/composer.json index c6fae7b8..3846356d 100644 --- a/tools/01_phpunit/composer.json +++ b/tools/01_phpunit/composer.json @@ -4,9 +4,9 @@ "require": {}, "require-dev": { "phpunit/phpunit": "9.5.*", - "symfony/browser-kit": "5.4.*", - "symfony/css-selector": "5.4.*", - "symfony/phpunit-bridge": "5.4.*", + "symfony/browser-kit": "6.0.*", + "symfony/css-selector": "6.0.*", + "symfony/phpunit-bridge": "6.0.*", "roave/security-advisories": "dev-latest" }, "config": { diff --git a/tools/01_phpunit/composer.lock b/tools/01_phpunit/composer.lock index 0b88ac1c..0e0a3740 100644 --- a/tools/01_phpunit/composer.lock +++ b/tools/01_phpunit/composer.lock @@ -4,34 +4,35 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "fa9b972455b93d527c06af63524dc7fc", + "content-hash": "4edf2639f289b803f155df5e6e685946", "packages": [], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^9", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -58,7 +59,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, "funding": [ { @@ -74,38 +75,42 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -121,7 +126,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, "funding": [ { @@ -129,7 +134,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "nikic/php-parser", @@ -249,16 +254,16 @@ }, { "name": "phar-io/version", - "version": "3.1.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "bae7c545bef187884426f042434e561ab1ddb182" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", - "reference": "bae7c545bef187884426f042434e561ab1ddb182", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { @@ -294,9 +299,9 @@ "description": "Library for handling version information and constraints", "support": { "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.1.0" + "source": "https://github.com/phar-io/version/tree/3.2.1" }, - "time": "2021-02-23T14:00:09+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -410,16 +415,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" + "reference": "77a32518733312af16a44300404e945338981de3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", + "reference": "77a32518733312af16a44300404e945338981de3", "shasum": "" }, "require": { @@ -454,9 +459,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" }, - "time": "2022-01-04T19:58:01+00:00" + "time": "2022-03-15T21:29:03+00:00" }, { "name": "phpspec/prophecy", @@ -527,16 +532,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.10", + "version": "9.2.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687" + "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687", - "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", "shasum": "" }, "require": { @@ -592,7 +597,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.10" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15" }, "funding": [ { @@ -600,7 +605,7 @@ "type": "github" } ], - "time": "2021-12-05T09:12:13+00:00" + "time": "2022-03-07T09:28:20+00:00" }, { "name": "phpunit/php-file-iterator", @@ -845,16 +850,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.11", + "version": "9.5.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "2406855036db1102126125537adb1406f7242fdd" + "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2406855036db1102126125537adb1406f7242fdd", - "reference": "2406855036db1102126125537adb1406f7242fdd", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba", + "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba", "shasum": "" }, "require": { @@ -870,7 +875,7 @@ "phar-io/version": "^3.0.2", "php": ">=7.3", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.7", + "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -884,7 +889,7 @@ "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3.4", + "sebastian/type": "^3.0", "sebastian/version": "^3.0.2" }, "require-dev": { @@ -905,11 +910,11 @@ } }, "autoload": { - "classmap": [ - "src/" - ], "files": [ "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -932,7 +937,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.11" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20" }, "funding": [ { @@ -944,7 +949,7 @@ "type": "github" } ], - "time": "2021-12-25T07:07:57+00:00" + "time": "2022-04-01T12:37:26+00:00" }, { "name": "roave/security-advisories", @@ -952,42 +957,49 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199" + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/38da7ef14348ff26d7c415c4ed18b82db07fe199", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e5a0abdd695cd45870e442647ef03a70f2ec1e5", + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", + "admidio/admidio": "<4.1.9", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "akaunting/akaunting": "<2.1.13", + "alextselegidis/easyappointments": "<1.4.3", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", "baserproject/basercms": "<4.5.4", "billz/raspap-webgui": "<=2.6.6", "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", + "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", - "bolt/core": "<4.1.13", + "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<7.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cakephp/cakephp": "<4.0.6", "cardgate/magento2": "<2.0.33", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", @@ -996,17 +1008,21 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.1.6", + "codeigniter4/framework": "<4.1.9", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.23|>=2-alpha.1,<2.1.9", - "concrete5/concrete5": "<8.5.5", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<9", "concrete5/core": "<8.5.7", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|= 4.10.0", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", - "craftcms/cms": "<3.7.14", + "contao/managed-edition": "<=1.5", + "craftcms/cms": "<3.7.29", "croogo/croogo": "<3.0.7", + "cuyz/valinor": ">=0.5,<0.7", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", @@ -1020,15 +1036,16 @@ "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|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<=14.0.4|>= 3.3.beta1, < 13.0.2", - "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<1.2.1", + "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", - "enshrined/svg-sanitize": "<0.13.1", + "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", "ezsystems/demobundle": ">=5.4,<5.4.6.1", @@ -1036,27 +1053,29 @@ "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.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<=1.5.25", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.27", "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-kernel": "<=1.2.5|>=1.3,<1.3.17", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.28", "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=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.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<2022.6", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=0.1.3", + "fenom/fenom": "<=2.12.1", "firebase/php-jwt": "<2", "flarum/core": ">=1,<=1.0.1", "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.9.2", + "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", "francoisjacquet/rosariosis": "<8.1.1", "friendsofsymfony/oauth2-php": "<1.3", @@ -1064,37 +1083,47 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<=0.10.22", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", - "getgrav/grav": "<=1.7.24", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<1.7.31", "getkirby/cms": "<3.5.8", "getkirby/panel": "<2.5.14", "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", + "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/core": ">=4,<4.0.5|>=4.1,<4.1.2", "ibexa/post-install": "<=1.0.4", - "icecoder/icecoder": "<=8", + "icecoder/icecoder": "<=8.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": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "impresscms/impresscms": "<=1.4.2", + "impresscms/impresscms": "<=1.4.3", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "joomla/archive": "<1.1.10", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/input": ">=2,<2.0.2", "joomla/session": "<1.3.1", + "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kevinpapst/kimai2": "<1.16.7", @@ -1102,8 +1131,11 @@ "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/laravel": "<=5.8.38", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -1111,8 +1143,9 @@ "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "librenms/librenms": "<=21.11", + "librenms/librenms": "<22.2.2", "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", @@ -1121,14 +1154,16 @@ "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": "<4|= 2.13.1", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.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", - "microweber/microweber": "<1.2.8", + "microweber/microweber": "<1.3", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", - "modx/revolution": "<2.8", + "modx/revolution": "<= 2.8.3-pl|<2.8", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10-beta,<3.10.2", + "moodle/moodle": "<3.9.13|>=3.10-beta,<3.10.10|>=3.11,<3.11.6", + "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", "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", @@ -1140,15 +1175,16 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", "nukeviet/nukeviet": "<4.3.4", - "nystudio107/craft-seomatic": "<3.3", + "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "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|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.473|>=1.1,<1.1.6|>=2.1,<2.1.12", + "october/system": "<1.0.475|>=1.1,<1.1.11|>=2,<2.1.27", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<19.4.15|>=20,<20.0.13", @@ -1162,58 +1198,65 @@ "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", - "phpoffice/phpexcel": "<1.8.2", + "phpmyadmin/phpmyadmin": "<5.1.3", + "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpservermon/phpservermon": "<=3.5.2", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.2.7", - "pocketmine/pocketmine-mp": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/pimcore": "<10.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<4.2.9", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", + "prestashop/prestashop": ">=1.7,<=1.7.8.2", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "privatebin/privatebin": "<1.4", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.6.6", + "pterodactyl/panel": "<1.7", + "ptrofimov/beanstalk_console": "<1.7.14", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", - "remdex/livehelperchat": "<3.91", + "remdex/livehelperchat": "<3.96", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "rudloff/alltube": "<3.0.3", + "s-cart/s-cart": "<6.7.2", "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/core": "<=6.4.6", - "shopware/platform": "<=6.4.6", + "shopware/core": "<=6.4.9", + "shopware/platform": "<=6.4.9", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.7.7", - "showdoc/showdoc": "<2.10", + "shopware/shopware": "<5.7.9", + "shopware/storefront": "<=6.4.8.1", + "showdoc/showdoc": "<2.10.4", "silverstripe/admin": ">=1,<1.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.7.4", - "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2", + "silverstripe/framework": "<4.10.1", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|= 4.0.0-alpha1", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -1226,12 +1269,14 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.43|>=4,<4.0.3", - "snipe/snipe-it": "<5.3.5", + "snipe/snipe-it": "<5.4.3|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.12.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", @@ -1239,10 +1284,10 @@ "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "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/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.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.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3|>=1.9,<1.9.5", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", "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", @@ -1251,7 +1296,7 @@ "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", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "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|>=5.2,<5.3.12", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -1267,9 +1312,9 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "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,<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|>=5.3,<5.3.2", + "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|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", "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", @@ -1277,7 +1322,9 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", @@ -1286,9 +1333,9 @@ "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", - "tribalsystems/zenario": "<8.8.53370", + "tribalsystems/zenario": "<9.2.55826", "truckersmp/phpwhois": "<=4.3.1", - "twig/twig": "<1.38|>=2,<2.7", + "twig/twig": "<1.38|>=2,<2.14.11|>=3,<3.3.8", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", "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.52|>=8,<=8.7.41|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", @@ -1304,7 +1351,7 @@ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", - "vrana/adminer": "<4.7.9", + "vrana/adminer": "<4.8.1", "wallabag/tcpdf": "<6.2.22", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", @@ -1312,6 +1359,9 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wwbn/avideo": "<=11.6", + "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -1331,10 +1381,10 @@ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": ">=1,<1.8.4", - "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -1386,7 +1436,7 @@ "type": "tidelift" } ], - "time": "2022-01-14T21:13:43+00:00" + "time": "2022-04-29T21:04:00+00:00" }, { "name": "sebastian/cli-parser", @@ -1754,16 +1804,16 @@ }, { "name": "sebastian/environment", - "version": "5.1.3", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", "shasum": "" }, "require": { @@ -1805,7 +1855,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" }, "funding": [ { @@ -1813,7 +1863,7 @@ "type": "github" } ], - "time": "2020-09-28T05:52:38+00:00" + "time": "2022-04-03T09:37:03+00:00" }, { "name": "sebastian/exporter", @@ -1894,16 +1944,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.3", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", - "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { @@ -1946,7 +1996,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -1954,7 +2004,7 @@ "type": "github" } ], - "time": "2021-06-11T13:31:12+00:00" + "time": "2022-02-14T08:28:10+00:00" }, { "name": "sebastian/lines-of-code", @@ -2245,28 +2295,28 @@ }, { "name": "sebastian/type", - "version": "2.3.4", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" + "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -2289,7 +2339,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.4" + "source": "https://github.com/sebastianbergmann/type/tree/3.0.0" }, "funding": [ { @@ -2297,7 +2347,7 @@ "type": "github" } ], - "time": "2021-06-15T12:49:02+00:00" + "time": "2022-03-15T09:54:48+00:00" }, { "name": "sebastian/version", @@ -2354,28 +2404,27 @@ }, { "name": "symfony/browser-kit", - "version": "v5.4.2", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "1fb93b0aab42392aa0a742db205173b49afaf80f" + "reference": "0ec66df981406fd2c9e41acbb526249bd18a0123" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/1fb93b0aab42392aa0a742db205173b49afaf80f", - "reference": "1fb93b0aab42392aa0a742db205173b49afaf80f", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/0ec66df981406fd2c9e41acbb526249bd18a0123", + "reference": "0ec66df981406fd2c9e41acbb526249bd18a0123", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/dom-crawler": "^5.4|^6.0" }, "require-dev": { - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0" + "symfony/css-selector": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" }, "suggest": { "symfony/process": "" @@ -2406,7 +2455,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.4.2" + "source": "https://github.com/symfony/browser-kit/tree/v6.0.3" }, "funding": [ { @@ -2422,25 +2471,24 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:58:21+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.2", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "cfcbee910e159df402603502fe387e8b677c22fd" + "reference": "1955d595c12c111629cc814d3f2a2ff13580508a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/cfcbee910e159df402603502fe387e8b677c22fd", - "reference": "cfcbee910e159df402603502fe387e8b677c22fd", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/1955d595c12c111629cc814d3f2a2ff13580508a", + "reference": "1955d595c12c111629cc814d3f2a2ff13580508a", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -2472,7 +2520,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.2" + "source": "https://github.com/symfony/css-selector/tree/v6.0.3" }, "funding": [ { @@ -2488,87 +2536,20 @@ "type": "tidelift" } ], - "time": "2021-12-16T21:58:21+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", - "shasum": "" - }, - "require": { - "php": ">=8.0.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-11-01T23:48:49+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/dom-crawler", - "version": "v6.0.2", + "version": "v6.0.6", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "bf704b7d995c4908d9906d687b9d4cbfecf01b2c" + "reference": "9b4126901a6146c151d95af3868b1e0e30519ea6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/bf704b7d995c4908d9906d687b9d4cbfecf01b2c", - "reference": "bf704b7d995c4908d9906d687b9d4cbfecf01b2c", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/9b4126901a6146c151d95af3868b1e0e30519ea6", + "reference": "9b4126901a6146c151d95af3868b1e0e30519ea6", "shasum": "" }, "require": { @@ -2612,7 +2593,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.0.2" + "source": "https://github.com/symfony/dom-crawler/tree/v6.0.6" }, "funding": [ { @@ -2628,31 +2609,31 @@ "type": "tidelift" } ], - "time": "2021-12-28T17:22:37+00:00" + "time": "2022-03-02T12:58:14+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v5.4.0", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "59bbd98ee7aa15b9f75c0fc088c7a5cbf7aa9b5c" + "reference": "4959a1eedd473bdb3f19db5b1525d5415dfab471" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/59bbd98ee7aa15b9f75c0fc088c7a5cbf7aa9b5c", - "reference": "59bbd98ee7aa15b9f75c0fc088c7a5cbf7aa9b5c", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/4959a1eedd473bdb3f19db5b1525d5415dfab471", + "reference": "4959a1eedd473bdb3f19db5b1525d5415dfab471", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=7.1.3" }, "conflict": { "phpunit/phpunit": "<7.5|9.1.2" }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0" + "symfony/deprecation-contracts": "^2.1|^3.0", + "symfony/error-handler": "^5.4|^6.0" }, "suggest": { "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" @@ -2695,7 +2676,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.0" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.0.8" }, "funding": [ { @@ -2711,11 +2692,11 @@ "type": "tidelift" } ], - "time": "2021-11-29T15:30:56+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -2747,12 +2728,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2777,7 +2758,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -2797,7 +2778,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -2829,12 +2810,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2860,7 +2841,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -2878,89 +2859,6 @@ ], "time": "2021-11-30T18:21:41+00:00" }, - { - "name": "symfony/polyfill-php80", - "version": "v1.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-09-13T13:58:33+00:00" - }, { "name": "theseer/tokenizer", "version": "1.2.1", @@ -3082,5 +2980,5 @@ "platform-overrides": { "php": "8.1.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/tools/02_phpstan/composer.json b/tools/02_phpstan/composer.json index 43d52e06..dd1da8a8 100644 --- a/tools/02_phpstan/composer.json +++ b/tools/02_phpstan/composer.json @@ -3,9 +3,9 @@ "description": "", "require": {}, "require-dev": { - "phpstan/phpstan": "1.4.*", - "phpstan/phpstan-phpunit": "1.0.*", - "phpstan/phpstan-symfony": "1.0.*", + "phpstan/phpstan": "1.6.*", + "phpstan/phpstan-phpunit": "1.1.*", + "phpstan/phpstan-symfony": "1.1.*", "roave/security-advisories": "dev-latest" }, "config": { diff --git a/tools/02_phpstan/composer.lock b/tools/02_phpstan/composer.lock index 09d6b291..5d76b6f4 100644 --- a/tools/02_phpstan/composer.lock +++ b/tools/02_phpstan/composer.lock @@ -4,25 +4,25 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d49fb8ae21a7fbe92f65f77166d3b32d", + "content-hash": "111b8f5a9f990852c4097496744a5ef6", "packages": [], "packages-dev": [ { "name": "phpstan/phpstan", - "version": "1.4.0", + "version": "1.6.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "72b04d97b5e6e60a081f17c416fef35bd521120b" + "reference": "6128620b98292e0b69ea6d799871d77163681c8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/72b04d97b5e6e60a081f17c416fef35bd521120b", - "reference": "72b04d97b5e6e60a081f17c416fef35bd521120b", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/6128620b98292e0b69ea6d799871d77163681c8e", + "reference": "6128620b98292e0b69ea6d799871d77163681c8e", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.2|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -32,11 +32,6 @@ "phpstan.phar" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, "autoload": { "files": [ "bootstrap.php" @@ -49,7 +44,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.4.0" + "source": "https://github.com/phpstan/phpstan/tree/1.6.3" }, "funding": [ { @@ -69,25 +64,25 @@ "type": "tidelift" } ], - "time": "2022-01-14T15:58:47+00:00" + "time": "2022-04-28T11:27:53+00:00" }, { "name": "phpstan/phpstan-phpunit", - "version": "1.0.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-phpunit.git", - "reference": "9eb88c9f689003a8a2a5ae9e010338ee94dc39b3" + "reference": "4a3c437c09075736285d1cabb5c75bf27ed0bc84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/9eb88c9f689003a8a2a5ae9e010338ee94dc39b3", - "reference": "9eb88c9f689003a8a2a5ae9e010338ee94dc39b3", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/4a3c437c09075736285d1cabb5c75bf27ed0bc84", + "reference": "4a3c437c09075736285d1cabb5c75bf27ed0bc84", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "phpstan/phpstan": "^1.0" + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.5.0" }, "conflict": { "phpunit/phpunit": "<7.0" @@ -100,9 +95,6 @@ }, "type": "phpstan-extension", "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, "phpstan": { "includes": [ "extension.neon", @@ -122,28 +114,28 @@ "description": "PHPUnit extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-phpunit/issues", - "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.0.0" + "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.1.1" }, - "time": "2021-10-14T08:03:54+00:00" + "time": "2022-04-20T15:24:25+00:00" }, { "name": "phpstan/phpstan-symfony", - "version": "1.0.6", + "version": "1.1.8", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-symfony.git", - "reference": "d31922ca4bab5684d53dc749d5742f0b455c0149" + "reference": "4bdffcf1033b6c60662a28419d0192e0dda5684f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/d31922ca4bab5684d53dc749d5742f0b455c0149", - "reference": "d31922ca4bab5684d53dc749d5742f0b455c0149", + "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/4bdffcf1033b6c60662a28419d0192e0dda5684f", + "reference": "4bdffcf1033b6c60662a28419d0192e0dda5684f", "shasum": "" }, "require": { "ext-simplexml": "*", "php": "^7.1 || ^8.0", - "phpstan/phpstan": "^1.0" + "phpstan/phpstan": "^1.4" }, "conflict": { "symfony/framework-bundle": "<3.0" @@ -154,12 +146,15 @@ "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-strict-rules": "^1.0", "phpunit/phpunit": "^9.5", + "psr/container": "1.0 || 1.1.1", "symfony/config": "^4.2 || ^5.0", "symfony/console": "^4.0 || ^5.0", + "symfony/dependency-injection": "^4.0 || ^5.0", "symfony/form": "^4.0 || ^5.0", "symfony/framework-bundle": "^4.4 || ^5.0", - "symfony/http-foundation": "^4.0 || ^5.0", + "symfony/http-foundation": "^5.1", "symfony/messenger": "^4.2 || ^5.0", + "symfony/polyfill-php80": "^1.24", "symfony/serializer": "^4.0 || ^5.0" }, "type": "phpstan-extension", @@ -193,9 +188,9 @@ "description": "Symfony Framework extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-symfony/issues", - "source": "https://github.com/phpstan/phpstan-symfony/tree/1.0.6" + "source": "https://github.com/phpstan/phpstan-symfony/tree/1.1.8" }, - "time": "2022-01-08T20:21:36+00:00" + "time": "2022-03-24T07:56:03+00:00" }, { "name": "roave/security-advisories", @@ -203,42 +198,49 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199" + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/38da7ef14348ff26d7c415c4ed18b82db07fe199", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e5a0abdd695cd45870e442647ef03a70f2ec1e5", + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", + "admidio/admidio": "<4.1.9", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "akaunting/akaunting": "<2.1.13", + "alextselegidis/easyappointments": "<1.4.3", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", "baserproject/basercms": "<4.5.4", "billz/raspap-webgui": "<=2.6.6", "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", + "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", - "bolt/core": "<4.1.13", + "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<7.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cakephp/cakephp": "<4.0.6", "cardgate/magento2": "<2.0.33", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", @@ -247,17 +249,21 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.1.6", + "codeigniter4/framework": "<4.1.9", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.23|>=2-alpha.1,<2.1.9", - "concrete5/concrete5": "<8.5.5", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<9", "concrete5/core": "<8.5.7", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|= 4.10.0", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", - "craftcms/cms": "<3.7.14", + "contao/managed-edition": "<=1.5", + "craftcms/cms": "<3.7.29", "croogo/croogo": "<3.0.7", + "cuyz/valinor": ">=0.5,<0.7", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", @@ -271,15 +277,16 @@ "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|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<=14.0.4|>= 3.3.beta1, < 13.0.2", - "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<1.2.1", + "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", - "enshrined/svg-sanitize": "<0.13.1", + "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", "ezsystems/demobundle": ">=5.4,<5.4.6.1", @@ -287,27 +294,29 @@ "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.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<=1.5.25", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.27", "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-kernel": "<=1.2.5|>=1.3,<1.3.17", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.28", "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=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.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<2022.6", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=0.1.3", + "fenom/fenom": "<=2.12.1", "firebase/php-jwt": "<2", "flarum/core": ">=1,<=1.0.1", "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.9.2", + "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", "francoisjacquet/rosariosis": "<8.1.1", "friendsofsymfony/oauth2-php": "<1.3", @@ -315,37 +324,47 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<=0.10.22", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", - "getgrav/grav": "<=1.7.24", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<1.7.31", "getkirby/cms": "<3.5.8", "getkirby/panel": "<2.5.14", "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", + "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/core": ">=4,<4.0.5|>=4.1,<4.1.2", "ibexa/post-install": "<=1.0.4", - "icecoder/icecoder": "<=8", + "icecoder/icecoder": "<=8.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": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "impresscms/impresscms": "<=1.4.2", + "impresscms/impresscms": "<=1.4.3", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "joomla/archive": "<1.1.10", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/input": ">=2,<2.0.2", "joomla/session": "<1.3.1", + "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kevinpapst/kimai2": "<1.16.7", @@ -353,8 +372,11 @@ "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/laravel": "<=5.8.38", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -362,8 +384,9 @@ "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "librenms/librenms": "<=21.11", + "librenms/librenms": "<22.2.2", "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", @@ -372,14 +395,16 @@ "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": "<4|= 2.13.1", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.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", - "microweber/microweber": "<1.2.8", + "microweber/microweber": "<1.3", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", - "modx/revolution": "<2.8", + "modx/revolution": "<= 2.8.3-pl|<2.8", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10-beta,<3.10.2", + "moodle/moodle": "<3.9.13|>=3.10-beta,<3.10.10|>=3.11,<3.11.6", + "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", "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", @@ -391,15 +416,16 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", "nukeviet/nukeviet": "<4.3.4", - "nystudio107/craft-seomatic": "<3.3", + "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "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|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.473|>=1.1,<1.1.6|>=2.1,<2.1.12", + "october/system": "<1.0.475|>=1.1,<1.1.11|>=2,<2.1.27", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<19.4.15|>=20,<20.0.13", @@ -413,58 +439,65 @@ "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", - "phpoffice/phpexcel": "<1.8.2", + "phpmyadmin/phpmyadmin": "<5.1.3", + "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpservermon/phpservermon": "<=3.5.2", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.2.7", - "pocketmine/pocketmine-mp": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/pimcore": "<10.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<4.2.9", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", + "prestashop/prestashop": ">=1.7,<=1.7.8.2", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "privatebin/privatebin": "<1.4", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.6.6", + "pterodactyl/panel": "<1.7", + "ptrofimov/beanstalk_console": "<1.7.14", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", - "remdex/livehelperchat": "<3.91", + "remdex/livehelperchat": "<3.96", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "rudloff/alltube": "<3.0.3", + "s-cart/s-cart": "<6.7.2", "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/core": "<=6.4.6", - "shopware/platform": "<=6.4.6", + "shopware/core": "<=6.4.9", + "shopware/platform": "<=6.4.9", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.7.7", - "showdoc/showdoc": "<2.10", + "shopware/shopware": "<5.7.9", + "shopware/storefront": "<=6.4.8.1", + "showdoc/showdoc": "<2.10.4", "silverstripe/admin": ">=1,<1.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.7.4", - "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2", + "silverstripe/framework": "<4.10.1", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|= 4.0.0-alpha1", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -477,12 +510,14 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.43|>=4,<4.0.3", - "snipe/snipe-it": "<5.3.5", + "snipe/snipe-it": "<5.4.3|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.12.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", @@ -490,10 +525,10 @@ "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "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/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.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.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3|>=1.9,<1.9.5", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", "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", @@ -502,7 +537,7 @@ "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", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "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|>=5.2,<5.3.12", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -518,9 +553,9 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "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,<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|>=5.3,<5.3.2", + "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|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", "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", @@ -528,7 +563,9 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", @@ -537,9 +574,9 @@ "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", - "tribalsystems/zenario": "<8.8.53370", + "tribalsystems/zenario": "<9.2.55826", "truckersmp/phpwhois": "<=4.3.1", - "twig/twig": "<1.38|>=2,<2.7", + "twig/twig": "<1.38|>=2,<2.14.11|>=3,<3.3.8", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", "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.52|>=8,<=8.7.41|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", @@ -555,7 +592,7 @@ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", - "vrana/adminer": "<4.7.9", + "vrana/adminer": "<4.8.1", "wallabag/tcpdf": "<6.2.22", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", @@ -563,6 +600,9 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wwbn/avideo": "<=11.6", + "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -582,10 +622,10 @@ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": ">=1,<1.8.4", - "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -637,7 +677,7 @@ "type": "tidelift" } ], - "time": "2022-01-14T21:13:43+00:00" + "time": "2022-04-29T21:04:00+00:00" } ], "aliases": [], @@ -652,5 +692,5 @@ "platform-overrides": { "php": "8.1.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/tools/03_ecs/composer.json b/tools/03_ecs/composer.json index c88296cd..0119140e 100644 --- a/tools/03_ecs/composer.json +++ b/tools/03_ecs/composer.json @@ -3,8 +3,8 @@ "description": "", "require": {}, "require-dev": { - "friendsofphp/php-cs-fixer": "3.4.*", - "symplify/easy-coding-standard": "10.0.*", + "friendsofphp/php-cs-fixer": "3.8.*", + "symplify/easy-coding-standard": "10.2.*", "roave/security-advisories": "dev-latest" }, "config": { diff --git a/tools/03_ecs/composer.lock b/tools/03_ecs/composer.lock index 6574a076..0f9112b9 100644 --- a/tools/03_ecs/composer.lock +++ b/tools/03_ecs/composer.lock @@ -4,35 +4,35 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ec65774e416cd626d01d6aa8fd0f9ae0", + "content-hash": "e2917e0aa1140b297b4c46e6ecf1baad", "packages": [], "packages-dev": [ { "name": "composer/pcre", - "version": "1.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2" + "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/3d322d715c43a1ac36c7fe215fa59336265500f2", - "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2", + "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1", + "phpstan/phpstan": "^1.3", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" + "symfony/phpunit-bridge": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -60,7 +60,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/1.0.0" + "source": "https://github.com/composer/pcre/tree/3.0.0" }, "funding": [ { @@ -76,27 +76,27 @@ "type": "tidelift" } ], - "time": "2021-12-06T15:17:27+00:00" + "time": "2022-02-25T20:21:48+00:00" }, { "name": "composer/semver", - "version": "3.2.7", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "deac27056b57e46faf136fae7b449eeaa71661ee" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/deac27056b57e46faf136fae7b449eeaa71661ee", - "reference": "deac27056b57e46faf136fae7b449eeaa71661ee", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.54", + "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", @@ -141,7 +141,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.7" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -157,31 +157,31 @@ "type": "tidelift" } ], - "time": "2022-01-04T09:57:54+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "composer/xdebug-handler", - "version": "2.0.4", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a" + "reference": "ced299686f41dce890debac69273b47ffe98a40c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", "shasum": "" }, "require": { - "composer/pcre": "^1", - "php": "^5.3.2 || ^7.0 || ^8.0", + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^6.0" }, "type": "library", "autoload": { @@ -207,7 +207,7 @@ "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.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" }, "funding": [ { @@ -223,7 +223,7 @@ "type": "tidelift" } ], - "time": "2022-01-04T17:06:45+00:00" + "time": "2022-02-25T21:32:43+00:00" }, { "name": "doctrine/annotations", @@ -299,16 +299,16 @@ }, { "name": "doctrine/lexer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { @@ -316,7 +316,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", + "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "vimeo/psalm": "^4.11" }, @@ -355,7 +355,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -371,56 +371,56 @@ "type": "tidelift" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.4.0", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad" + "reference": "cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", - "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3", + "reference": "cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3", "shasum": "" }, "require": { "composer/semver": "^3.2", - "composer/xdebug-handler": "^2.0", - "doctrine/annotations": "^1.12", + "composer/xdebug-handler": "^3.0.3", + "doctrine/annotations": "^1.13", "ext-json": "*", "ext-tokenizer": "*", - "php": "^7.2.5 || ^8.0", + "php": "^7.4 || ^8.0", "php-cs-fixer/diff": "^2.0", - "symfony/console": "^4.4.20 || ^5.1.3 || ^6.0", - "symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0", - "symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0", - "symfony/finder": "^4.4.20 || ^5.0 || ^6.0", - "symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/event-dispatcher": "^5.4 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/options-resolver": "^5.4 || ^6.0", "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-php80": "^1.23", - "symfony/polyfill-php81": "^1.23", - "symfony/process": "^4.4.20 || ^5.0 || ^6.0", - "symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0" + "symfony/polyfill-php80": "^1.25", + "symfony/polyfill-php81": "^1.25", + "symfony/process": "^5.4 || ^6.0", + "symfony/stopwatch": "^5.4 || ^6.0" }, "require-dev": { "justinrainbow/json-schema": "^5.2", "keradus/cli-executor": "^1.5", - "mikey179/vfsstream": "^1.6.8", + "mikey179/vfsstream": "^1.6.10", "php-coveralls/php-coveralls": "^2.5.2", "php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", "phpspec/prophecy": "^1.15", - "phpspec/prophecy-phpunit": "^1.1 || ^2.0", - "phpunit/phpunit": "^8.5.21 || ^9.5", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", "phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/traits": "^1.9.1", - "symfony/phpunit-bridge": "^5.2.4 || ^6.0", - "symfony/yaml": "^4.4.20 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^6.0", + "symfony/yaml": "^5.4 || ^6.0" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -452,7 +452,7 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0" + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.8.0" }, "funding": [ { @@ -460,7 +460,7 @@ "type": "github" } ], - "time": "2021-12-11T16:25:08+00:00" + "time": "2022-03-18T17:20:59+00:00" }, { "name": "php-cs-fixer/diff", @@ -722,42 +722,49 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199" + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/38da7ef14348ff26d7c415c4ed18b82db07fe199", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e5a0abdd695cd45870e442647ef03a70f2ec1e5", + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", + "admidio/admidio": "<4.1.9", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "akaunting/akaunting": "<2.1.13", + "alextselegidis/easyappointments": "<1.4.3", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", "baserproject/basercms": "<4.5.4", "billz/raspap-webgui": "<=2.6.6", "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", + "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", - "bolt/core": "<4.1.13", + "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<7.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cakephp/cakephp": "<4.0.6", "cardgate/magento2": "<2.0.33", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", @@ -766,17 +773,21 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.1.6", + "codeigniter4/framework": "<4.1.9", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.23|>=2-alpha.1,<2.1.9", - "concrete5/concrete5": "<8.5.5", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<9", "concrete5/core": "<8.5.7", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|= 4.10.0", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", - "craftcms/cms": "<3.7.14", + "contao/managed-edition": "<=1.5", + "craftcms/cms": "<3.7.29", "croogo/croogo": "<3.0.7", + "cuyz/valinor": ">=0.5,<0.7", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", @@ -790,15 +801,16 @@ "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|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<=14.0.4|>= 3.3.beta1, < 13.0.2", - "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<1.2.1", + "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", - "enshrined/svg-sanitize": "<0.13.1", + "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", "ezsystems/demobundle": ">=5.4,<5.4.6.1", @@ -806,27 +818,29 @@ "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.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<=1.5.25", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.27", "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-kernel": "<=1.2.5|>=1.3,<1.3.17", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.28", "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=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.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<2022.6", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=0.1.3", + "fenom/fenom": "<=2.12.1", "firebase/php-jwt": "<2", "flarum/core": ">=1,<=1.0.1", "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.9.2", + "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", "francoisjacquet/rosariosis": "<8.1.1", "friendsofsymfony/oauth2-php": "<1.3", @@ -834,37 +848,47 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<=0.10.22", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", - "getgrav/grav": "<=1.7.24", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<1.7.31", "getkirby/cms": "<3.5.8", "getkirby/panel": "<2.5.14", "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", + "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/core": ">=4,<4.0.5|>=4.1,<4.1.2", "ibexa/post-install": "<=1.0.4", - "icecoder/icecoder": "<=8", + "icecoder/icecoder": "<=8.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": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "impresscms/impresscms": "<=1.4.2", + "impresscms/impresscms": "<=1.4.3", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "joomla/archive": "<1.1.10", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/input": ">=2,<2.0.2", "joomla/session": "<1.3.1", + "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kevinpapst/kimai2": "<1.16.7", @@ -872,8 +896,11 @@ "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/laravel": "<=5.8.38", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -881,8 +908,9 @@ "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "librenms/librenms": "<=21.11", + "librenms/librenms": "<22.2.2", "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", @@ -891,14 +919,16 @@ "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": "<4|= 2.13.1", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.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", - "microweber/microweber": "<1.2.8", + "microweber/microweber": "<1.3", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", - "modx/revolution": "<2.8", + "modx/revolution": "<= 2.8.3-pl|<2.8", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10-beta,<3.10.2", + "moodle/moodle": "<3.9.13|>=3.10-beta,<3.10.10|>=3.11,<3.11.6", + "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", "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", @@ -910,15 +940,16 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", "nukeviet/nukeviet": "<4.3.4", - "nystudio107/craft-seomatic": "<3.3", + "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "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|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.473|>=1.1,<1.1.6|>=2.1,<2.1.12", + "october/system": "<1.0.475|>=1.1,<1.1.11|>=2,<2.1.27", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<19.4.15|>=20,<20.0.13", @@ -932,58 +963,65 @@ "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", - "phpoffice/phpexcel": "<1.8.2", + "phpmyadmin/phpmyadmin": "<5.1.3", + "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpservermon/phpservermon": "<=3.5.2", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.2.7", - "pocketmine/pocketmine-mp": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/pimcore": "<10.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<4.2.9", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", + "prestashop/prestashop": ">=1.7,<=1.7.8.2", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "privatebin/privatebin": "<1.4", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.6.6", + "pterodactyl/panel": "<1.7", + "ptrofimov/beanstalk_console": "<1.7.14", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", - "remdex/livehelperchat": "<3.91", + "remdex/livehelperchat": "<3.96", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "rudloff/alltube": "<3.0.3", + "s-cart/s-cart": "<6.7.2", "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/core": "<=6.4.6", - "shopware/platform": "<=6.4.6", + "shopware/core": "<=6.4.9", + "shopware/platform": "<=6.4.9", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.7.7", - "showdoc/showdoc": "<2.10", + "shopware/shopware": "<5.7.9", + "shopware/storefront": "<=6.4.8.1", + "showdoc/showdoc": "<2.10.4", "silverstripe/admin": ">=1,<1.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.7.4", - "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2", + "silverstripe/framework": "<4.10.1", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|= 4.0.0-alpha1", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -996,12 +1034,14 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.43|>=4,<4.0.3", - "snipe/snipe-it": "<5.3.5", + "snipe/snipe-it": "<5.4.3|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.12.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", @@ -1009,10 +1049,10 @@ "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "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/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.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.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3|>=1.9,<1.9.5", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", "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", @@ -1021,7 +1061,7 @@ "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", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "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|>=5.2,<5.3.12", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -1037,9 +1077,9 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "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,<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|>=5.3,<5.3.2", + "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|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", "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", @@ -1047,7 +1087,9 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", @@ -1056,9 +1098,9 @@ "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", - "tribalsystems/zenario": "<8.8.53370", + "tribalsystems/zenario": "<9.2.55826", "truckersmp/phpwhois": "<=4.3.1", - "twig/twig": "<1.38|>=2,<2.7", + "twig/twig": "<1.38|>=2,<2.14.11|>=3,<3.3.8", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", "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.52|>=8,<=8.7.41|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", @@ -1074,7 +1116,7 @@ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", - "vrana/adminer": "<4.7.9", + "vrana/adminer": "<4.8.1", "wallabag/tcpdf": "<6.2.22", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", @@ -1082,6 +1124,9 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wwbn/avideo": "<=11.6", + "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -1101,10 +1146,10 @@ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": ">=1,<1.8.4", - "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -1156,20 +1201,20 @@ "type": "tidelift" } ], - "time": "2022-01-14T21:13:43+00:00" + "time": "2022-04-29T21:04:00+00:00" }, { "name": "symfony/console", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "dd434fa8d69325e5d210f63070014d889511fcb3" + "reference": "0d00aa289215353aa8746a31d101f8e60826285c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/dd434fa8d69325e5d210f63070014d889511fcb3", - "reference": "dd434fa8d69325e5d210f63070014d889511fcb3", + "url": "https://api.github.com/repos/symfony/console/zipball/0d00aa289215353aa8746a31d101f8e60826285c", + "reference": "0d00aa289215353aa8746a31d101f8e60826285c", "shasum": "" }, "require": { @@ -1235,7 +1280,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.2" + "source": "https://github.com/symfony/console/tree/v6.0.8" }, "funding": [ { @@ -1251,20 +1296,20 @@ "type": "tidelift" } ], - "time": "2021-12-27T21:05:08+00:00" + "time": "2022-04-20T15:01:42+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", "shasum": "" }, "require": { @@ -1302,7 +1347,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.1" }, "funding": [ { @@ -1318,20 +1363,20 @@ "type": "tidelift" } ], - "time": "2021-11-01T23:48:49+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.0.2", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "7093f25359e2750bfe86842c80c4e4a6a852d05c" + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7093f25359e2750bfe86842c80c4e4a6a852d05c", - "reference": "7093f25359e2750bfe86842c80c4e4a6a852d05c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934", + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934", "shasum": "" }, "require": { @@ -1385,7 +1430,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.2" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.3" }, "funding": [ { @@ -1401,20 +1446,20 @@ "type": "tidelift" } ], - "time": "2021-12-21T10:43:13+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "aa5422287b75594b90ee9cd807caf8f0df491385" + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/aa5422287b75594b90ee9cd807caf8f0df491385", - "reference": "aa5422287b75594b90ee9cd807caf8f0df491385", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", "shasum": "" }, "require": { @@ -1464,7 +1509,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.1" }, "funding": [ { @@ -1480,20 +1525,20 @@ "type": "tidelift" } ], - "time": "2021-07-15T12:33:35+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/filesystem", - "version": "v6.0.0", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "52b3c9cce673b014915445a432339f282e002ce6" + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/52b3c9cce673b014915445a432339f282e002ce6", - "reference": "52b3c9cce673b014915445a432339f282e002ce6", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", "shasum": "" }, "require": { @@ -1527,7 +1572,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.0" + "source": "https://github.com/symfony/filesystem/tree/v6.0.7" }, "funding": [ { @@ -1543,20 +1588,20 @@ "type": "tidelift" } ], - "time": "2021-10-29T07:35:21+00:00" + "time": "2022-04-01T12:54:51+00:00" }, { "name": "symfony/finder", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "03d2833e677d48317cac852f9c0287fb048c3c5c" + "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/03d2833e677d48317cac852f9c0287fb048c3c5c", - "reference": "03d2833e677d48317cac852f9c0287fb048c3c5c", + "url": "https://api.github.com/repos/symfony/finder/zipball/af7edab28d17caecd1f40a9219fc646ae751c21f", + "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f", "shasum": "" }, "require": { @@ -1588,7 +1633,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.0.2" + "source": "https://github.com/symfony/finder/tree/v6.0.8" }, "funding": [ { @@ -1604,20 +1649,20 @@ "type": "tidelift" } ], - "time": "2021-12-20T16:21:45+00:00" + "time": "2022-04-15T08:07:58+00:00" }, { "name": "symfony/options-resolver", - "version": "v6.0.0", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "be0facf48a42a232d6c0daadd76e4eb5657a4798" + "reference": "51f7006670febe4cbcbae177cbffe93ff833250d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/be0facf48a42a232d6c0daadd76e4eb5657a4798", - "reference": "be0facf48a42a232d6c0daadd76e4eb5657a4798", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/51f7006670febe4cbcbae177cbffe93ff833250d", + "reference": "51f7006670febe4cbcbae177cbffe93ff833250d", "shasum": "" }, "require": { @@ -1655,7 +1700,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.0.0" + "source": "https://github.com/symfony/options-resolver/tree/v6.0.3" }, "funding": [ { @@ -1671,11 +1716,11 @@ "type": "tidelift" } ], - "time": "2021-11-23T19:05:29+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -1707,12 +1752,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1737,7 +1782,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -1757,7 +1802,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -1786,12 +1831,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1818,7 +1863,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" }, "funding": [ { @@ -1838,7 +1883,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -1867,12 +1912,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -1902,7 +1947,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -1922,7 +1967,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -1954,12 +1999,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1985,7 +2030,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -2005,16 +2050,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", "shasum": "" }, "require": { @@ -2031,12 +2076,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -2068,7 +2113,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" }, "funding": [ { @@ -2084,11 +2129,11 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -2114,12 +2159,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -2147,7 +2192,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" }, "funding": [ { @@ -2167,16 +2212,16 @@ }, { "name": "symfony/process", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad" + "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad", - "reference": "71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad", + "url": "https://api.github.com/repos/symfony/process/zipball/d074154ea8b1443a96391f6e39f9e547b2dd01b9", + "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9", "shasum": "" }, "require": { @@ -2208,7 +2253,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.0.2" + "source": "https://github.com/symfony/process/tree/v6.0.8" }, "funding": [ { @@ -2224,20 +2269,20 @@ "type": "tidelift" } ], - "time": "2021-12-27T21:05:08+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "36715ebf9fb9db73db0cb24263c79077c6fe8603" + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/36715ebf9fb9db73db0cb24263c79077c6fe8603", - "reference": "36715ebf9fb9db73db0cb24263c79077c6fe8603", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e517458f278c2131ca9f262f8fbaf01410f2c65c", + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c", "shasum": "" }, "require": { @@ -2290,7 +2335,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.0.1" }, "funding": [ { @@ -2306,20 +2351,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T17:53:12+00:00" + "time": "2022-03-13T20:10:05+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.0.0", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "0e0ed55d1ffdfadd03af180443fbdca9876483b3" + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0e0ed55d1ffdfadd03af180443fbdca9876483b3", - "reference": "0e0ed55d1ffdfadd03af180443fbdca9876483b3", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f2c1780607ec6502f2121d9729fd8150a655d337", + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337", "shasum": "" }, "require": { @@ -2352,7 +2397,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.0.0" + "source": "https://github.com/symfony/stopwatch/tree/v6.0.5" }, "funding": [ { @@ -2368,20 +2413,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T19:05:29+00:00" + "time": "2022-02-21T17:15:17+00:00" }, { "name": "symfony/string", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "bae261d0c3ac38a1f802b4dfed42094296100631" + "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/bae261d0c3ac38a1f802b4dfed42094296100631", - "reference": "bae261d0c3ac38a1f802b4dfed42094296100631", + "url": "https://api.github.com/repos/symfony/string/zipball/ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", + "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", "shasum": "" }, "require": { @@ -2402,12 +2447,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -2437,7 +2482,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.2" + "source": "https://github.com/symfony/string/tree/v6.0.8" }, "funding": [ { @@ -2453,20 +2498,20 @@ "type": "tidelift" } ], - "time": "2021-12-16T22:13:01+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symplify/easy-coding-standard", - "version": "10.0.9", + "version": "10.2.2", "source": { "type": "git", "url": "https://github.com/symplify/easy-coding-standard.git", - "reference": "f0c71b040655e2780a4b701ecf8027ac8e23eedc" + "reference": "d847795500b929f68ed115357658122d64017f77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symplify/easy-coding-standard/zipball/f0c71b040655e2780a4b701ecf8027ac8e23eedc", - "reference": "f0c71b040655e2780a4b701ecf8027ac8e23eedc", + "url": "https://api.github.com/repos/symplify/easy-coding-standard/zipball/d847795500b929f68ed115357658122d64017f77", + "reference": "d847795500b929f68ed115357658122d64017f77", "shasum": "" }, "require": { @@ -2496,7 +2541,7 @@ ], "description": "Prefixed scoped version of ECS package", "support": { - "source": "https://github.com/symplify/easy-coding-standard/tree/10.0.9" + "source": "https://github.com/symplify/easy-coding-standard/tree/10.2.2" }, "funding": [ { @@ -2508,7 +2553,7 @@ "type": "github" } ], - "time": "2022-01-07T16:01:56+00:00" + "time": "2022-04-17T10:41:19+00:00" } ], "aliases": [], @@ -2523,5 +2568,5 @@ "platform-overrides": { "php": "8.1.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/tools/04_php-coveralls/composer.lock b/tools/04_php-coveralls/composer.lock index 3b183d21..51368452 100644 --- a/tools/04_php-coveralls/composer.lock +++ b/tools/04_php-coveralls/composer.lock @@ -9,16 +9,16 @@ "packages-dev": [ { "name": "guzzlehttp/guzzle", - "version": "7.4.1", + "version": "7.4.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79" + "reference": "ac1ec1cd9b5624694c3a40be801d94137afb12b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79", - "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ac1ec1cd9b5624694c3a40be801d94137afb12b4", + "reference": "ac1ec1cd9b5624694c3a40be801d94137afb12b4", "shasum": "" }, "require": { @@ -51,12 +51,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -113,7 +113,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.1" + "source": "https://github.com/guzzle/guzzle/tree/7.4.2" }, "funding": [ { @@ -129,7 +129,7 @@ "type": "tidelift" } ], - "time": "2021-12-06T18:43:05+00:00" + "time": "2022-03-20T14:16:28+00:00" }, { "name": "guzzlehttp/promises", @@ -158,12 +158,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -217,16 +217,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.1.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72" + "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72", - "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c94a94f120803a18554c1805ef2e539f8285f9a2", + "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2", "shasum": "" }, "require": { @@ -250,7 +250,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" } }, "autoload": { @@ -312,7 +312,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.1.0" + "source": "https://github.com/guzzle/psr7/tree/2.2.1" }, "funding": [ { @@ -328,7 +328,7 @@ "type": "tidelift" } ], - "time": "2021-10-06T17:43:30+00:00" + "time": "2022-03-20T21:55:58+00:00" }, { "name": "php-coveralls/php-coveralls", @@ -726,42 +726,49 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199" + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/38da7ef14348ff26d7c415c4ed18b82db07fe199", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e5a0abdd695cd45870e442647ef03a70f2ec1e5", + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", + "admidio/admidio": "<4.1.9", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "akaunting/akaunting": "<2.1.13", + "alextselegidis/easyappointments": "<1.4.3", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", "baserproject/basercms": "<4.5.4", "billz/raspap-webgui": "<=2.6.6", "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", + "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", - "bolt/core": "<4.1.13", + "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<7.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cakephp/cakephp": "<4.0.6", "cardgate/magento2": "<2.0.33", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", @@ -770,17 +777,21 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.1.6", + "codeigniter4/framework": "<4.1.9", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.23|>=2-alpha.1,<2.1.9", - "concrete5/concrete5": "<8.5.5", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<9", "concrete5/core": "<8.5.7", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|= 4.10.0", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", - "craftcms/cms": "<3.7.14", + "contao/managed-edition": "<=1.5", + "craftcms/cms": "<3.7.29", "croogo/croogo": "<3.0.7", + "cuyz/valinor": ">=0.5,<0.7", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", @@ -794,15 +805,16 @@ "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|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<=14.0.4|>= 3.3.beta1, < 13.0.2", - "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<1.2.1", + "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", - "enshrined/svg-sanitize": "<0.13.1", + "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", "ezsystems/demobundle": ">=5.4,<5.4.6.1", @@ -810,27 +822,29 @@ "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.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<=1.5.25", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.27", "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-kernel": "<=1.2.5|>=1.3,<1.3.17", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.28", "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=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.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<2022.6", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=0.1.3", + "fenom/fenom": "<=2.12.1", "firebase/php-jwt": "<2", "flarum/core": ">=1,<=1.0.1", "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.9.2", + "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", "francoisjacquet/rosariosis": "<8.1.1", "friendsofsymfony/oauth2-php": "<1.3", @@ -838,37 +852,47 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<=0.10.22", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", - "getgrav/grav": "<=1.7.24", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<1.7.31", "getkirby/cms": "<3.5.8", "getkirby/panel": "<2.5.14", "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", + "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/core": ">=4,<4.0.5|>=4.1,<4.1.2", "ibexa/post-install": "<=1.0.4", - "icecoder/icecoder": "<=8", + "icecoder/icecoder": "<=8.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": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "impresscms/impresscms": "<=1.4.2", + "impresscms/impresscms": "<=1.4.3", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "joomla/archive": "<1.1.10", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/input": ">=2,<2.0.2", "joomla/session": "<1.3.1", + "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kevinpapst/kimai2": "<1.16.7", @@ -876,8 +900,11 @@ "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/laravel": "<=5.8.38", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -885,8 +912,9 @@ "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "librenms/librenms": "<=21.11", + "librenms/librenms": "<22.2.2", "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", @@ -895,14 +923,16 @@ "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": "<4|= 2.13.1", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.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", - "microweber/microweber": "<1.2.8", + "microweber/microweber": "<1.3", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", - "modx/revolution": "<2.8", + "modx/revolution": "<= 2.8.3-pl|<2.8", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10-beta,<3.10.2", + "moodle/moodle": "<3.9.13|>=3.10-beta,<3.10.10|>=3.11,<3.11.6", + "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", "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", @@ -914,15 +944,16 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", "nukeviet/nukeviet": "<4.3.4", - "nystudio107/craft-seomatic": "<3.3", + "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "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|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.473|>=1.1,<1.1.6|>=2.1,<2.1.12", + "october/system": "<1.0.475|>=1.1,<1.1.11|>=2,<2.1.27", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<19.4.15|>=20,<20.0.13", @@ -936,58 +967,65 @@ "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", - "phpoffice/phpexcel": "<1.8.2", + "phpmyadmin/phpmyadmin": "<5.1.3", + "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpservermon/phpservermon": "<=3.5.2", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.2.7", - "pocketmine/pocketmine-mp": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/pimcore": "<10.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<4.2.9", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", + "prestashop/prestashop": ">=1.7,<=1.7.8.2", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "privatebin/privatebin": "<1.4", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.6.6", + "pterodactyl/panel": "<1.7", + "ptrofimov/beanstalk_console": "<1.7.14", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", - "remdex/livehelperchat": "<3.91", + "remdex/livehelperchat": "<3.96", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "rudloff/alltube": "<3.0.3", + "s-cart/s-cart": "<6.7.2", "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/core": "<=6.4.6", - "shopware/platform": "<=6.4.6", + "shopware/core": "<=6.4.9", + "shopware/platform": "<=6.4.9", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.7.7", - "showdoc/showdoc": "<2.10", + "shopware/shopware": "<5.7.9", + "shopware/storefront": "<=6.4.8.1", + "showdoc/showdoc": "<2.10.4", "silverstripe/admin": ">=1,<1.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.7.4", - "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2", + "silverstripe/framework": "<4.10.1", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|= 4.0.0-alpha1", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -1000,12 +1038,14 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.43|>=4,<4.0.3", - "snipe/snipe-it": "<5.3.5", + "snipe/snipe-it": "<5.4.3|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.12.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", @@ -1013,10 +1053,10 @@ "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "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/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.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.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3|>=1.9,<1.9.5", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", "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", @@ -1025,7 +1065,7 @@ "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", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "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|>=5.2,<5.3.12", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -1041,9 +1081,9 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "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,<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|>=5.3,<5.3.2", + "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|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", "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", @@ -1051,7 +1091,9 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", @@ -1060,9 +1102,9 @@ "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", - "tribalsystems/zenario": "<8.8.53370", + "tribalsystems/zenario": "<9.2.55826", "truckersmp/phpwhois": "<=4.3.1", - "twig/twig": "<1.38|>=2,<2.7", + "twig/twig": "<1.38|>=2,<2.14.11|>=3,<3.3.8", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", "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.52|>=8,<=8.7.41|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", @@ -1078,7 +1120,7 @@ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", - "vrana/adminer": "<4.7.9", + "vrana/adminer": "<4.8.1", "wallabag/tcpdf": "<6.2.22", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", @@ -1086,6 +1128,9 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wwbn/avideo": "<=11.6", + "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -1105,10 +1150,10 @@ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": ">=1,<1.8.4", - "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -1160,20 +1205,20 @@ "type": "tidelift" } ], - "time": "2022-01-14T21:13:43+00:00" + "time": "2022-04-29T21:04:00+00:00" }, { "name": "symfony/config", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "990e6d603da7b9556645e5689c7b082f564790e7" + "reference": "6ac50d559aa64c8e7b5b17640c46241e4accb487" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/990e6d603da7b9556645e5689c7b082f564790e7", - "reference": "990e6d603da7b9556645e5689c7b082f564790e7", + "url": "https://api.github.com/repos/symfony/config/zipball/6ac50d559aa64c8e7b5b17640c46241e4accb487", + "reference": "6ac50d559aa64c8e7b5b17640c46241e4accb487", "shasum": "" }, "require": { @@ -1222,7 +1267,7 @@ "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/v6.0.2" + "source": "https://github.com/symfony/config/tree/v6.0.8" }, "funding": [ { @@ -1238,20 +1283,20 @@ "type": "tidelift" } ], - "time": "2021-12-28T14:01:53+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/console", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "dd434fa8d69325e5d210f63070014d889511fcb3" + "reference": "0d00aa289215353aa8746a31d101f8e60826285c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/dd434fa8d69325e5d210f63070014d889511fcb3", - "reference": "dd434fa8d69325e5d210f63070014d889511fcb3", + "url": "https://api.github.com/repos/symfony/console/zipball/0d00aa289215353aa8746a31d101f8e60826285c", + "reference": "0d00aa289215353aa8746a31d101f8e60826285c", "shasum": "" }, "require": { @@ -1317,7 +1362,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.2" + "source": "https://github.com/symfony/console/tree/v6.0.8" }, "funding": [ { @@ -1333,20 +1378,20 @@ "type": "tidelift" } ], - "time": "2021-12-27T21:05:08+00:00" + "time": "2022-04-20T15:01:42+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", "shasum": "" }, "require": { @@ -1384,7 +1429,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.1" }, "funding": [ { @@ -1400,20 +1445,20 @@ "type": "tidelift" } ], - "time": "2021-11-01T23:48:49+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/filesystem", - "version": "v6.0.0", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "52b3c9cce673b014915445a432339f282e002ce6" + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/52b3c9cce673b014915445a432339f282e002ce6", - "reference": "52b3c9cce673b014915445a432339f282e002ce6", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", "shasum": "" }, "require": { @@ -1447,7 +1492,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.0" + "source": "https://github.com/symfony/filesystem/tree/v6.0.7" }, "funding": [ { @@ -1463,11 +1508,11 @@ "type": "tidelift" } ], - "time": "2021-10-29T07:35:21+00:00" + "time": "2022-04-01T12:54:51+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -1499,12 +1544,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1529,7 +1574,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -1549,7 +1594,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -1578,12 +1623,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1610,7 +1655,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" }, "funding": [ { @@ -1630,7 +1675,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -1659,12 +1704,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -1694,7 +1739,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -1714,7 +1759,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -1746,12 +1791,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1777,7 +1822,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -1797,7 +1842,7 @@ }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -1823,12 +1868,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -1856,7 +1901,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" }, "funding": [ { @@ -1876,16 +1921,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "36715ebf9fb9db73db0cb24263c79077c6fe8603" + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/36715ebf9fb9db73db0cb24263c79077c6fe8603", - "reference": "36715ebf9fb9db73db0cb24263c79077c6fe8603", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e517458f278c2131ca9f262f8fbaf01410f2c65c", + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c", "shasum": "" }, "require": { @@ -1938,7 +1983,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.0.1" }, "funding": [ { @@ -1954,20 +1999,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T17:53:12+00:00" + "time": "2022-03-13T20:10:05+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.0.0", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "0e0ed55d1ffdfadd03af180443fbdca9876483b3" + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0e0ed55d1ffdfadd03af180443fbdca9876483b3", - "reference": "0e0ed55d1ffdfadd03af180443fbdca9876483b3", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f2c1780607ec6502f2121d9729fd8150a655d337", + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337", "shasum": "" }, "require": { @@ -2000,7 +2045,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.0.0" + "source": "https://github.com/symfony/stopwatch/tree/v6.0.5" }, "funding": [ { @@ -2016,20 +2061,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T19:05:29+00:00" + "time": "2022-02-21T17:15:17+00:00" }, { "name": "symfony/string", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "bae261d0c3ac38a1f802b4dfed42094296100631" + "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/bae261d0c3ac38a1f802b4dfed42094296100631", - "reference": "bae261d0c3ac38a1f802b4dfed42094296100631", + "url": "https://api.github.com/repos/symfony/string/zipball/ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", + "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", "shasum": "" }, "require": { @@ -2050,12 +2095,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -2085,7 +2130,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.2" + "source": "https://github.com/symfony/string/tree/v6.0.8" }, "funding": [ { @@ -2101,20 +2146,20 @@ "type": "tidelift" } ], - "time": "2021-12-16T22:13:01+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/yaml", - "version": "v6.0.2", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ed602f38b8636a2ea21af760d2578f3d2f92fc60" + "reference": "e77f3ea0b21141d771d4a5655faa54f692b34af5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ed602f38b8636a2ea21af760d2578f3d2f92fc60", - "reference": "ed602f38b8636a2ea21af760d2578f3d2f92fc60", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e77f3ea0b21141d771d4a5655faa54f692b34af5", + "reference": "e77f3ea0b21141d771d4a5655faa54f692b34af5", "shasum": "" }, "require": { @@ -2159,7 +2204,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.0.2" + "source": "https://github.com/symfony/yaml/tree/v6.0.3" }, "funding": [ { @@ -2175,7 +2220,7 @@ "type": "tidelift" } ], - "time": "2021-12-16T22:13:01+00:00" + "time": "2022-01-26T17:23:29+00:00" } ], "aliases": [], @@ -2190,5 +2235,5 @@ "platform-overrides": { "php": "8.1.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/tools/05_phpinsights/composer.json b/tools/05_phpinsights/composer.json index 7f4583d0..d2a80c9c 100644 --- a/tools/05_phpinsights/composer.json +++ b/tools/05_phpinsights/composer.json @@ -3,7 +3,7 @@ "description": "", "require": {}, "require-dev": { - "nunomaduro/phpinsights": "2.0.*", + "nunomaduro/phpinsights": "2.2.*", "roave/security-advisories": "dev-latest" }, "config": { diff --git a/tools/05_phpinsights/composer.lock b/tools/05_phpinsights/composer.lock index d32c833b..c8f8d79d 100644 --- a/tools/05_phpinsights/composer.lock +++ b/tools/05_phpinsights/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d15f5e77edb1434759fd236fac7ab257", + "content-hash": "bdcc9f8a57b0cd341ecb35dd523b6850", "packages": [], "packages-dev": [ { @@ -85,39 +85,45 @@ }, { "name": "composer/composer", - "version": "2.2.4", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "8a5ad75194f901e3b39ece4bbd22cbdabc79ae8f" + "reference": "50c47b1f907cfcdb8f072b88164d22b527557ae1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/8a5ad75194f901e3b39ece4bbd22cbdabc79ae8f", - "reference": "8a5ad75194f901e3b39ece4bbd22cbdabc79ae8f", + "url": "https://api.github.com/repos/composer/composer/zipball/50c47b1f907cfcdb8f072b88164d22b527557ae1", + "reference": "50c47b1f907cfcdb8f072b88164d22b527557ae1", "shasum": "" }, "require": { "composer/ca-bundle": "^1.0", "composer/metadata-minifier": "^1.0", - "composer/pcre": "^1.0", + "composer/pcre": "^2 || ^3", "composer/semver": "^3.0", "composer/spdx-licenses": "^1.2", - "composer/xdebug-handler": "^2.0", + "composer/xdebug-handler": "^2.0.2 || ^3.0.3", "justinrainbow/json-schema": "^5.2.11", - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0 || ^2.0", - "react/promise": "^1.2 || ^2.7", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "react/promise": "^2.8", "seld/jsonlint": "^1.4", - "seld/phar-utils": "^1.0", - "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", - "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", - "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", - "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" + "seld/phar-utils": "^1.2", + "symfony/console": "^5.4.1 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/polyfill-php73": "^1.24", + "symfony/polyfill-php80": "^1.24", + "symfony/process": "^5.4 || ^6.0" }, "require-dev": { - "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "phpstan/phpstan": "^1.4.1", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1.0", + "phpstan/phpstan-strict-rules": "^1", + "phpstan/phpstan-symfony": "^1.1", + "symfony/phpunit-bridge": "^6.0" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -130,7 +136,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.2-dev" + "dev-main": "2.3-dev" } }, "autoload": { @@ -164,7 +170,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.2.4" + "source": "https://github.com/composer/composer/tree/2.3.5" }, "funding": [ { @@ -180,7 +186,7 @@ "type": "tidelift" } ], - "time": "2022-01-08T11:30:42+00:00" + "time": "2022-04-13T14:43:00+00:00" }, { "name": "composer/metadata-minifier", @@ -253,30 +259,30 @@ }, { "name": "composer/pcre", - "version": "1.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2" + "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/3d322d715c43a1ac36c7fe215fa59336265500f2", - "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2", + "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1", + "phpstan/phpstan": "^1.3", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" + "symfony/phpunit-bridge": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -304,7 +310,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/1.0.0" + "source": "https://github.com/composer/pcre/tree/3.0.0" }, "funding": [ { @@ -320,27 +326,27 @@ "type": "tidelift" } ], - "time": "2021-12-06T15:17:27+00:00" + "time": "2022-02-25T20:21:48+00:00" }, { "name": "composer/semver", - "version": "3.2.7", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "deac27056b57e46faf136fae7b449eeaa71661ee" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/deac27056b57e46faf136fae7b449eeaa71661ee", - "reference": "deac27056b57e46faf136fae7b449eeaa71661ee", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.54", + "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", @@ -385,7 +391,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.7" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -401,7 +407,7 @@ "type": "tidelift" } ], - "time": "2022-01-04T09:57:54+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "composer/spdx-licenses", @@ -485,27 +491,27 @@ }, { "name": "composer/xdebug-handler", - "version": "2.0.4", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a" + "reference": "ced299686f41dce890debac69273b47ffe98a40c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", "shasum": "" }, "require": { - "composer/pcre": "^1", - "php": "^5.3.2 || ^7.0 || ^8.0", + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^6.0" }, "type": "library", "autoload": { @@ -531,7 +537,7 @@ "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.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" }, "funding": [ { @@ -547,31 +553,31 @@ "type": "tidelift" } ], - "time": "2022-01-04T17:06:45+00:00" + "time": "2022-02-25T21:32:43+00:00" }, { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.1", + "version": "v0.7.2", "source": { "type": "git", "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "fe390591e0241955f22eb9ba327d137e501c771c" + "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c", - "reference": "fe390591e0241955f22eb9ba327d137e501c771c", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", + "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", "shasum": "" }, "require": { "composer-plugin-api": "^1.0 || ^2.0", "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0" + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" }, "require-dev": { "composer/composer": "*", - "phpcompatibility/php-compatibility": "^9.0", - "sensiolabs/security-checker": "^4.1.0" + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0" }, "type": "composer-plugin", "extra": { @@ -592,6 +598,10 @@ "email": "franck.nijhof@dealerdirect.com", "homepage": "http://www.frenck.nl", "role": "Developer / IT Manager" + }, + { + "name": "Contributors", + "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", @@ -603,6 +613,7 @@ "codesniffer", "composer", "installer", + "phpcbf", "phpcs", "plugin", "qa", @@ -617,7 +628,7 @@ "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" }, - "time": "2020-12-07T18:04:37+00:00" + "time": "2022-02-04T12:51:07+00:00" }, { "name": "doctrine/annotations", @@ -693,16 +704,16 @@ }, { "name": "doctrine/lexer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { @@ -710,7 +721,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", + "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "vimeo/psalm": "^4.11" }, @@ -749,7 +760,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -765,56 +776,56 @@ "type": "tidelift" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.4.0", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad" + "reference": "cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", - "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3", + "reference": "cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3", "shasum": "" }, "require": { "composer/semver": "^3.2", - "composer/xdebug-handler": "^2.0", - "doctrine/annotations": "^1.12", + "composer/xdebug-handler": "^3.0.3", + "doctrine/annotations": "^1.13", "ext-json": "*", "ext-tokenizer": "*", - "php": "^7.2.5 || ^8.0", + "php": "^7.4 || ^8.0", "php-cs-fixer/diff": "^2.0", - "symfony/console": "^4.4.20 || ^5.1.3 || ^6.0", - "symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0", - "symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0", - "symfony/finder": "^4.4.20 || ^5.0 || ^6.0", - "symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/event-dispatcher": "^5.4 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/options-resolver": "^5.4 || ^6.0", "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-php80": "^1.23", - "symfony/polyfill-php81": "^1.23", - "symfony/process": "^4.4.20 || ^5.0 || ^6.0", - "symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0" + "symfony/polyfill-php80": "^1.25", + "symfony/polyfill-php81": "^1.25", + "symfony/process": "^5.4 || ^6.0", + "symfony/stopwatch": "^5.4 || ^6.0" }, "require-dev": { "justinrainbow/json-schema": "^5.2", "keradus/cli-executor": "^1.5", - "mikey179/vfsstream": "^1.6.8", + "mikey179/vfsstream": "^1.6.10", "php-coveralls/php-coveralls": "^2.5.2", "php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", "phpspec/prophecy": "^1.15", - "phpspec/prophecy-phpunit": "^1.1 || ^2.0", - "phpunit/phpunit": "^8.5.21 || ^9.5", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", "phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/traits": "^1.9.1", - "symfony/phpunit-bridge": "^5.2.4 || ^6.0", - "symfony/yaml": "^4.4.20 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^6.0", + "symfony/yaml": "^5.4 || ^6.0" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -846,7 +857,7 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0" + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.8.0" }, "funding": [ { @@ -854,20 +865,20 @@ "type": "github" } ], - "time": "2021-12-11T16:25:08+00:00" + "time": "2022-03-18T17:20:59+00:00" }, { "name": "justinrainbow/json-schema", - "version": "5.2.11", + "version": "5.2.12", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa" + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ab6744b7296ded80f8cc4f9509abbff393399aa", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", "shasum": "" }, "require": { @@ -922,27 +933,27 @@ ], "support": { "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.11" + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" }, - "time": "2021-07-22T09:24:00+00:00" + "time": "2022-04-13T08:02:27+00:00" }, { "name": "league/container", - "version": "3.4.1", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/thephpleague/container.git", - "reference": "84ecbc2dbecc31bd23faf759a0e329ee49abddbd" + "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/container/zipball/84ecbc2dbecc31bd23faf759a0e329ee49abddbd", - "reference": "84ecbc2dbecc31bd23faf759a0e329ee49abddbd", + "url": "https://api.github.com/repos/thephpleague/container/zipball/375d13cb828649599ef5d48a339c4af7a26cd0ab", + "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0", - "psr/container": "^1.0.0" + "php": "^7.2 || ^8.0", + "psr/container": "^1.1 || ^2.0" }, "provide": { "psr/container-implementation": "^1.0" @@ -951,15 +962,19 @@ "orno/di": "~2.0" }, "require-dev": { - "phpunit/phpunit": "^6.0 || ^7.0", + "nette/php-generator": "^3.4", + "nikic/php-parser": "^4.10", + "phpstan/phpstan": "^0.12.47", + "phpunit/phpunit": "^8.5.17", "roave/security-advisories": "dev-latest", "scrutinizer/ocular": "^1.8", - "squizlabs/php_codesniffer": "^3.5" + "squizlabs/php_codesniffer": "^3.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev", + "dev-master": "4.x-dev", + "dev-4.x": "4.x-dev", "dev-3.x": "3.x-dev", "dev-2.x": "2.x-dev", "dev-1.x": "1.x-dev" @@ -977,8 +992,7 @@ "authors": [ { "name": "Phil Bennett", - "email": "philipobenito@gmail.com", - "homepage": "http://www.philipobenito.com", + "email": "mail@philbennett.co.uk", "role": "Developer" } ], @@ -995,7 +1009,7 @@ ], "support": { "issues": "https://github.com/thephpleague/container/issues", - "source": "https://github.com/thephpleague/container/tree/3.4.1" + "source": "https://github.com/thephpleague/container/tree/4.2.0" }, "funding": [ { @@ -1003,20 +1017,20 @@ "type": "github" } ], - "time": "2021-07-09T08:23:52+00:00" + "time": "2021-11-16T10:29:06+00:00" }, { "name": "nunomaduro/phpinsights", - "version": "v2.0.1", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/phpinsights.git", - "reference": "d07b45bb8add1f608fd007efbb989ecca59e3e96" + "reference": "854c214968b27c65590d8ea68797434bcf83e6c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/phpinsights/zipball/d07b45bb8add1f608fd007efbb989ecca59e3e96", - "reference": "d07b45bb8add1f608fd007efbb989ecca59e3e96", + "url": "https://api.github.com/repos/nunomaduro/phpinsights/zipball/854c214968b27c65590d8ea68797434bcf83e6c1", + "reference": "854c214968b27c65590d8ea68797434bcf83e6c1", "shasum": "" }, "require": { @@ -1027,28 +1041,28 @@ "ext-tokenizer": "*", "friendsofphp/php-cs-fixer": "^3.0.0", "justinrainbow/json-schema": "^5.1", - "league/container": "^3.2", + "league/container": "^3.2|^4.2", "php": "^7.4 || ^8.0", "php-parallel-lint/php-parallel-lint": "^1.3", "phploc/phploc": "^5.0|^6.0|^7.0", - "psr/container": "^1.0", + "psr/container": "^1.0|^2.0", "psr/simple-cache": "^1.0", "slevomat/coding-standard": "^7.0.8", "squizlabs/php_codesniffer": "^3.5", - "symfony/cache": "^4.4|^5.0", - "symfony/console": "^4.2|^5.0", - "symfony/finder": "^4.2|^5.0", - "symfony/http-client": "^4.3|^5.0" + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/console": "^4.2|^5.0|^6.0", + "symfony/finder": "^4.2|^5.0|^6.0", + "symfony/http-client": "^4.3|^5.0|^6.0" }, "require-dev": { "ergebnis/phpstan-rules": "^0.15.0", - "illuminate/console": "^5.8|^6.0|^7.0|^8.0", - "illuminate/support": "^5.8|^6.0|^7.0|^8.0", + "illuminate/console": "^5.8|^6.0|^7.0|^8.0|^9.0", + "illuminate/support": "^5.8|^6.0|^7.0|^8.0|^9.0", "mockery/mockery": "^1.0", "phpstan/phpstan-strict-rules": "^0.12", "phpunit/phpunit": "^8.0|^9.0", - "rector/rector": "0.11.32", - "symfony/var-dumper": "^4.2|^5.0", + "rector/rector": "0.11.56", + "symfony/var-dumper": "^4.2|^5.0|^6.0", "thecodingmachine/phpstan-strict-rules": "^0.12.0" }, "suggest": { @@ -1091,11 +1105,11 @@ ], "support": { "issues": "https://github.com/nunomaduro/phpinsights/issues", - "source": "https://github.com/nunomaduro/phpinsights/tree/v2.0.1" + "source": "https://github.com/nunomaduro/phpinsights/tree/v2.2.0" }, "funding": [ { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "url": "https://www.paypal.com/paypalme/enunomaduro", "type": "custom" }, { @@ -1111,7 +1125,7 @@ "type": "patreon" } ], - "time": "2021-07-11T13:33:54+00:00" + "time": "2022-03-21T20:51:37+00:00" }, { "name": "php-cs-fixer/diff", @@ -1167,16 +1181,16 @@ }, { "name": "php-parallel-lint/php-parallel-lint", - "version": "v1.3.1", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git", - "reference": "761f3806e30239b5fcd90a0a45d41dc2138de192" + "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/761f3806e30239b5fcd90a0a45d41dc2138de192", - "reference": "761f3806e30239b5fcd90a0a45d41dc2138de192", + "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6483c9832e71973ed29cf71bd6b3f4fde438a9de", + "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de", "shasum": "" }, "require": { @@ -1189,7 +1203,7 @@ }, "require-dev": { "nette/tester": "^1.3 || ^2.0", - "php-parallel-lint/php-console-highlighter": "~0.3", + "php-parallel-lint/php-console-highlighter": "0.* || ^1.0", "squizlabs/php_codesniffer": "^3.6" }, "suggest": { @@ -1201,7 +1215,7 @@ "type": "library", "autoload": { "classmap": [ - "./" + "./src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1218,9 +1232,9 @@ "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", "support": { "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues", - "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.1" + "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.2" }, - "time": "2021-08-13T05:35:13+00:00" + "time": "2022-02-21T12:50:22+00:00" }, { "name": "phploc/phploc", @@ -1285,35 +1299,30 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.2.0", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "dbc093d7af60eff5cd575d2ed761b15ed40bd08e" + "reference": "129a63b3bc7caeb593c224c41f420675e63cfefc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/dbc093d7af60eff5cd575d2ed761b15ed40bd08e", - "reference": "dbc093d7af60eff5cd575d2ed761b15ed40bd08e", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/129a63b3bc7caeb593c224c41f420675e63cfefc", + "reference": "129a63b3bc7caeb593c224c41f420675e63cfefc", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan": "^1.5", "phpstan/phpstan-strict-rules": "^1.0", "phpunit/phpunit": "^9.5", "symfony/process": "^5.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { "psr-4": { "PHPStan\\PhpDocParser\\": [ @@ -1328,9 +1337,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.2.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.4.5" }, - "time": "2021-09-16T20:46:02+00:00" + "time": "2022-04-22T11:11:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1394,16 +1403,16 @@ }, { "name": "psr/cache", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", - "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", - "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", "shasum": "" }, "require": { @@ -1437,28 +1446,33 @@ "psr-6" ], "support": { - "source": "https://github.com/php-fig/cache/tree/2.0.0" + "source": "https://github.com/php-fig/cache/tree/3.0.0" }, - "time": "2021-02-03T23:23:37+00:00" + "time": "2021-02-03T23:26:27+00:00" }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -1485,9 +1499,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/event-dispatcher", @@ -1541,16 +1555,16 @@ }, { "name": "psr/log", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { @@ -1559,7 +1573,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { @@ -1585,9 +1599,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "time": "2021-07-14T16:41:46+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { "name": "psr/simple-cache", @@ -1642,32 +1656,32 @@ }, { "name": "react/promise", - "version": "v2.8.0", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4" + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910", + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910", "shasum": "" }, "require": { "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { - "psr-4": { - "React\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "React\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1676,7 +1690,23 @@ "authors": [ { "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com" + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], "description": "A lightweight implementation of CommonJS Promises/A for PHP", @@ -1686,9 +1716,19 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.8.0" + "source": "https://github.com/reactphp/promise/tree/v2.9.0" }, - "time": "2020-05-12T15:16:56+00:00" + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-02-11T10:27:51+00:00" }, { "name": "roave/security-advisories", @@ -1696,42 +1736,49 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199" + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/38da7ef14348ff26d7c415c4ed18b82db07fe199", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e5a0abdd695cd45870e442647ef03a70f2ec1e5", + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", + "admidio/admidio": "<4.1.9", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "akaunting/akaunting": "<2.1.13", + "alextselegidis/easyappointments": "<1.4.3", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", "baserproject/basercms": "<4.5.4", "billz/raspap-webgui": "<=2.6.6", "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", + "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", - "bolt/core": "<4.1.13", + "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<7.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cakephp/cakephp": "<4.0.6", "cardgate/magento2": "<2.0.33", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", @@ -1740,17 +1787,21 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.1.6", + "codeigniter4/framework": "<4.1.9", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.23|>=2-alpha.1,<2.1.9", - "concrete5/concrete5": "<8.5.5", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<9", "concrete5/core": "<8.5.7", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|= 4.10.0", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", - "craftcms/cms": "<3.7.14", + "contao/managed-edition": "<=1.5", + "craftcms/cms": "<3.7.29", "croogo/croogo": "<3.0.7", + "cuyz/valinor": ">=0.5,<0.7", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", @@ -1764,15 +1815,16 @@ "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|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<=14.0.4|>= 3.3.beta1, < 13.0.2", - "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<1.2.1", + "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", - "enshrined/svg-sanitize": "<0.13.1", + "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", "ezsystems/demobundle": ">=5.4,<5.4.6.1", @@ -1780,27 +1832,29 @@ "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.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<=1.5.25", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.27", "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-kernel": "<=1.2.5|>=1.3,<1.3.17", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.28", "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=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.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<2022.6", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=0.1.3", + "fenom/fenom": "<=2.12.1", "firebase/php-jwt": "<2", "flarum/core": ">=1,<=1.0.1", "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.9.2", + "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", "francoisjacquet/rosariosis": "<8.1.1", "friendsofsymfony/oauth2-php": "<1.3", @@ -1808,37 +1862,47 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<=0.10.22", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", - "getgrav/grav": "<=1.7.24", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<1.7.31", "getkirby/cms": "<3.5.8", "getkirby/panel": "<2.5.14", "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", + "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/core": ">=4,<4.0.5|>=4.1,<4.1.2", "ibexa/post-install": "<=1.0.4", - "icecoder/icecoder": "<=8", + "icecoder/icecoder": "<=8.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": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "impresscms/impresscms": "<=1.4.2", + "impresscms/impresscms": "<=1.4.3", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "joomla/archive": "<1.1.10", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/input": ">=2,<2.0.2", "joomla/session": "<1.3.1", + "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kevinpapst/kimai2": "<1.16.7", @@ -1846,8 +1910,11 @@ "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/laravel": "<=5.8.38", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -1855,8 +1922,9 @@ "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "librenms/librenms": "<=21.11", + "librenms/librenms": "<22.2.2", "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", @@ -1865,14 +1933,16 @@ "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": "<4|= 2.13.1", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.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", - "microweber/microweber": "<1.2.8", + "microweber/microweber": "<1.3", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", - "modx/revolution": "<2.8", + "modx/revolution": "<= 2.8.3-pl|<2.8", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10-beta,<3.10.2", + "moodle/moodle": "<3.9.13|>=3.10-beta,<3.10.10|>=3.11,<3.11.6", + "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", "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", @@ -1884,15 +1954,16 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", "nukeviet/nukeviet": "<4.3.4", - "nystudio107/craft-seomatic": "<3.3", + "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "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|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.473|>=1.1,<1.1.6|>=2.1,<2.1.12", + "october/system": "<1.0.475|>=1.1,<1.1.11|>=2,<2.1.27", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<19.4.15|>=20,<20.0.13", @@ -1906,58 +1977,65 @@ "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", - "phpoffice/phpexcel": "<1.8.2", + "phpmyadmin/phpmyadmin": "<5.1.3", + "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpservermon/phpservermon": "<=3.5.2", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.2.7", - "pocketmine/pocketmine-mp": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/pimcore": "<10.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<4.2.9", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", + "prestashop/prestashop": ">=1.7,<=1.7.8.2", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "privatebin/privatebin": "<1.4", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.6.6", + "pterodactyl/panel": "<1.7", + "ptrofimov/beanstalk_console": "<1.7.14", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", - "remdex/livehelperchat": "<3.91", + "remdex/livehelperchat": "<3.96", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "rudloff/alltube": "<3.0.3", + "s-cart/s-cart": "<6.7.2", "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/core": "<=6.4.6", - "shopware/platform": "<=6.4.6", + "shopware/core": "<=6.4.9", + "shopware/platform": "<=6.4.9", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.7.7", - "showdoc/showdoc": "<2.10", + "shopware/shopware": "<5.7.9", + "shopware/storefront": "<=6.4.8.1", + "showdoc/showdoc": "<2.10.4", "silverstripe/admin": ">=1,<1.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.7.4", - "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2", + "silverstripe/framework": "<4.10.1", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|= 4.0.0-alpha1", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -1970,12 +2048,14 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.43|>=4,<4.0.3", - "snipe/snipe-it": "<5.3.5", + "snipe/snipe-it": "<5.4.3|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.12.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", @@ -1983,10 +2063,10 @@ "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "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/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.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.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3|>=1.9,<1.9.5", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", "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", @@ -1995,7 +2075,7 @@ "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", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "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|>=5.2,<5.3.12", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -2011,9 +2091,9 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "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,<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|>=5.3,<5.3.2", + "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|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", "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", @@ -2021,7 +2101,9 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", @@ -2030,9 +2112,9 @@ "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", - "tribalsystems/zenario": "<8.8.53370", + "tribalsystems/zenario": "<9.2.55826", "truckersmp/phpwhois": "<=4.3.1", - "twig/twig": "<1.38|>=2,<2.7", + "twig/twig": "<1.38|>=2,<2.14.11|>=3,<3.3.8", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", "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.52|>=8,<=8.7.41|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", @@ -2048,7 +2130,7 @@ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", - "vrana/adminer": "<4.7.9", + "vrana/adminer": "<4.8.1", "wallabag/tcpdf": "<6.2.22", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", @@ -2056,6 +2138,9 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wwbn/avideo": "<=11.6", + "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -2075,10 +2160,10 @@ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": ">=1,<1.8.4", - "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -2130,7 +2215,7 @@ "type": "tidelift" } ], - "time": "2022-01-14T21:13:43+00:00" + "time": "2022-04-29T21:04:00+00:00" }, { "name": "sebastian/cli-parser", @@ -2243,23 +2328,24 @@ }, { "name": "seld/jsonlint", - "version": "1.8.3", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" + "reference": "4211420d25eba80712bff236a98960ef68b866b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", - "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7", + "reference": "4211420d25eba80712bff236a98960ef68b866b7", "shasum": "" }, "require": { "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" }, "bin": [ "bin/jsonlint" @@ -2290,7 +2376,7 @@ ], "support": { "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" + "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0" }, "funding": [ { @@ -2302,7 +2388,7 @@ "type": "tidelift" } ], - "time": "2020-11-11T09:19:24+00:00" + "time": "2022-04-01T13:37:23+00:00" }, { "name": "seld/phar-utils", @@ -2354,32 +2440,32 @@ }, { "name": "slevomat/coding-standard", - "version": "7.0.18", + "version": "7.1", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "b81ac84f41a4797dc25c8ede1b0718e2a74be0fc" + "reference": "b521bd358b5f7a7d69e9637fd139e036d8adeb6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/b81ac84f41a4797dc25c8ede1b0718e2a74be0fc", - "reference": "b81ac84f41a4797dc25c8ede1b0718e2a74be0fc", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/b521bd358b5f7a7d69e9637fd139e036d8adeb6f", + "reference": "b521bd358b5f7a7d69e9637fd139e036d8adeb6f", "shasum": "" }, "require": { "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", - "php": "^7.1 || ^8.0", - "phpstan/phpdoc-parser": "^1.0.0", - "squizlabs/php_codesniffer": "^3.6.1" + "php": "^7.2 || ^8.0", + "phpstan/phpdoc-parser": "^1.4.1", + "squizlabs/php_codesniffer": "^3.6.2" }, "require-dev": { - "phing/phing": "2.17.0", - "php-parallel-lint/php-parallel-lint": "1.3.1", - "phpstan/phpstan": "1.2.0", + "phing/phing": "2.17.2", + "php-parallel-lint/php-parallel-lint": "1.3.2", + "phpstan/phpstan": "1.4.10|1.5.2", "phpstan/phpstan-deprecation-rules": "1.0.0", - "phpstan/phpstan-phpunit": "1.0.0", + "phpstan/phpstan-phpunit": "1.0.0|1.1.0", "phpstan/phpstan-strict-rules": "1.1.0", - "phpunit/phpunit": "7.5.20|8.5.21|9.5.10" + "phpunit/phpunit": "7.5.20|8.5.21|9.5.19" }, "type": "phpcodesniffer-standard", "extra": { @@ -2399,7 +2485,7 @@ "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/7.0.18" + "source": "https://github.com/slevomat/coding-standard/tree/7.1" }, "funding": [ { @@ -2411,7 +2497,7 @@ "type": "tidelift" } ], - "time": "2021-12-07T17:19:06+00:00" + "time": "2022-03-29T12:44:16+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -2471,52 +2557,48 @@ }, { "name": "symfony/cache", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "8aad4b69a10c5c51ab54672e78995860f5e447ec" + "reference": "e9a4e9229f078d93f2c492ea30c3f010373312b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/8aad4b69a10c5c51ab54672e78995860f5e447ec", - "reference": "8aad4b69a10c5c51ab54672e78995860f5e447ec", + "url": "https://api.github.com/repos/symfony/cache/zipball/e9a4e9229f078d93f2c492ea30c3f010373312b7", + "reference": "e9a4e9229f078d93f2c492ea30c3f010373312b7", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/cache": "^1.0|^2.0", + "php": ">=8.0.2", + "psr/cache": "^2.0|^3.0", "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^1.1.7|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", + "symfony/cache-contracts": "^1.1.7|^2|^3", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "symfony/var-exporter": "^5.4|^6.0" }, "conflict": { "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<4.4", - "symfony/http-kernel": "<4.4", - "symfony/var-dumper": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/var-dumper": "<5.4" }, "provide": { - "psr/cache-implementation": "1.0|2.0", - "psr/simple-cache-implementation": "1.0|2.0", - "symfony/cache-implementation": "1.0|2.0" + "psr/cache-implementation": "2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0", + "symfony/cache-implementation": "1.1|2.0|3.0" }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/cache": "^1.6|^2.0", "doctrine/dbal": "^2.13.1|^3.0", "predis/predis": "^1.1", - "psr/simple-cache": "^1.0|^2.0", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/simple-cache": "^1.0|^2.0|^3.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -2548,7 +2630,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.2" + "source": "https://github.com/symfony/cache/tree/v6.0.8" }, "funding": [ { @@ -2564,25 +2646,25 @@ "type": "tidelift" } ], - "time": "2021-12-28T17:15:56+00:00" + "time": "2022-04-26T13:22:23+00:00" }, { "name": "symfony/cache-contracts", - "version": "v2.5.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "ac2e168102a2e06a2624f0379bde94cd5854ced2" + "reference": "1c0a181c9ee221afe4fa55b2d13fc63c5ae14348" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ac2e168102a2e06a2624f0379bde94cd5854ced2", - "reference": "ac2e168102a2e06a2624f0379bde94cd5854ced2", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/1c0a181c9ee221afe4fa55b2d13fc63c5ae14348", + "reference": "1c0a181c9ee221afe4fa55b2d13fc63c5ae14348", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/cache": "^1.0|^2.0|^3.0" + "php": ">=8.0.2", + "psr/cache": "^3.0" }, "suggest": { "symfony/cache-implementation": "" @@ -2590,7 +2672,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -2627,7 +2709,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.0.1" }, "funding": [ { @@ -2643,50 +2725,46 @@ "type": "tidelift" } ], - "time": "2021-08-17T14:20:01+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/console", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e" + "reference": "0d00aa289215353aa8746a31d101f8e60826285c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e", - "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e", + "url": "https://api.github.com/repos/symfony/console/zipball/0d00aa289215353aa8746a31d101f8e60826285c", + "reference": "0d00aa289215353aa8746a31d101f8e60826285c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "symfony/string": "^5.4|^6.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -2726,7 +2804,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.2" + "source": "https://github.com/symfony/console/tree/v6.0.8" }, "funding": [ { @@ -2742,20 +2820,20 @@ "type": "tidelift" } ], - "time": "2021-12-20T16:11:12+00:00" + "time": "2022-04-20T15:01:42+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", "shasum": "" }, "require": { @@ -2793,7 +2871,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.1" }, "funding": [ { @@ -2809,20 +2887,20 @@ "type": "tidelift" } ], - "time": "2021-11-01T23:48:49+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.0.2", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "7093f25359e2750bfe86842c80c4e4a6a852d05c" + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7093f25359e2750bfe86842c80c4e4a6a852d05c", - "reference": "7093f25359e2750bfe86842c80c4e4a6a852d05c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934", + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934", "shasum": "" }, "require": { @@ -2876,7 +2954,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.2" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.3" }, "funding": [ { @@ -2892,20 +2970,20 @@ "type": "tidelift" } ], - "time": "2021-12-21T10:43:13+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "aa5422287b75594b90ee9cd807caf8f0df491385" + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/aa5422287b75594b90ee9cd807caf8f0df491385", - "reference": "aa5422287b75594b90ee9cd807caf8f0df491385", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", "shasum": "" }, "require": { @@ -2955,7 +3033,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.1" }, "funding": [ { @@ -2971,20 +3049,20 @@ "type": "tidelift" } ], - "time": "2021-07-15T12:33:35+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/filesystem", - "version": "v6.0.0", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "52b3c9cce673b014915445a432339f282e002ce6" + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/52b3c9cce673b014915445a432339f282e002ce6", - "reference": "52b3c9cce673b014915445a432339f282e002ce6", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", "shasum": "" }, "require": { @@ -3018,7 +3096,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.0" + "source": "https://github.com/symfony/filesystem/tree/v6.0.7" }, "funding": [ { @@ -3034,26 +3112,24 @@ "type": "tidelift" } ], - "time": "2021-10-29T07:35:21+00:00" + "time": "2022-04-01T12:54:51+00:00" }, { "name": "symfony/finder", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "e77046c252be48c48a40816187ed527703c8f76c" + "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/e77046c252be48c48a40816187ed527703c8f76c", - "reference": "e77046c252be48c48a40816187ed527703c8f76c", + "url": "https://api.github.com/repos/symfony/finder/zipball/af7edab28d17caecd1f40a9219fc646ae751c21f", + "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -3081,7 +3157,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.2" + "source": "https://github.com/symfony/finder/tree/v6.0.8" }, "funding": [ { @@ -3097,36 +3173,33 @@ "type": "tidelift" } ], - "time": "2021-12-15T11:06:13+00:00" + "time": "2022-04-15T08:07:58+00:00" }, { "name": "symfony/http-client", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "5e344f1402584a56631c81a24ec9403e3159c790" + "reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/5e344f1402584a56631c81a24ec9403e3159c790", - "reference": "5e344f1402584a56631c81a24ec9403e3159c790", + "url": "https://api.github.com/repos/symfony/http-client/zipball/d347895193283e08b4c3ebf2f2974a1df3e1f670", + "reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-client-contracts": "^2.4", - "symfony/polyfill-php73": "^1.11", - "symfony/polyfill-php80": "^1.16", + "symfony/http-client-contracts": "^3", "symfony/service-contracts": "^1.0|^2|^3" }, "provide": { "php-http/async-client-implementation": "*", "php-http/client-implementation": "*", "psr/http-client-implementation": "1.0", - "symfony/http-client-implementation": "2.4" + "symfony/http-client-implementation": "3.0" }, "require-dev": { "amphp/amp": "^2.5", @@ -3137,10 +3210,10 @@ "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0" + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -3168,7 +3241,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.2" + "source": "https://github.com/symfony/http-client/tree/v6.0.8" }, "funding": [ { @@ -3184,24 +3257,24 @@ "type": "tidelift" } ], - "time": "2021-12-29T10:10:35+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v2.5.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "ec82e57b5b714dbb69300d348bd840b345e24166" + "reference": "f7525778c712be78ad5b6ca31f47fdcfd404c280" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ec82e57b5b714dbb69300d348bd840b345e24166", - "reference": "ec82e57b5b714dbb69300d348bd840b345e24166", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/f7525778c712be78ad5b6ca31f47fdcfd404c280", + "reference": "f7525778c712be78ad5b6ca31f47fdcfd404c280", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=8.0.2" }, "suggest": { "symfony/http-client-implementation": "" @@ -3209,7 +3282,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -3246,7 +3319,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.0.1" }, "funding": [ { @@ -3262,20 +3335,20 @@ "type": "tidelift" } ], - "time": "2021-11-03T09:24:47+00:00" + "time": "2022-03-13T20:10:05+00:00" }, { "name": "symfony/options-resolver", - "version": "v6.0.0", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "be0facf48a42a232d6c0daadd76e4eb5657a4798" + "reference": "51f7006670febe4cbcbae177cbffe93ff833250d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/be0facf48a42a232d6c0daadd76e4eb5657a4798", - "reference": "be0facf48a42a232d6c0daadd76e4eb5657a4798", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/51f7006670febe4cbcbae177cbffe93ff833250d", + "reference": "51f7006670febe4cbcbae177cbffe93ff833250d", "shasum": "" }, "require": { @@ -3313,7 +3386,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.0.0" + "source": "https://github.com/symfony/options-resolver/tree/v6.0.3" }, "funding": [ { @@ -3329,11 +3402,11 @@ "type": "tidelift" } ], - "time": "2021-11-23T19:05:29+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -3365,12 +3438,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3395,7 +3468,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -3415,7 +3488,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -3444,12 +3517,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3476,7 +3549,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" }, "funding": [ { @@ -3496,7 +3569,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -3525,12 +3598,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3560,7 +3633,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -3580,7 +3653,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -3612,12 +3685,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3643,7 +3716,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -3663,7 +3736,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -3689,12 +3762,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3722,7 +3795,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" }, "funding": [ { @@ -3742,16 +3815,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", "shasum": "" }, "require": { @@ -3768,12 +3841,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3805,7 +3878,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" }, "funding": [ { @@ -3821,11 +3894,11 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -3851,12 +3924,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3884,7 +3957,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" }, "funding": [ { @@ -3904,16 +3977,16 @@ }, { "name": "symfony/process", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad" + "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad", - "reference": "71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad", + "url": "https://api.github.com/repos/symfony/process/zipball/d074154ea8b1443a96391f6e39f9e547b2dd01b9", + "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9", "shasum": "" }, "require": { @@ -3945,7 +4018,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.0.2" + "source": "https://github.com/symfony/process/tree/v6.0.8" }, "funding": [ { @@ -3961,25 +4034,25 @@ "type": "tidelift" } ], - "time": "2021-12-27T21:05:08+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.4.1", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d664541b99d6fb0247ec5ff32e87238582236204" + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d664541b99d6fb0247ec5ff32e87238582236204", - "reference": "d664541b99d6fb0247ec5ff32e87238582236204", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e517458f278c2131ca9f262f8fbaf01410f2c65c", + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1" + "php": ">=8.0.2", + "psr/container": "^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -3990,7 +4063,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -4027,7 +4100,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.0.1" }, "funding": [ { @@ -4043,20 +4116,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2022-03-13T20:10:05+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.0.0", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "0e0ed55d1ffdfadd03af180443fbdca9876483b3" + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0e0ed55d1ffdfadd03af180443fbdca9876483b3", - "reference": "0e0ed55d1ffdfadd03af180443fbdca9876483b3", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f2c1780607ec6502f2121d9729fd8150a655d337", + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337", "shasum": "" }, "require": { @@ -4089,7 +4162,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.0.0" + "source": "https://github.com/symfony/stopwatch/tree/v6.0.5" }, "funding": [ { @@ -4105,20 +4178,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T19:05:29+00:00" + "time": "2022-02-21T17:15:17+00:00" }, { "name": "symfony/string", - "version": "v6.0.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "bae261d0c3ac38a1f802b4dfed42094296100631" + "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/bae261d0c3ac38a1f802b4dfed42094296100631", - "reference": "bae261d0c3ac38a1f802b4dfed42094296100631", + "url": "https://api.github.com/repos/symfony/string/zipball/ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", + "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", "shasum": "" }, "require": { @@ -4139,12 +4212,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -4174,7 +4247,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.2" + "source": "https://github.com/symfony/string/tree/v6.0.8" }, "funding": [ { @@ -4190,20 +4263,20 @@ "type": "tidelift" } ], - "time": "2021-12-16T22:13:01+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.0.0", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "32cf62f12d35d441da1ca4a4c0fc1cd5f2a207af" + "reference": "74b272979a490747c6775b0228d06cf246306a99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/32cf62f12d35d441da1ca4a4c0fc1cd5f2a207af", - "reference": "32cf62f12d35d441da1ca4a4c0fc1cd5f2a207af", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/74b272979a490747c6775b0228d06cf246306a99", + "reference": "74b272979a490747c6775b0228d06cf246306a99", "shasum": "" }, "require": { @@ -4246,7 +4319,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.0.0" + "source": "https://github.com/symfony/var-exporter/tree/v6.0.8" }, "funding": [ { @@ -4262,7 +4335,7 @@ "type": "tidelift" } ], - "time": "2021-11-22T10:44:58+00:00" + "time": "2022-04-26T13:22:23+00:00" } ], "aliases": [], @@ -4277,5 +4350,5 @@ "platform-overrides": { "php": "8.1.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/tools/06_phpmd/composer.json b/tools/06_phpmd/composer.json index 311a0472..499a6141 100644 --- a/tools/06_phpmd/composer.json +++ b/tools/06_phpmd/composer.json @@ -3,7 +3,7 @@ "description": "", "require": {}, "require-dev": { - "phpmd/phpmd": "2.11.*", + "phpmd/phpmd": "2.12.*", "roave/security-advisories": "dev-latest" }, "config": { diff --git a/tools/06_phpmd/composer.lock b/tools/06_phpmd/composer.lock index 78a9251a..df67379c 100644 --- a/tools/06_phpmd/composer.lock +++ b/tools/06_phpmd/composer.lock @@ -4,35 +4,35 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2a61c2eb43283b4d23fe493f1d076c76", + "content-hash": "497001147b9eb4c0e9c2e41e3a41f1b2", "packages": [], "packages-dev": [ { "name": "composer/pcre", - "version": "1.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2" + "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/3d322d715c43a1ac36c7fe215fa59336265500f2", - "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2", + "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1", + "phpstan/phpstan": "^1.3", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" + "symfony/phpunit-bridge": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -60,7 +60,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/1.0.0" + "source": "https://github.com/composer/pcre/tree/3.0.0" }, "funding": [ { @@ -76,31 +76,31 @@ "type": "tidelift" } ], - "time": "2021-12-06T15:17:27+00:00" + "time": "2022-02-25T20:21:48+00:00" }, { "name": "composer/xdebug-handler", - "version": "2.0.4", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a" + "reference": "ced299686f41dce890debac69273b47ffe98a40c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", "shasum": "" }, "require": { - "composer/pcre": "^1", - "php": "^5.3.2 || ^7.0 || ^8.0", + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^6.0" }, "type": "library", "autoload": { @@ -126,7 +126,7 @@ "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.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" }, "funding": [ { @@ -142,27 +142,27 @@ "type": "tidelift" } ], - "time": "2022-01-04T17:06:45+00:00" + "time": "2022-02-25T21:32:43+00:00" }, { "name": "pdepend/pdepend", - "version": "2.10.2", + "version": "2.10.3", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "c8c1d2af43fb8c2b5387d50e9c42a9c56de13686" + "reference": "da3166a06b4a89915920a42444f707122a1584c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/c8c1d2af43fb8c2b5387d50e9c42a9c56de13686", - "reference": "c8c1d2af43fb8c2b5387d50e9c42a9c56de13686", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/da3166a06b4a89915920a42444f707122a1584c9", + "reference": "da3166a06b4a89915920a42444f707122a1584c9", "shasum": "" }, "require": { "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3|^4|^5", - "symfony/dependency-injection": "^2.3.0|^3|^4|^5", - "symfony/filesystem": "^2.3.0|^3|^4|^5" + "symfony/config": "^2.3.0|^3|^4|^5|^6.0", + "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0", + "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0" }, "require-dev": { "easy-doc/easy-doc": "0.0.0|^1.2.3", @@ -191,7 +191,7 @@ "description": "Official version of pdepend to be handled with Composer", "support": { "issues": "https://github.com/pdepend/pdepend/issues", - "source": "https://github.com/pdepend/pdepend/tree/2.10.2" + "source": "https://github.com/pdepend/pdepend/tree/2.10.3" }, "funding": [ { @@ -199,26 +199,26 @@ "type": "tidelift" } ], - "time": "2021-11-16T20:05:32+00:00" + "time": "2022-02-23T07:53:09+00:00" }, { "name": "phpmd/phpmd", - "version": "2.11.1", + "version": "2.12.0", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "08b60a2eb7e14c23f46ff8865b510ae08b75d0fd" + "reference": "c0b678ba71902f539c27c14332aa0ddcf14388ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/08b60a2eb7e14c23f46ff8865b510ae08b75d0fd", - "reference": "08b60a2eb7e14c23f46ff8865b510ae08b75d0fd", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/c0b678ba71902f539c27c14332aa0ddcf14388ec", + "reference": "c0b678ba71902f539c27c14332aa0ddcf14388ec", "shasum": "" }, "require": { - "composer/xdebug-handler": "^1.0 || ^2.0", + "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", "ext-xml": "*", - "pdepend/pdepend": "^2.10.2", + "pdepend/pdepend": "^2.10.3", "php": ">=5.3.9" }, "require-dev": { @@ -274,7 +274,7 @@ "support": { "irc": "irc://irc.freenode.org/phpmd", "issues": "https://github.com/phpmd/phpmd/issues", - "source": "https://github.com/phpmd/phpmd/tree/2.11.1" + "source": "https://github.com/phpmd/phpmd/tree/2.12.0" }, "funding": [ { @@ -282,26 +282,31 @@ "type": "tidelift" } ], - "time": "2021-12-17T11:25:43+00:00" + "time": "2022-03-24T13:33:01+00:00" }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -328,9 +333,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/log", @@ -388,42 +393,49 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199" + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/38da7ef14348ff26d7c415c4ed18b82db07fe199", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e5a0abdd695cd45870e442647ef03a70f2ec1e5", + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", + "admidio/admidio": "<4.1.9", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "akaunting/akaunting": "<2.1.13", + "alextselegidis/easyappointments": "<1.4.3", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", "baserproject/basercms": "<4.5.4", "billz/raspap-webgui": "<=2.6.6", "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", + "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", - "bolt/core": "<4.1.13", + "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<7.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cakephp/cakephp": "<4.0.6", "cardgate/magento2": "<2.0.33", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", @@ -432,17 +444,21 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.1.6", + "codeigniter4/framework": "<4.1.9", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.23|>=2-alpha.1,<2.1.9", - "concrete5/concrete5": "<8.5.5", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<9", "concrete5/core": "<8.5.7", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|= 4.10.0", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", - "craftcms/cms": "<3.7.14", + "contao/managed-edition": "<=1.5", + "craftcms/cms": "<3.7.29", "croogo/croogo": "<3.0.7", + "cuyz/valinor": ">=0.5,<0.7", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", @@ -456,15 +472,16 @@ "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|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<=14.0.4|>= 3.3.beta1, < 13.0.2", - "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<1.2.1", + "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", - "enshrined/svg-sanitize": "<0.13.1", + "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", "ezsystems/demobundle": ">=5.4,<5.4.6.1", @@ -472,27 +489,29 @@ "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.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<=1.5.25", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.27", "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-kernel": "<=1.2.5|>=1.3,<1.3.17", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.28", "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=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.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<2022.6", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=0.1.3", + "fenom/fenom": "<=2.12.1", "firebase/php-jwt": "<2", "flarum/core": ">=1,<=1.0.1", "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.9.2", + "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", "francoisjacquet/rosariosis": "<8.1.1", "friendsofsymfony/oauth2-php": "<1.3", @@ -500,37 +519,47 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<=0.10.22", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", - "getgrav/grav": "<=1.7.24", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<1.7.31", "getkirby/cms": "<3.5.8", "getkirby/panel": "<2.5.14", "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", + "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/core": ">=4,<4.0.5|>=4.1,<4.1.2", "ibexa/post-install": "<=1.0.4", - "icecoder/icecoder": "<=8", + "icecoder/icecoder": "<=8.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": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "impresscms/impresscms": "<=1.4.2", + "impresscms/impresscms": "<=1.4.3", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "joomla/archive": "<1.1.10", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/input": ">=2,<2.0.2", "joomla/session": "<1.3.1", + "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kevinpapst/kimai2": "<1.16.7", @@ -538,8 +567,11 @@ "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/laravel": "<=5.8.38", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -547,8 +579,9 @@ "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "librenms/librenms": "<=21.11", + "librenms/librenms": "<22.2.2", "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", @@ -557,14 +590,16 @@ "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": "<4|= 2.13.1", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.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", - "microweber/microweber": "<1.2.8", + "microweber/microweber": "<1.3", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", - "modx/revolution": "<2.8", + "modx/revolution": "<= 2.8.3-pl|<2.8", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10-beta,<3.10.2", + "moodle/moodle": "<3.9.13|>=3.10-beta,<3.10.10|>=3.11,<3.11.6", + "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", "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", @@ -576,15 +611,16 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", "nukeviet/nukeviet": "<4.3.4", - "nystudio107/craft-seomatic": "<3.3", + "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "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|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.473|>=1.1,<1.1.6|>=2.1,<2.1.12", + "october/system": "<1.0.475|>=1.1,<1.1.11|>=2,<2.1.27", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<19.4.15|>=20,<20.0.13", @@ -598,58 +634,65 @@ "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", - "phpoffice/phpexcel": "<1.8.2", + "phpmyadmin/phpmyadmin": "<5.1.3", + "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpservermon/phpservermon": "<=3.5.2", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.2.7", - "pocketmine/pocketmine-mp": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/pimcore": "<10.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<4.2.9", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", + "prestashop/prestashop": ">=1.7,<=1.7.8.2", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "privatebin/privatebin": "<1.4", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.6.6", + "pterodactyl/panel": "<1.7", + "ptrofimov/beanstalk_console": "<1.7.14", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", - "remdex/livehelperchat": "<3.91", + "remdex/livehelperchat": "<3.96", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "rudloff/alltube": "<3.0.3", + "s-cart/s-cart": "<6.7.2", "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/core": "<=6.4.6", - "shopware/platform": "<=6.4.6", + "shopware/core": "<=6.4.9", + "shopware/platform": "<=6.4.9", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.7.7", - "showdoc/showdoc": "<2.10", + "shopware/shopware": "<5.7.9", + "shopware/storefront": "<=6.4.8.1", + "showdoc/showdoc": "<2.10.4", "silverstripe/admin": ">=1,<1.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.7.4", - "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2", + "silverstripe/framework": "<4.10.1", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|= 4.0.0-alpha1", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -662,12 +705,14 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.43|>=4,<4.0.3", - "snipe/snipe-it": "<5.3.5", + "snipe/snipe-it": "<5.4.3|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.12.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", @@ -675,10 +720,10 @@ "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "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/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.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.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3|>=1.9,<1.9.5", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", "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", @@ -687,7 +732,7 @@ "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", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "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|>=5.2,<5.3.12", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -703,9 +748,9 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "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,<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|>=5.3,<5.3.2", + "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|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", "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", @@ -713,7 +758,9 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", @@ -722,9 +769,9 @@ "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", - "tribalsystems/zenario": "<8.8.53370", + "tribalsystems/zenario": "<9.2.55826", "truckersmp/phpwhois": "<=4.3.1", - "twig/twig": "<1.38|>=2,<2.7", + "twig/twig": "<1.38|>=2,<2.14.11|>=3,<3.3.8", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", "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.52|>=8,<=8.7.41|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", @@ -740,7 +787,7 @@ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", - "vrana/adminer": "<4.7.9", + "vrana/adminer": "<4.8.1", "wallabag/tcpdf": "<6.2.22", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", @@ -748,6 +795,9 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wwbn/avideo": "<=11.6", + "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -767,10 +817,10 @@ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": ">=1,<1.8.4", - "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -822,39 +872,38 @@ "type": "tidelift" } ], - "time": "2022-01-14T21:13:43+00:00" + "time": "2022-04-29T21:04:00+00:00" }, { "name": "symfony/config", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "2e082dae50da563c639119b7b52347a2a3db4ba5" + "reference": "6ac50d559aa64c8e7b5b17640c46241e4accb487" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/2e082dae50da563c639119b7b52347a2a3db4ba5", - "reference": "2e082dae50da563c639119b7b52347a2a3db4ba5", + "url": "https://api.github.com/repos/symfony/config/zipball/6ac50d559aa64c8e7b5b17640c46241e4accb487", + "reference": "6ac50d559aa64c8e7b5b17640c46241e4accb487", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^5.4|^6.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16", "symfony/polyfill-php81": "^1.22" }, "conflict": { "symfony/finder": "<4.4" }, "require-dev": { - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" @@ -885,7 +934,7 @@ "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.4.2" + "source": "https://github.com/symfony/config/tree/v6.0.8" }, "funding": [ { @@ -901,45 +950,44 @@ "type": "tidelift" } ], - "time": "2021-12-15T11:06:13+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.2", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "ba94559be9738d77cd29e24b5d81cf3b89b7d628" + "reference": "571041cd7e765664cc527b461ee41be3013aa08e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ba94559be9738d77cd29e24b5d81cf3b89b7d628", - "reference": "ba94559be9738d77cd29e24b5d81cf3b89b7d628", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/571041cd7e765664cc527b461ee41be3013aa08e", + "reference": "571041cd7e765664cc527b461ee41be3013aa08e", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1.1", + "php": ">=8.0.2", + "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16", "symfony/polyfill-php81": "^1.22", - "symfony/service-contracts": "^1.1.6|^2" + "symfony/service-contracts": "^1.1.6|^2.0|^3.0" }, "conflict": { "ext-psr": "<1.1|>=2", - "symfony/config": "<5.3", - "symfony/finder": "<4.4", - "symfony/proxy-manager-bridge": "<4.4", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/finder": "<5.4", + "symfony/proxy-manager-bridge": "<5.4", + "symfony/yaml": "<5.4" }, "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0|2.0" + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" }, "require-dev": { - "symfony/config": "^5.3|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/config": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "symfony/config": "", @@ -974,7 +1022,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.2" + "source": "https://github.com/symfony/dependency-injection/tree/v6.0.8" }, "funding": [ { @@ -990,20 +1038,20 @@ "type": "tidelift" } ], - "time": "2021-12-29T10:10:35+00:00" + "time": "2022-04-26T13:22:23+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", - "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", "shasum": "" }, "require": { @@ -1041,7 +1089,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.1" }, "funding": [ { @@ -1057,27 +1105,26 @@ "type": "tidelift" } ], - "time": "2021-11-01T23:48:49+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.0", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01" + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/731f917dc31edcffec2c6a777f3698c33bea8f01", - "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", + "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.8" }, "type": "library", "autoload": { @@ -1105,7 +1152,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.0" + "source": "https://github.com/symfony/filesystem/tree/v6.0.7" }, "funding": [ { @@ -1121,11 +1168,11 @@ "type": "tidelift" } ], - "time": "2021-10-28T13:39:27+00:00" + "time": "2022-04-01T12:54:51+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -1157,12 +1204,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1187,7 +1234,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -1207,7 +1254,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -1239,12 +1286,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1270,7 +1317,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -1288,92 +1335,9 @@ ], "time": "2021-11-30T18:21:41+00:00" }, - { - "name": "symfony/polyfill-php80", - "version": "v1.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-09-13T13:58:33+00:00" - }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -1399,12 +1363,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -1432,7 +1396,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" }, "funding": [ { @@ -1452,21 +1416,21 @@ }, { "name": "symfony/service-contracts", - "version": "v2.4.1", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d664541b99d6fb0247ec5ff32e87238582236204" + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d664541b99d6fb0247ec5ff32e87238582236204", - "reference": "d664541b99d6fb0247ec5ff32e87238582236204", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e517458f278c2131ca9f262f8fbaf01410f2c65c", + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1" + "php": ">=8.0.2", + "psr/container": "^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -1477,7 +1441,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -1514,7 +1478,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.0.1" }, "funding": [ { @@ -1530,7 +1494,7 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2022-03-13T20:10:05+00:00" } ], "aliases": [], @@ -1545,5 +1509,5 @@ "platform-overrides": { "php": "8.1.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/tools/07_phpmetrics/composer.json b/tools/07_phpmetrics/composer.json index 695c6557..6e9a3cdc 100644 --- a/tools/07_phpmetrics/composer.json +++ b/tools/07_phpmetrics/composer.json @@ -3,7 +3,7 @@ "description": "", "require": {}, "require-dev": { - "phpmetrics/phpmetrics": "2.7.*", + "phpmetrics/phpmetrics": "2.8.*", "roave/security-advisories": "dev-latest" }, "config": { diff --git a/tools/07_phpmetrics/composer.lock b/tools/07_phpmetrics/composer.lock index a4ce59a5..2d8893e2 100644 --- a/tools/07_phpmetrics/composer.lock +++ b/tools/07_phpmetrics/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ee3c83eeb099601e1b5192d0fb93c611", + "content-hash": "221230d89bd5249e00ef6944898f4b2f", "packages": [], "packages-dev": [ { @@ -65,16 +65,16 @@ }, { "name": "phpmetrics/phpmetrics", - "version": "v2.7.4", + "version": "v2.8.1", "source": { "type": "git", "url": "https://github.com/phpmetrics/PhpMetrics.git", - "reference": "e6a7aee0e0948e363eb78ce9d58573cd5af2cdec" + "reference": "e279f7317390f642339941b693359e9a181817a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmetrics/PhpMetrics/zipball/e6a7aee0e0948e363eb78ce9d58573cd5af2cdec", - "reference": "e6a7aee0e0948e363eb78ce9d58573cd5af2cdec", + "url": "https://api.github.com/repos/phpmetrics/PhpMetrics/zipball/e279f7317390f642339941b693359e9a181817a7", + "reference": "e279f7317390f642339941b693359e9a181817a7", "shasum": "" }, "require": { @@ -90,19 +90,20 @@ "require-dev": { "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14", "sebastian/comparator": ">=1.2.3", - "squizlabs/php_codesniffer": "^3.5" + "squizlabs/php_codesniffer": "^3.5", + "symfony/dom-crawler": "^3.0 || ^4.0 || ^5.0" }, "bin": [ "bin/phpmetrics" ], "type": "library", "autoload": { - "psr-0": { - "Hal\\": "./src/" - }, "files": [ "./src/functions.php" - ] + ], + "psr-0": { + "Hal\\": "./src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -126,9 +127,9 @@ ], "support": { "issues": "https://github.com/PhpMetrics/PhpMetrics/issues", - "source": "https://github.com/phpmetrics/PhpMetrics/tree/master" + "source": "https://github.com/phpmetrics/PhpMetrics/tree/v2.8.1" }, - "time": "2020-06-30T20:33:55+00:00" + "time": "2022-03-24T10:19:51+00:00" }, { "name": "roave/security-advisories", @@ -136,42 +137,49 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199" + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/38da7ef14348ff26d7c415c4ed18b82db07fe199", - "reference": "38da7ef14348ff26d7c415c4ed18b82db07fe199", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0e5a0abdd695cd45870e442647ef03a70f2ec1e5", + "reference": "0e5a0abdd695cd45870e442647ef03a70f2ec1e5", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.12", + "admidio/admidio": "<4.1.9", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "akaunting/akaunting": "<2.1.13", + "alextselegidis/easyappointments": "<1.4.3", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "area17/twill": "<1.2.5|>=2,<2.5.3", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", "baserproject/basercms": "<4.5.4", "billz/raspap-webgui": "<=2.6.6", "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", + "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", - "bolt/core": "<4.1.13", + "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<7.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cakephp/cakephp": "<4.0.6", "cardgate/magento2": "<2.0.33", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", @@ -180,17 +188,21 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.1.6", + "codeigniter4/framework": "<4.1.9", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.23|>=2-alpha.1,<2.1.9", - "concrete5/concrete5": "<8.5.5", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<9", "concrete5/core": "<8.5.7", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|= 4.10.0", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", - "craftcms/cms": "<3.7.14", + "contao/managed-edition": "<=1.5", + "craftcms/cms": "<3.7.29", "croogo/croogo": "<3.0.7", + "cuyz/valinor": ">=0.5,<0.7", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", @@ -204,15 +216,16 @@ "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|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<=14.0.4|>= 3.3.beta1, < 13.0.2", - "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<1.2.1", + "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", "elgg/elgg": "<3.3.24|>=4,<4.0.5", "endroid/qr-code-bundle": "<3.4.2", - "enshrined/svg-sanitize": "<0.13.1", + "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", "ezsystems/demobundle": ">=5.4,<5.4.6.1", @@ -220,27 +233,29 @@ "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.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<=1.5.25", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.27", "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-kernel": "<=1.2.5|>=1.3,<1.3.17", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<=7.5.15.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.28", "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=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.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<2022.6", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=0.1.3", + "fenom/fenom": "<=2.12.1", "firebase/php-jwt": "<2", "flarum/core": ">=1,<=1.0.1", "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.9.2", + "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", "francoisjacquet/rosariosis": "<8.1.1", "friendsofsymfony/oauth2-php": "<1.3", @@ -248,37 +263,47 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<=0.10.22", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", - "getgrav/grav": "<=1.7.24", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<1.7.31", "getkirby/cms": "<3.5.8", "getkirby/panel": "<2.5.14", "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", + "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/core": ">=4,<4.0.5|>=4.1,<4.1.2", "ibexa/post-install": "<=1.0.4", - "icecoder/icecoder": "<=8", + "icecoder/icecoder": "<=8.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": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "impresscms/impresscms": "<=1.4.2", + "impresscms/impresscms": "<=1.4.3", "in2code/femanager": "<5.5.1|>=6,<6.3.1", "intelliants/subrion": "<=4.2.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "joomla/archive": "<1.1.10", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/input": ">=2,<2.0.2", "joomla/session": "<1.3.1", + "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", "kazist/phpwhois": "<=4.2.6", "kevinpapst/kimai2": "<1.16.7", @@ -286,8 +311,11 @@ "klaviyo/magento2-extension": ">=1,<3", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/laravel": "<=5.8.38", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -295,8 +323,9 @@ "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "librenms/librenms": "<=21.11", + "librenms/librenms": "<22.2.2", "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", @@ -305,14 +334,16 @@ "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": "<4|= 2.13.1", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.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", - "microweber/microweber": "<1.2.8", + "microweber/microweber": "<1.3", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", - "modx/revolution": "<2.8", + "modx/revolution": "<= 2.8.3-pl|<2.8", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<3.7.9|>=3.8,<3.8.8|>=3.9,<3.9.5|>=3.10-beta,<3.10.2", + "moodle/moodle": "<3.9.13|>=3.10-beta,<3.10.10|>=3.11,<3.11.6", + "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", "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", @@ -324,15 +355,16 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", "nukeviet/nukeviet": "<4.3.4", - "nystudio107/craft-seomatic": "<3.3", + "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "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|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.473|>=1.1,<1.1.6|>=2.1,<2.1.12", + "october/system": "<1.0.475|>=1.1,<1.1.11|>=2,<2.1.27", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", "opencart/opencart": "<=3.0.3.2", "openid/php-openid": "<2.3", "openmage/magento-lts": "<19.4.15|>=20,<20.0.13", @@ -346,58 +378,65 @@ "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", - "phpoffice/phpexcel": "<1.8.2", + "phpmyadmin/phpmyadmin": "<5.1.3", + "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.7", "phpservermon/phpservermon": "<=3.5.2", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "pimcore/pimcore": "<10.2.7", - "pocketmine/pocketmine-mp": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/pimcore": "<10.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<4.2.9", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": ">=1.7.5,<=1.7.8.1", + "prestashop/prestashop": ">=1.7,<=1.7.8.2", "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", + "privatebin/privatebin": "<1.4", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.6.6", + "pterodactyl/panel": "<1.7", + "ptrofimov/beanstalk_console": "<1.7.14", "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", - "remdex/livehelperchat": "<3.91", + "remdex/livehelperchat": "<3.96", "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", + "rudloff/alltube": "<3.0.3", + "s-cart/s-cart": "<6.7.2", "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/core": "<=6.4.6", - "shopware/platform": "<=6.4.6", + "shopware/core": "<=6.4.9", + "shopware/platform": "<=6.4.9", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<5.7.7", - "showdoc/showdoc": "<2.10", + "shopware/shopware": "<5.7.9", + "shopware/storefront": "<=6.4.8.1", + "showdoc/showdoc": "<2.10.4", "silverstripe/admin": ">=1,<1.8.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.7.4", - "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2", + "silverstripe/framework": "<4.10.1", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|= 4.0.0-alpha1", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/subsites": ">=2,<2.1.1", @@ -410,12 +449,14 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.43|>=4,<4.0.3", - "snipe/snipe-it": "<5.3.5", + "snipe/snipe-it": "<5.4.3|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<21.12.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", "stormpath/sdk": ">=0,<9.9.99", "studio-42/elfinder": "<2.1.59", "subrion/cms": "<=4.2.1", @@ -423,10 +464,10 @@ "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "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/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.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.6.9|>=1.7,<1.7.9|>=1.8,<1.8.3|>=1.9,<1.9.5", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", "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", @@ -435,7 +476,7 @@ "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", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "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|>=5.2,<5.3.12", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -451,9 +492,9 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "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,<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|>=5.3,<5.3.2", + "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|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12", + "symfony/symfony": ">=2,<3.4.49|>=4,<4.4.35|>=5,<5.3.12|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", "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", @@ -461,7 +502,9 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", @@ -470,9 +513,9 @@ "topthink/framework": "<6.0.9", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", - "tribalsystems/zenario": "<8.8.53370", + "tribalsystems/zenario": "<9.2.55826", "truckersmp/phpwhois": "<=4.3.1", - "twig/twig": "<1.38|>=2,<2.7", + "twig/twig": "<1.38|>=2,<2.14.11|>=3,<3.3.8", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", "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.52|>=8,<=8.7.41|>=9,<9.5.29|>=10,<10.4.19|>=11,<11.5", @@ -488,7 +531,7 @@ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", - "vrana/adminer": "<4.7.9", + "vrana/adminer": "<4.8.1", "wallabag/tcpdf": "<6.2.22", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", @@ -496,6 +539,9 @@ "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", "wp-cli/wp-cli": "<2.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wwbn/avideo": "<=11.6", + "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.3", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", @@ -515,10 +561,10 @@ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": ">=1,<1.8.4", - "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -570,7 +616,7 @@ "type": "tidelift" } ], - "time": "2022-01-14T21:13:43+00:00" + "time": "2022-04-29T21:04:00+00:00" } ], "aliases": [], @@ -585,5 +631,5 @@ "platform-overrides": { "php": "8.1.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/translations/security+intl-icu.fi.xlf b/translations/security+intl-icu.fi.xlf new file mode 100644 index 00000000..31d0b95b --- /dev/null +++ b/translations/security+intl-icu.fi.xlf @@ -0,0 +1,14 @@ + + + +
+ +
+ + + Invalid credentials. + Virheelliset käyttäjätunnukset. + + +
+
diff --git a/translations/security+intl-icu.ua.xlf b/translations/security+intl-icu.ua.xlf new file mode 100644 index 00000000..4ee1af35 --- /dev/null +++ b/translations/security+intl-icu.ua.xlf @@ -0,0 +1,14 @@ + + + +
+ +
+ + + Invalid credentials. + Невірні облікові дані. + + +
+