From dab9c0831a8595b86883ace90873c514eb6699e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Wed, 10 Feb 2021 00:53:33 +0100 Subject: [PATCH 01/12] Add mod list download tests --- .../AceInteractionMenuExpansionModFixture.php | 32 +++++ .../ArmaForcesModsModFixture.php | 2 +- .../Broken/ArmaForcesAceMedicalModFixture.php | 2 +- .../LegacyArmaForcesModsModFixture.php | 2 +- .../ArmaForcesJbadBuildingFixModFixture.php | 2 +- .../ModList/DefaultModListFixture.php | 16 +-- src/Test/Enum/RouteEnum.php | 2 +- src/Test/Traits/AssertsTrait.php | 33 +++++ src/Test/Traits/DataProvidersTrait.php | 2 +- .../ModList/GetModListByNameActionTest.php | 23 +++- .../ModList/GetModListsByIdActionTest.php | 23 +++- .../DownloadActionTest.php | 128 ++++++++++++++++++ 12 files changed, 240 insertions(+), 27 deletions(-) create mode 100644 src/DataFixtures/Mod/Optional/AceInteractionMenuExpansionModFixture.php rename src/DataFixtures/Mod/{ => Required}/ArmaForcesModsModFixture.php (95%) rename src/DataFixtures/Mod/{ => Required}/Broken/ArmaForcesAceMedicalModFixture.php (95%) rename src/DataFixtures/Mod/{ => Required}/Deprecated/LegacyArmaForcesModsModFixture.php (94%) rename src/DataFixtures/Mod/{ => Required}/Disabled/ArmaForcesJbadBuildingFixModFixture.php (94%) create mode 100644 tests/functional/Controller/ModListPublicController/DownloadActionTest.php diff --git a/src/DataFixtures/Mod/Optional/AceInteractionMenuExpansionModFixture.php b/src/DataFixtures/Mod/Optional/AceInteractionMenuExpansionModFixture.php new file mode 100644 index 00000000..26272c4d --- /dev/null +++ b/src/DataFixtures/Mod/Optional/AceInteractionMenuExpansionModFixture.php @@ -0,0 +1,32 @@ +setCreatedAt(\DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2020-01-01 00:00:00')); + + $manager->persist($mod); + $manager->flush(); + + $this->addReference(self::ID, $mod); + } +} diff --git a/src/DataFixtures/Mod/ArmaForcesModsModFixture.php b/src/DataFixtures/Mod/Required/ArmaForcesModsModFixture.php similarity index 95% rename from src/DataFixtures/Mod/ArmaForcesModsModFixture.php rename to src/DataFixtures/Mod/Required/ArmaForcesModsModFixture.php index 0e957e3f..cccd7f7c 100644 --- a/src/DataFixtures/Mod/ArmaForcesModsModFixture.php +++ b/src/DataFixtures/Mod/Required/ArmaForcesModsModFixture.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\DataFixtures\Mod; +namespace App\DataFixtures\Mod\Required; use App\Entity\Mod\Enum\ModTypeEnum; use App\Entity\Mod\SteamWorkshopMod; diff --git a/src/DataFixtures/Mod/Broken/ArmaForcesAceMedicalModFixture.php b/src/DataFixtures/Mod/Required/Broken/ArmaForcesAceMedicalModFixture.php similarity index 95% rename from src/DataFixtures/Mod/Broken/ArmaForcesAceMedicalModFixture.php rename to src/DataFixtures/Mod/Required/Broken/ArmaForcesAceMedicalModFixture.php index a858b0d8..428c643c 100644 --- a/src/DataFixtures/Mod/Broken/ArmaForcesAceMedicalModFixture.php +++ b/src/DataFixtures/Mod/Required/Broken/ArmaForcesAceMedicalModFixture.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\DataFixtures\Mod\Broken; +namespace App\DataFixtures\Mod\Required\Broken; use App\Entity\Mod\Enum\ModStatusEnum; use App\Entity\Mod\Enum\ModTypeEnum; diff --git a/src/DataFixtures/Mod/Deprecated/LegacyArmaForcesModsModFixture.php b/src/DataFixtures/Mod/Required/Deprecated/LegacyArmaForcesModsModFixture.php similarity index 94% rename from src/DataFixtures/Mod/Deprecated/LegacyArmaForcesModsModFixture.php rename to src/DataFixtures/Mod/Required/Deprecated/LegacyArmaForcesModsModFixture.php index 7abd44e2..6390d892 100644 --- a/src/DataFixtures/Mod/Deprecated/LegacyArmaForcesModsModFixture.php +++ b/src/DataFixtures/Mod/Required/Deprecated/LegacyArmaForcesModsModFixture.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\DataFixtures\Mod\Deprecated; +namespace App\DataFixtures\Mod\Required\Deprecated; use App\Entity\Mod\Enum\ModStatusEnum; use App\Entity\Mod\Enum\ModTypeEnum; diff --git a/src/DataFixtures/Mod/Disabled/ArmaForcesJbadBuildingFixModFixture.php b/src/DataFixtures/Mod/Required/Disabled/ArmaForcesJbadBuildingFixModFixture.php similarity index 94% rename from src/DataFixtures/Mod/Disabled/ArmaForcesJbadBuildingFixModFixture.php rename to src/DataFixtures/Mod/Required/Disabled/ArmaForcesJbadBuildingFixModFixture.php index 4d3d7290..8e39181a 100644 --- a/src/DataFixtures/Mod/Disabled/ArmaForcesJbadBuildingFixModFixture.php +++ b/src/DataFixtures/Mod/Required/Disabled/ArmaForcesJbadBuildingFixModFixture.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\DataFixtures\Mod\Disabled; +namespace App\DataFixtures\Mod\Required\Disabled; use App\Entity\Mod\Enum\ModStatusEnum; use App\Entity\Mod\Enum\ModTypeEnum; diff --git a/src/DataFixtures/ModList/DefaultModListFixture.php b/src/DataFixtures/ModList/DefaultModListFixture.php index 7d5b8903..e40864d7 100644 --- a/src/DataFixtures/ModList/DefaultModListFixture.php +++ b/src/DataFixtures/ModList/DefaultModListFixture.php @@ -4,10 +4,8 @@ namespace App\DataFixtures\ModList; -use App\DataFixtures\Mod\ArmaForcesModsModFixture; -use App\DataFixtures\Mod\Broken; -use App\DataFixtures\Mod\Deprecated; -use App\DataFixtures\Mod\Disabled; +use App\DataFixtures\Mod\Optional; +use App\DataFixtures\Mod\Required; use App\Entity\ModList\ModList; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Persistence\ObjectManager; @@ -26,11 +24,11 @@ public function load(ObjectManager $manager): void $modList->setCreatedAt(\DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2020-01-01 00:00:00')); $mods = [ - $this->getReference(ArmaForcesModsModFixture::ID), - - $this->getReference(Broken\ArmaForcesAceMedicalModFixture::ID), - $this->getReference(Deprecated\LegacyArmaForcesModsModFixture::ID), - $this->getReference(Disabled\ArmaForcesJbadBuildingFixModFixture::ID), + $this->getReference(Optional\AceInteractionMenuExpansionModFixture::ID), + $this->getReference(Required\ArmaForcesModsModFixture::ID), + $this->getReference(Required\Broken\ArmaForcesAceMedicalModFixture::ID), + $this->getReference(Required\Deprecated\LegacyArmaForcesModsModFixture::ID), + $this->getReference(Required\Disabled\ArmaForcesJbadBuildingFixModFixture::ID), ]; foreach ($mods as $mod) { diff --git a/src/Test/Enum/RouteEnum.php b/src/Test/Enum/RouteEnum.php index 98bc2d5d..805b4e91 100644 --- a/src/Test/Enum/RouteEnum.php +++ b/src/Test/Enum/RouteEnum.php @@ -16,7 +16,7 @@ class RouteEnum public const MOD_LIST_PUBLIC_SELECT = '/mod-list/select'; public const MOD_LIST_PUBLIC_CUSTOMIZE = '/mod-list/%s'; - public const MOD_LIST_PUBLIC_DOWNLOAD = '/mod-list/%s/download/%s'; + public const MOD_LIST_PUBLIC_DOWNLOAD = '/mod-list/%s/download'; public const USER_LIST = '/user/list'; public const USER_DELETE = '/user/%s/delete'; diff --git a/src/Test/Traits/AssertsTrait.php b/src/Test/Traits/AssertsTrait.php index d4873b22..db8df368 100644 --- a/src/Test/Traits/AssertsTrait.php +++ b/src/Test/Traits/AssertsTrait.php @@ -4,7 +4,10 @@ namespace App\Test\Traits; +use App\Entity\Mod\SteamWorkshopMod; +use App\Entity\ModList\ModList; use Symfony\Component\DomCrawler\Crawler; +use Symfony\Component\HttpFoundation\Response; trait AssertsTrait { @@ -15,4 +18,34 @@ public static function assertTeamSpeakUrlVisible(Crawler $crawler, bool $visible $url = $crawler->filter('.icon-teamspeak a')->attr('href'); self::assertSame($expectedUrl, $url); } + + public static function assertResponseContainsModListAttachmentHeader(Response $response, ModList $modList): void + { + $contentDispositionHeader = $response->headers->get('Content-Disposition'); + $pattern = "/^attachment; filename=\"{$modList->getName()} \\d{4}-\\d{2}-\\d{2} \\d{2}-\\d{2}-\\d{2}.html\"$/"; + + self::assertTrue(1 === preg_match($pattern, $contentDispositionHeader)); + } + + public static function assertLauncherPresetContainsMods(Crawler $crawler, array $expectedMods): void + { + $expectedMods = array_map(static function (SteamWorkshopMod $steamWorkshopMod) { + return [ + 'name' => $steamWorkshopMod->getName(), + 'url' => "https://steamcommunity.com/sharedfiles/filedetails/?id={$steamWorkshopMod->getItemId()}", + ]; + }, $expectedMods); + + $modContainerNodes = $crawler->filter('[data-type="ModContainer"]'); + $presetMods = array_map(static function (\DOMNode $modContainerNode) { + $modContainerCrawler = (new Crawler($modContainerNode)); + + return [ + 'name' => $modContainerCrawler->filter('[data-type="DisplayName"]')->html(), + 'url' => $modContainerCrawler->filter('[data-type="Link"]')->attr('href'), + ]; + }, iterator_to_array($modContainerNodes->getIterator())); + + self::assertSame(var_export($expectedMods, true), var_export($presetMods, true)); + } } diff --git a/src/Test/Traits/DataProvidersTrait.php b/src/Test/Traits/DataProvidersTrait.php index f451d291..ac9823c0 100644 --- a/src/Test/Traits/DataProvidersTrait.php +++ b/src/Test/Traits/DataProvidersTrait.php @@ -4,7 +4,7 @@ namespace App\Test\Traits; -use App\DataFixtures\Mod\ArmaForcesModsModFixture; +use App\DataFixtures\Mod\Required\ArmaForcesModsModFixture; use App\DataFixtures\ModGroup\RhsModGroupFixture; use App\DataFixtures\ModList\DefaultModListFixture; use App\DataFixtures\User\AdminUserFixture; diff --git a/tests/functional/Api/Controller/ModList/GetModListByNameActionTest.php b/tests/functional/Api/Controller/ModList/GetModListByNameActionTest.php index 59f79c0a..b2ca8c09 100644 --- a/tests/functional/Api/Controller/ModList/GetModListByNameActionTest.php +++ b/tests/functional/Api/Controller/ModList/GetModListByNameActionTest.php @@ -52,46 +52,57 @@ public function getModListByNameAction_authorizedUser_returnsSuccessfulResponse( [ 'id' => '7e11c37e-930e-49e8-a87d-8f942d98edb0', 'name' => '[legacy] ArmaForces - Mods', + 'createdAt' => '2020-01-01T00:00:00+01:00', + 'lastUpdatedAt' => null, 'source' => 'steam_workshop', 'status' => 'deprecated', 'type' => 'required', 'itemId' => 1639399387, 'directory' => null, - 'createdAt' => '2020-01-01T00:00:00+01:00', - 'lastUpdatedAt' => null, ], [ 'id' => 'b8e88103-69d2-438b-8d89-933ccfdb3a5a', 'name' => '[OBSOLETE] ArmaForces - JBAD Building Fix', + 'createdAt' => '2020-01-01T00:00:00+01:00', + 'lastUpdatedAt' => null, 'source' => 'steam_workshop', 'status' => 'disabled', 'type' => 'required', 'itemId' => 1781106281, 'directory' => null, + ], + [ + 'id' => '37f58e30-5194-4594-89af-4a82c7fc02be', + 'name' => 'ACE Interaction Menu Expansion', 'createdAt' => '2020-01-01T00:00:00+01:00', 'lastUpdatedAt' => null, + 'source' => 'steam_workshop', + 'status' => null, + 'type' => 'optional', + 'itemId' => 1376867375, + 'directory' => null, ], [ 'id' => '2f1d2dea-a7a6-4509-b478-66a980d724ca', 'name' => 'ArmaForces - ACE Medical [OBSOLETE]', + 'createdAt' => '2020-01-01T00:00:00+01:00', + 'lastUpdatedAt' => null, 'source' => 'steam_workshop', 'status' => 'broken', 'type' => 'required', 'itemId' => 1704054308, 'directory' => null, - 'createdAt' => '2020-01-01T00:00:00+01:00', - 'lastUpdatedAt' => null, ], [ 'id' => '0e4e059c-eef6-42a9-aec3-abdab344ec21', 'name' => 'ArmaForces - Mods', + 'createdAt' => '2020-01-01T00:00:00+01:00', + 'lastUpdatedAt' => null, 'source' => 'steam_workshop', 'status' => null, 'type' => 'required', 'itemId' => 1934142795, 'directory' => null, - 'createdAt' => '2020-01-01T00:00:00+01:00', - 'lastUpdatedAt' => null, ], ], ]); diff --git a/tests/functional/Api/Controller/ModList/GetModListsByIdActionTest.php b/tests/functional/Api/Controller/ModList/GetModListsByIdActionTest.php index 3e825ae7..8e20c1c4 100644 --- a/tests/functional/Api/Controller/ModList/GetModListsByIdActionTest.php +++ b/tests/functional/Api/Controller/ModList/GetModListsByIdActionTest.php @@ -52,46 +52,57 @@ public function getModListByNameAction_authorizedUser_returnsSuccessfulResponse( [ 'id' => '7e11c37e-930e-49e8-a87d-8f942d98edb0', 'name' => '[legacy] ArmaForces - Mods', + 'createdAt' => '2020-01-01T00:00:00+01:00', + 'lastUpdatedAt' => null, 'source' => 'steam_workshop', 'status' => 'deprecated', 'type' => 'required', 'itemId' => 1639399387, 'directory' => null, - 'createdAt' => '2020-01-01T00:00:00+01:00', - 'lastUpdatedAt' => null, ], [ 'id' => 'b8e88103-69d2-438b-8d89-933ccfdb3a5a', 'name' => '[OBSOLETE] ArmaForces - JBAD Building Fix', + 'createdAt' => '2020-01-01T00:00:00+01:00', + 'lastUpdatedAt' => null, 'source' => 'steam_workshop', 'status' => 'disabled', 'type' => 'required', 'itemId' => 1781106281, 'directory' => null, + ], + [ + 'id' => '37f58e30-5194-4594-89af-4a82c7fc02be', + 'name' => 'ACE Interaction Menu Expansion', 'createdAt' => '2020-01-01T00:00:00+01:00', 'lastUpdatedAt' => null, + 'source' => 'steam_workshop', + 'status' => null, + 'type' => 'optional', + 'itemId' => 1376867375, + 'directory' => null, ], [ 'id' => '2f1d2dea-a7a6-4509-b478-66a980d724ca', 'name' => 'ArmaForces - ACE Medical [OBSOLETE]', + 'createdAt' => '2020-01-01T00:00:00+01:00', + 'lastUpdatedAt' => null, 'source' => 'steam_workshop', 'status' => 'broken', 'type' => 'required', 'itemId' => 1704054308, 'directory' => null, - 'createdAt' => '2020-01-01T00:00:00+01:00', - 'lastUpdatedAt' => null, ], [ 'id' => '0e4e059c-eef6-42a9-aec3-abdab344ec21', 'name' => 'ArmaForces - Mods', + 'createdAt' => '2020-01-01T00:00:00+01:00', + 'lastUpdatedAt' => null, 'source' => 'steam_workshop', 'status' => null, 'type' => 'required', 'itemId' => 1934142795, 'directory' => null, - 'createdAt' => '2020-01-01T00:00:00+01:00', - 'lastUpdatedAt' => null, ], ], ]); diff --git a/tests/functional/Controller/ModListPublicController/DownloadActionTest.php b/tests/functional/Controller/ModListPublicController/DownloadActionTest.php new file mode 100644 index 00000000..9d9a0943 --- /dev/null +++ b/tests/functional/Controller/ModListPublicController/DownloadActionTest.php @@ -0,0 +1,128 @@ +request(Request::METHOD_GET, $this->createModListDownloadUrl($subjectModList->getName(), [ + $optionalMod->getId()->toString() => true, + ])); + + $this::assertResponseStatusCodeSame(Response::HTTP_OK); + $this::assertResponseContainsModListAttachmentHeader($client->getResponse(), $subjectModList); + $this::assertLauncherPresetContainsMods($crawler, [ + $this::getEntityById(SteamWorkshopMod::class, Required\Deprecated\LegacyArmaForcesModsModFixture::ID), + $this::getEntityById(SteamWorkshopMod::class, Optional\AceInteractionMenuExpansionModFixture::ID), + $this::getEntityById(SteamWorkshopMod::class, Required\Broken\ArmaForcesAceMedicalModFixture::ID), + $this::getEntityById(SteamWorkshopMod::class, Required\ArmaForcesModsModFixture::ID), + ]); + } + + /** + * @test + * @dataProvider allUserTypesDataProvider + */ + public function downloadAction_requiredMods_returnsFileResponse(string $userId): void + { + /** @var User $user */ + $user = $this::getEntityById(User::class, $userId); + + /** @var ModList $subjectModList */ + $subjectModList = $this::getEntityById(ModList::class, DefaultModListFixture::ID); + + $client = $this::authenticateClient($user); + $crawler = $client->request(Request::METHOD_GET, sprintf(RouteEnum::MOD_LIST_PUBLIC_DOWNLOAD, $subjectModList->getName())); + + $this::assertResponseStatusCodeSame(Response::HTTP_OK); + $this::assertResponseContainsModListAttachmentHeader($client->getResponse(), $subjectModList); + $this::assertLauncherPresetContainsMods($crawler, [ + $this::getEntityById(SteamWorkshopMod::class, Required\Deprecated\LegacyArmaForcesModsModFixture::ID), + $this::getEntityById(SteamWorkshopMod::class, Required\Broken\ArmaForcesAceMedicalModFixture::ID), + $this::getEntityById(SteamWorkshopMod::class, Required\ArmaForcesModsModFixture::ID), + ]); + } + + /** + * @test + * @dataProvider allUserTypesDataProvider + */ + public function customizeAction_optionalMods_returnsNotFoundResponse(string $userId): void + { + /** @var User $user */ + $user = $this::getEntityById(User::class, $userId); + + /** @var SteamWorkshopMod $optionalMod */ + $optionalMod = $this::getEntityById(SteamWorkshopMod::class, AceInteractionMenuExpansionModFixture::ID); + + $client = $this::authenticateClient($user); + $client->request(Request::METHOD_GET, $this->createModListDownloadUrl('non-existing-name', [ + $optionalMod->getId()->toString() => true, + ])); + + $this::assertResponseStatusCodeSame(Response::HTTP_NOT_FOUND); + } + + /** + * @test + * @dataProvider allUserTypesDataProvider + */ + public function customizeAction_requiredMods_returnsNotFoundResponse(string $userId): void + { + /** @var User $user */ + $user = $this::getEntityById(User::class, $userId); + + $client = $this::authenticateClient($user); + $client->request(Request::METHOD_GET, sprintf(RouteEnum::MOD_LIST_PUBLIC_DOWNLOAD, 'non-existing-name')); + + $this::assertResponseStatusCodeSame(Response::HTTP_NOT_FOUND); + } + + private function createModListDownloadUrl(string $modListId, array $optionalMods = []): string + { + $url = sprintf(RouteEnum::MOD_LIST_PUBLIC_DOWNLOAD, $modListId); + $optionalModsParameter = $optionalMods ? '/'.json_encode($optionalMods) : ''; + + return $url.$optionalModsParameter; + } +} From a75f6215708b8836c7629966b4181f5d65cb58c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Tue, 9 Feb 2021 20:01:22 +0100 Subject: [PATCH 02/12] Improve templates readability --- .../_partial/navbar/_navbar_icons.html.twig | 21 +++++++------------ .../_partial/navbar/_navbar_links.html.twig | 2 +- .../join_us/_partial/pl/join_steps.html.twig | 3 +-- templates/home/missions/missions.html.twig | 12 ++++++----- 4 files changed, 17 insertions(+), 21 deletions(-) diff --git a/templates/_partial/navbar/_navbar_icons.html.twig b/templates/_partial/navbar/_navbar_icons.html.twig index 8cdffeef..02e2a9f4 100644 --- a/templates/_partial/navbar/_navbar_icons.html.twig +++ b/templates/_partial/navbar/_navbar_icons.html.twig @@ -17,20 +17,15 @@ - + {% else %} + + + {% endif %} diff --git a/templates/_partial/navbar/_navbar_links.html.twig b/templates/_partial/navbar/_navbar_links.html.twig index 8006910b..4e9fa6ef 100644 --- a/templates/_partial/navbar/_navbar_links.html.twig +++ b/templates/_partial/navbar/_navbar_links.html.twig @@ -13,7 +13,7 @@ is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_LIST')) or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_GROUP_LIST')) or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_LIST_LIST')) - -%} + %}
  • diff --git a/templates/home/missions/missions.html.twig b/templates/home/missions/missions.html.twig index 9dea40b8..f0a5e684 100644 --- a/templates/home/missions/missions.html.twig +++ b/templates/home/missions/missions.html.twig @@ -11,11 +11,13 @@ {% block content %}
    -
    - {% if upcomingMissions is null or archivedMissions is null %} + {% if upcomingMissions is null or archivedMissions is null %} +

    {{ 'Something went wrong while fetching missions list...'|trans }}

    {{ 'Try again later'|trans }}

    - {% else %} +
    + {% else %} +

    {{ 'Upcoming missions'|trans }}

    @@ -54,8 +56,8 @@
    {% endfor %} - {% endif %} - + + {% endif %} {% endblock %} From 05f49990ee8c9a2e281105b4dd19ac580cedd99a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Sun, 14 Feb 2021 13:28:58 +0100 Subject: [PATCH 03/12] Make permission check method static --- src/Security/Voter/AbstractVoter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Security/Voter/AbstractVoter.php b/src/Security/Voter/AbstractVoter.php index 65b12383..a3dbc0a4 100644 --- a/src/Security/Voter/AbstractVoter.php +++ b/src/Security/Voter/AbstractVoter.php @@ -11,7 +11,7 @@ abstract class AbstractVoter extends Voter { - public function userHasPermissions(UserInterface $user, callable $permissionsCheck): bool + public static function userHasPermissions(UserInterface $user, callable $permissionsCheck): bool { return $permissionsCheck($user->getPermissions()) || (new ArrayCollection($user->getUserGroups()))->exists( From 2730008db6fe8721d137ebc7ef4f8c5ba573086d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Sun, 14 Feb 2021 13:29:51 +0100 Subject: [PATCH 04/12] Fix mod owner permissions check for groups --- .../ModListFormDtoDataTransformer.php | 12 +++++++++- src/Form/ModList/ModListFormType.php | 22 ++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php index 43d6abfb..9db1db4a 100644 --- a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php +++ b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php @@ -8,11 +8,14 @@ use App\Entity\Mod\ModInterface; use App\Entity\ModList\ModList; use App\Entity\ModList\ModListInterface; +use App\Entity\Permissions\PermissionsInterface; use App\Entity\User\UserInterface; use App\Form\FormDtoInterface; use App\Form\ModList\Dto\ModListFormDto; use App\Form\RegisteredDataTransformerInterface; +use App\Security\Voter\AbstractVoter; use Ramsey\Uuid\Uuid; +use RestCord\Interfaces\Permissions; use Symfony\Component\Security\Core\Security; class ModListFormDtoDataTransformer implements RegisteredDataTransformerInterface @@ -40,8 +43,15 @@ public function transformToEntity(FormDtoInterface $formDto, EntityInterface $en /** @var UserInterface $currentUser */ $currentUser = $this->security->getUser(); + $canUpdate = AbstractVoter::userHasPermissions( + $currentUser, + static function (PermissionsInterface $permissions) { + return $permissions->getModListManagementPermissions()->canUpdate(); + } + ); + // If user has permissions set selected user as owner. Otherwise assign current user. - $owner = $currentUser->getPermissions()->getModListManagementPermissions()->canUpdate() ? $formDto->getOwner() : $currentUser; + $owner = $canUpdate ? $formDto->getOwner() : $currentUser; $entity->setName($formDto->getName()); $entity->setDescription($formDto->getDescription()); diff --git a/src/Form/ModList/ModListFormType.php b/src/Form/ModList/ModListFormType.php index d4c99fc4..93532336 100644 --- a/src/Form/ModList/ModListFormType.php +++ b/src/Form/ModList/ModListFormType.php @@ -6,9 +6,11 @@ use App\Entity\Mod\AbstractMod; use App\Entity\ModGroup\ModGroup; +use App\Entity\Permissions\PermissionsInterface; use App\Entity\User\User; use App\Entity\User\UserInterface; use App\Form\ModList\Dto\ModListFormDto; +use App\Security\Voter\AbstractVoter; use Doctrine\ORM\EntityRepository; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; @@ -99,8 +101,15 @@ protected function addOwnerType(FormBuilderInterface $builder): void /** @var UserInterface $currentUser */ $currentUser = $this->security->getUser(); - // Add owner list only if user has full permissions to edit Mod Lists - if (!$currentUser->getPermissions()->getModListManagementPermissions()->canUpdate()) { + $canUpdate = AbstractVoter::userHasPermissions( + $currentUser, + static function (PermissionsInterface $permissions) { + return $permissions->getModListManagementPermissions()->canUpdate(); + } + ); + + // User cannot change Mod List owner if he doesn't have full update permissions granted + if (!$canUpdate) { return; } @@ -136,7 +145,14 @@ protected function addApprovedType(FormBuilderInterface $builder): void /** @var UserInterface $currentUser */ $currentUser = $this->security->getUser(); - if (!$currentUser->getPermissions()->getModListManagementPermissions()->canApprove()) { + $canApprove = AbstractVoter::userHasPermissions( + $currentUser, + static function (PermissionsInterface $permissions) { + return $permissions->getModListManagementPermissions()->canApprove(); + } + ); + + if (!$canApprove) { return; } From 5d84e4aeb0360b2034d4b6554a7c29ba13167919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Sun, 14 Feb 2021 13:30:13 +0100 Subject: [PATCH 05/12] Fix mod change status permissions check for groups --- src/Form/Mod/ModFormType.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Form/Mod/ModFormType.php b/src/Form/Mod/ModFormType.php index b5d6534c..0b48da1b 100644 --- a/src/Form/Mod/ModFormType.php +++ b/src/Form/Mod/ModFormType.php @@ -7,8 +7,10 @@ use App\Entity\Mod\Enum\ModSourceEnum; use App\Entity\Mod\Enum\ModStatusEnum; use App\Entity\Mod\Enum\ModTypeEnum; +use App\Entity\Permissions\PermissionsInterface; use App\Entity\User\UserInterface; use App\Form\Mod\Dto\ModFormDto; +use App\Security\Voter\AbstractVoter; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\TextType; @@ -103,7 +105,14 @@ protected function addChangeStatusType(FormBuilderInterface $builder): void /** @var UserInterface $currentUser */ $currentUser = $this->security->getUser(); - if (!$currentUser->getPermissions()->getModManagementPermissions()->canChangeStatus()) { + $canChangeStatus = AbstractVoter::userHasPermissions( + $currentUser, + static function (PermissionsInterface $permissions) { + return $permissions->getModManagementPermissions()->canChangeStatus(); + } + ); + + if (!$canChangeStatus) { return; } From d2f4813b2e5048c7fb61cfc4b232ada7850fd1db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Fri, 12 Feb 2021 01:51:22 +0100 Subject: [PATCH 06/12] Discord authenticator refactor --- config/services.yaml | 5 +- src/Security/DiscordAuthenticator.php | 152 ++++++++------------------ 2 files changed, 49 insertions(+), 108 deletions(-) diff --git a/config/services.yaml b/config/services.yaml index f8e8deea..aa39ca59 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -51,8 +51,9 @@ services: arguments: $discordServerId: '%app.security.oauth.discord.server_id%' $botToken: '%app.security.oauth.discord.bot_token%' - $recruitRoleName: '%app.security.oauth.discord.recruit_role_name%' - $memberRoleName: '%app.security.oauth.discord.member_role_name%' + $requiredServerRoleNames: + - '%app.security.oauth.discord.recruit_role_name%' + - '%app.security.oauth.discord.member_role_name%' # Register Doctrine subscribers App\EventSubscriber\Doctrine\: diff --git a/src/Security/DiscordAuthenticator.php b/src/Security/DiscordAuthenticator.php index 42d27bda..d14ad58d 100644 --- a/src/Security/DiscordAuthenticator.php +++ b/src/Security/DiscordAuthenticator.php @@ -14,16 +14,13 @@ use App\Service\RestCord\DiscordClientFactory; use App\Service\RestCord\Enum\TokenTypeEnum; use Doctrine\ORM\EntityManagerInterface; +use GuzzleHttp\Command\Exception\CommandException; use KnpU\OAuth2ClientBundle\Client\ClientRegistry; use KnpU\OAuth2ClientBundle\Client\OAuth2ClientInterface; use KnpU\OAuth2ClientBundle\Security\Authenticator\SocialAuthenticator; use League\OAuth2\Client\Token\AccessToken; use Ramsey\Uuid\Uuid; -use RestCord\DiscordClient; -use RestCord\Model\Guild\Guild; -use RestCord\Model\Guild\GuildMember; use RestCord\Model\Permissions\Role; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\RouterInterface; @@ -57,41 +54,31 @@ class DiscordAuthenticator extends SocialAuthenticator /** @var DiscordClientFactory */ protected $discordClientFactory; - /** @var ParameterBagInterface */ - protected $parameterBag; - /** @var int */ protected $discordServerId; /** @var string */ protected $botToken; - /** @var string */ - protected $recruitRoleName; - - /** @var string */ - protected $memberRoleName; + /** @var string[] */ + protected $requiredServerRoleNames; public function __construct( ClientRegistry $clientRegistry, EntityManagerInterface $em, RouterInterface $router, DiscordClientFactory $discordClientFactory, - ParameterBagInterface $parameterBag, int $discordServerId, string $botToken, - string $recruitRoleName, - string $memberRoleName + array $requiredServerRoleNames ) { $this->clientRegistry = $clientRegistry; $this->em = $em; $this->router = $router; $this->discordClientFactory = $discordClientFactory; - $this->parameterBag = $parameterBag; $this->discordServerId = $discordServerId; $this->botToken = $botToken; - $this->recruitRoleName = $recruitRoleName; - $this->memberRoleName = $memberRoleName; + $this->requiredServerRoleNames = $requiredServerRoleNames; } /** @@ -118,24 +105,44 @@ public function getUser($credentials, UserProviderInterface $userProvider): User /** @var DiscordResourceOwner $discordResourceOwner */ $discordResourceOwner = $this->getDiscordClient()->fetchUserFromToken($credentials); - $userToken = $credentials->getToken(); - $discordClientAsUser = $this->discordClientFactory->createFromToken( - $userToken, - TokenTypeEnum::get(TokenTypeEnum::TOKEN_TYPE_OAUTH) - ); - $this->verifyDiscordMembership($discordClientAsUser, $discordResourceOwner); + $userId = (int) $discordResourceOwner->getId(); + $username = $discordResourceOwner->getUsername(); + $fullUsername = $discordResourceOwner->getUsername().'#'.$discordResourceOwner->getDiscriminator(); + $email = $discordResourceOwner->getEmail(); + $externalId = $discordResourceOwner->getId(); $discordClientAsBot = $this->discordClientFactory->createFromToken( $this->botToken, TokenTypeEnum::get(TokenTypeEnum::TOKEN_TYPE_BOT) ); - $this->verifyDiscordRoleAssigned($discordClientAsBot, $discordResourceOwner); - $fullUsername = $discordResourceOwner->getUsername().'#'.$discordResourceOwner->getDiscriminator(); - /** @var string $email */ - $email = $discordResourceOwner->getEmail(); - /** @var string $externalId */ - $externalId = $discordResourceOwner->getId(); + $server = $discordClientAsBot->guild->getGuild(['guild.id' => $this->discordServerId]); + + try { + $userAsServerMember = $discordClientAsBot->guild->getGuildMember([ + 'guild.id' => $server->id, + 'user.id' => $userId, + ]); + } catch (CommandException $ex) { + throw new UserNotADiscordMemberException( + sprintf('User "%s" is not a member of "%s" Discord server!', $username, $server->name) + ); + } + + // Collect IDs of required server roles by their names + // This is needed as user object contains only IDs of roles assigned + $serverRoleIds = []; + $serverRoles = $discordClientAsBot->guild->getGuildRoles(['guild.id' => $server->id]); + foreach ($this->requiredServerRoleNames as $requiredServerRoleName) { + $serverRoleIds[] = $this->getRoleByName($serverRoles, $requiredServerRoleName)->id; + } + + // Check if user has at least one role assigned + if (0 === \count(array_intersect($serverRoleIds, $userAsServerMember->roles))) { + throw new RequiredRolesNotAssignedException( + sprintf('User "%s" does not have required roles assigned!', $username) + ); + } try { /** @var User $user */ @@ -195,95 +202,28 @@ public function start(Request $request, AuthenticationException $authException = return new RedirectResponse($targetUrl); } - protected function verifyDiscordMembership(DiscordClient $discordClient, DiscordResourceOwner $discordResourceOwner): void - { - $username = $discordResourceOwner->getUsername(); - $guilds = $discordClient->user->getCurrentUserGuilds([]); - - if (!$this->isMemberOfDiscordServer($guilds, $this->discordServerId)) { - throw new UserNotADiscordMemberException( - sprintf('User "%s" is not a member of ArmaForces Discord server!', $username) - ); - } - } - - protected function verifyDiscordRoleAssigned(DiscordClient $discordClient, DiscordResourceOwner $discordResourceOwner): void + protected function getRoleByName(array $roles, string $roleName): Role { - $username = $discordResourceOwner->getUsername(); - $userId = (int) $discordResourceOwner->getId(); - $guildId = $this->discordServerId; - - $guildRoles = $discordClient->guild->getGuildRoles([ - 'guild.id' => $guildId, - ]); - - $userAsGuildMember = $discordClient->guild->getGuildMember([ - 'guild.id' => $guildId, - 'user.id' => $userId, - ]); - - $recruitRoleId = $this->getRoleIdByName($guildRoles, $this->recruitRoleName); - $memberRoleId = $this->getRoleIdByName($guildRoles, $this->memberRoleName); - - if ($this->hasServerRole($userAsGuildMember, $recruitRoleId) || $this->hasServerRole($userAsGuildMember, $memberRoleId)) { - return; - } - - throw new RequiredRolesNotAssignedException( - sprintf('User "%s" doesn\'t have required roles assigned!', $username) - ); - } - - protected function getDiscordClient(): OAuth2ClientInterface - { - return $this->clientRegistry->getClient(self::DISCORD_CLIENT_NAME); - } - - /** - * @param Role[] $roles - */ - protected function getRoleIdByName(array $roles, string $roleName): int - { - $rolesIdsFound = []; + $rolesFound = []; foreach ($roles as $role) { if ($role->name === $roleName) { - $rolesIdsFound[] = $role->id; + $rolesFound[] = $role; } } - switch (\count($rolesIdsFound)) { - case 1: - return $rolesIdsFound[0]; + switch (\count($rolesFound)) { case 0: - throw new RoleNotFoundException(sprintf('Role "%s" wasn\'t not found!', $roleName)); + throw new RoleNotFoundException(sprintf('Role "%s" was not found!', $roleName)); + case 1: + return $rolesFound[0]; default: throw new MultipleRolesFound(sprintf('Multiple roles found by given name "%s"!', $roleName)); } } - /** - * @param Guild[] $guilds - */ - protected function isMemberOfDiscordServer(array $guilds, int $guildId): bool - { - foreach ($guilds as $guild) { - if ($guild->id === $guildId) { - return true; - } - } - - return false; - } - - protected function hasServerRole(GuildMember $guildMember, int $roleId): bool + protected function getDiscordClient(): OAuth2ClientInterface { - foreach ($guildMember->roles as $role) { - if ($role === $roleId) { - return true; - } - } - - return false; + return $this->clientRegistry->getClient(self::DISCORD_CLIENT_NAME); } } From db2886c494010dc7aae488681300a6fc010a4864 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Thu, 18 Feb 2021 21:04:32 +0100 Subject: [PATCH 07/12] Update Symfony to 5.2 --- .env | 6 +- .env.test | 1 + bin/console | 7 +- composer.json | 100 +- composer.lock | 5000 +++++++++++++++++++------------- config/packages/doctrine.yaml | 2 +- config/packages/elao_enum.yaml | 9 +- config/packages/notifier.yaml | 16 + config/packages/routing.yaml | 4 + config/packages/security.yaml | 3 +- config/preload.php | 7 + phpunit.xml.dist | 1 + public/index.php | 13 +- src/Kernel.php | 54 +- symfony.lock | 274 +- 15 files changed, 3314 insertions(+), 2183 deletions(-) create mode 100644 config/packages/notifier.yaml create mode 100644 config/preload.php diff --git a/.env b/.env index e42dfac2..2d091f8c 100644 --- a/.env +++ b/.env @@ -32,8 +32,6 @@ APP_IMGPROXY_SALT='666f72636573' ###> symfony/framework-bundle ### APP_ENV=dev APP_SECRET=3c0e1589d36f2c28609e4ec5af60f545 -#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 -#TRUSTED_HOSTS='^(localhost|example\.com)$' ###< symfony/framework-bundle ### ###> symfony/mailer ### @@ -42,12 +40,10 @@ APP_SECRET=3c0e1589d36f2c28609e4ec5af60f545 ###> doctrine/doctrine-bundle ### # Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url -# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db" -# For a PostgreSQL database, use: "postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=11&charset=utf8" # IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml DATABASE_URL=mysql://root@mysql:3306/af_website?serverVersion=5.7 ###< doctrine/doctrine-bundle ### ###> nelmio/cors-bundle ### -CORS_ALLOW_ORIGIN=^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$ +CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$' ###< nelmio/cors-bundle ### diff --git a/.env.test b/.env.test index 4c350110..65ff6fea 100644 --- a/.env.test +++ b/.env.test @@ -3,6 +3,7 @@ KERNEL_CLASS='App\Kernel' APP_SECRET='$ecretf0rt3st' SYMFONY_DEPRECATIONS_HELPER=999999 PANTHER_APP_ENV=panther +PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots APP_SECURITY_OAUTH_DISCORD_SERVER_ID=1 diff --git a/bin/console b/bin/console index 5de0e1c5..8fe9d494 100755 --- a/bin/console +++ b/bin/console @@ -4,6 +4,7 @@ use App\Kernel; use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Component\Console\Input\ArgvInput; +use Symfony\Component\Dotenv\Dotenv; use Symfony\Component\ErrorHandler\Debug; if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { @@ -14,8 +15,8 @@ set_time_limit(0); require dirname(__DIR__).'/vendor/autoload.php'; -if (!class_exists(Application::class)) { - throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.'); +if (!class_exists(Application::class) || !class_exists(Dotenv::class)) { + throw new LogicException('You need to add "symfony/framework-bundle" and "symfony/dotenv" as Composer dependencies.'); } $input = new ArgvInput(); @@ -27,7 +28,7 @@ if ($input->hasParameterOption('--no-debug', true)) { putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); } -require dirname(__DIR__).'/config/bootstrap.php'; +(new Dotenv())->bootEnv(dirname(__DIR__).'/.env'); if ($_SERVER['APP_DEBUG']) { umask(0000); diff --git a/composer.json b/composer.json index 6e60fb55..67e45d1b 100644 --- a/composer.json +++ b/composer.json @@ -1,50 +1,55 @@ { "type": "project", "license": "proprietary", + "minimum-stability": "dev", + "prefer-stable": true, "require": { - "php": "^7.3", + "php": ">=7.2.5", "ext-ctype": "*", "ext-iconv": "*", "api-platform/api-pack": "^1.2", - "composer/package-versions-deprecated": "^1.10", + "composer/package-versions-deprecated": "1.11.99.1", "doctrine/annotations": "^1.0", - "doctrine/doctrine-bundle": "^2.1", + "doctrine/doctrine-bundle": "^2.2", "doctrine/doctrine-fixtures-bundle": "^3.4", - "doctrine/doctrine-migrations-bundle": "^2.0", - "doctrine/orm": "^2.7", + "doctrine/doctrine-migrations-bundle": "^3.0", + "doctrine/orm": "^2.8", "elao/enum": "^1.7", "erusev/parsedown": "^1.7", "friendsofsymfony/jsrouting-bundle": "^2.5", - "knpuniversity/oauth2-client-bundle": "^1.31", + "knpuniversity/oauth2-client-bundle": "^2.7", "league/csv": "^9.6", "phpdocumentor/reflection-docblock": "^5.2", "ramsey/uuid-doctrine": "^1.6", - "restcord/restcord": "^0.3.2", + "restcord/restcord": "^0.5.0", "sensio/framework-extra-bundle": "^5.1", "spatie/calendar-links": "^1.2", - "symfony/asset": "4.4.*", - "symfony/console": "4.4.*", - "symfony/dotenv": "4.4.*", - "symfony/expression-language": "4.4.*", - "symfony/finder": "4.4.*", + "symfony/asset": "5.2.*", + "symfony/console": "5.2.*", + "symfony/dotenv": "5.2.*", + "symfony/expression-language": "5.2.*", "symfony/flex": "^1.3.1", - "symfony/form": "4.4.*", - "symfony/framework-bundle": "4.4.*", - "symfony/http-client": "4.4.*", - "symfony/intl": "4.4.*", - "symfony/mailer": "4.4.*", + "symfony/form": "5.2.*", + "symfony/framework-bundle": "5.2.*", + "symfony/http-client": "5.2.*", + "symfony/intl": "5.2.*", + "symfony/mailer": "5.2.*", + "symfony/mime": "5.2.*", "symfony/monolog-bundle": "^3.1", - "symfony/process": "4.4.*", - "symfony/property-access": "4.4.*", - "symfony/property-info": "4.4.*", - "symfony/security-bundle": "4.4.*", - "symfony/serializer": "4.4.*", - "symfony/translation": "4.4.*", - "symfony/twig-bundle": "4.4.*", - "symfony/validator": "4.4.*", - "symfony/web-link": "4.4.*", + "symfony/notifier": "5.2.*", + "symfony/process": "5.2.*", + "symfony/property-access": "5.2.*", + "symfony/property-info": "5.2.*", + "symfony/proxy-manager-bridge": "5.2.*", + "symfony/security-bundle": "5.2.*", + "symfony/serializer": "5.2.*", + "symfony/string": "5.2.*", + "symfony/translation": "5.2.*", + "symfony/twig-bundle": "^5.2", + "symfony/validator": "5.2.*", + "symfony/web-link": "5.2.*", "symfony/webpack-encore-bundle": "^1.7", - "symfony/yaml": "4.4.*", + "symfony/yaml": "5.2.*", "twig/extra-bundle": "^2.12|^3.0", "twig/intl-extra": "^3.0", "twig/markdown-extra": "^3.0", @@ -55,18 +60,17 @@ "require-dev": { "dama/doctrine-test-bundle": "^6.5", "roave/security-advisories": "dev-master", - "symfony/browser-kit": "^4.4", - "symfony/css-selector": "^4.4", - "symfony/debug-bundle": "^4.4", + "symfony/browser-kit": "^5.2", + "symfony/css-selector": "^5.2", + "symfony/debug-bundle": "^5.2", "symfony/maker-bundle": "^1.0", - "symfony/monolog-bundle": "^3.0", - "symfony/phpunit-bridge": "^5.1", - "symfony/stopwatch": "^4.4", - "symfony/twig-bundle": "^4.4", - "symfony/var-dumper": "^4.4", - "symfony/web-profiler-bundle": "^4.4" + "symfony/phpunit-bridge": "^5.2", + "symfony/stopwatch": "^5.2", + "symfony/var-dumper": "^5.2", + "symfony/web-profiler-bundle": "^5.2" }, "config": { + "optimize-autoloader": true, "preferred-install": { "*": "dist" }, @@ -85,12 +89,9 @@ } }, "replace": { - "paragonie/random_compat": "2.*", "symfony/polyfill-ctype": "*", "symfony/polyfill-iconv": "*", - "symfony/polyfill-php71": "*", - "symfony/polyfill-php70": "*", - "symfony/polyfill-php56": "*" + "symfony/polyfill-php72": "*" }, "scripts": { "auto-scripts": { @@ -103,23 +104,6 @@ ], "post-update-cmd": [ "@auto-scripts" - ], - "cs": [ - "php vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix" - ], - "stan": [ - "php vendor/phpstan/phpstan/phpstan analyse --level=6 src --memory-limit=128M" - ], - "lint": [ - "php bin/console lint:twig templates/", - "php bin/console lint:yaml --parse-tags config/", - "php bin/console doctrine:schema:validate", - "php bin/console doctrine:mapping:info", - "php bin/console debug:translation --domain=messages pl --only-unused", - "php bin/console debug:translation --domain=messages pl --only-missing" - ], - "tests": [ - "php bin/phpunit --testdox" ] }, "conflict": { @@ -128,7 +112,7 @@ "extra": { "symfony": { "allow-contrib": false, - "require": "4.4.*" + "require": "5.2.*" } } } diff --git a/composer.lock b/composer.lock index 9a4580e3..a93ffb3d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,33 +4,30 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "878be0bf3d2d00955e228ed43a08fc38", + "content-hash": "491b6bf909e7c15d8deb5bacf56afcab", "packages": [ { "name": "api-platform/api-pack", - "version": "v1.2.2", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/api-platform/api-pack.git", - "reference": "ca7ca22f30bcfcdb2493ec9e8b7b5dba1271608a" + "reference": "0fb12343362f565b65eb374d3c49bec580ffcf8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/api-pack/zipball/ca7ca22f30bcfcdb2493ec9e8b7b5dba1271608a", - "reference": "ca7ca22f30bcfcdb2493ec9e8b7b5dba1271608a", + "url": "https://api.github.com/repos/api-platform/api-pack/zipball/0fb12343362f565b65eb374d3c49bec580ffcf8d", + "reference": "0fb12343362f565b65eb374d3c49bec580ffcf8d", "shasum": "" }, "require": { - "api-platform/core": "^2.1", - "doctrine/annotations": "^1.0", - "doctrine/doctrine-bundle": "^1.6 || ^2.0", - "doctrine/orm": "^2.4.5", - "nelmio/cors-bundle": "^1.5 || ^2.0", - "php": "^7.0", - "phpdocumentor/reflection-docblock": "^3.0 || ^4.0 || ^5.0", + "api-platform/core": "*", + "nelmio/cors-bundle": "*", "symfony/asset": "*", "symfony/expression-language": "*", + "symfony/orm-pack": "*", "symfony/security-bundle": "*", + "symfony/serializer-pack": "*", "symfony/twig-bundle": "*", "symfony/validator": "*" }, @@ -40,108 +37,104 @@ "MIT" ], "description": "A pack for API Platform", - "time": "2020-04-01T16:40:06+00:00" + "time": "2020-08-28T20:27:34+00:00" }, { "name": "api-platform/core", - "version": "v2.5.6", + "version": "v2.6.2", "source": { "type": "git", "url": "https://github.com/api-platform/core.git", - "reference": "d84282fd29cc16a4fac9be67fdd76ca247b94123" + "reference": "2edb3bf1fffe57f1d5e6833e25e7b0b54dd7a583" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/core/zipball/d84282fd29cc16a4fac9be67fdd76ca247b94123", - "reference": "d84282fd29cc16a4fac9be67fdd76ca247b94123", + "url": "https://api.github.com/repos/api-platform/core/zipball/2edb3bf1fffe57f1d5e6833e25e7b0b54dd7a583", + "reference": "2edb3bf1fffe57f1d5e6833e25e7b0b54dd7a583", "shasum": "" }, "require": { - "doctrine/inflector": "^1.0", + "doctrine/inflector": "^1.0 || ^2.0", "fig/link-util": "^1.0", "php": ">=7.1", "psr/cache": "^1.0", "psr/container": "^1.0", - "symfony/http-foundation": "^4.3.6 || ^5.0", - "symfony/http-kernel": "^4.3.7 || ^5.0", - "symfony/property-access": "^3.4 || ^4.0 || ^5.0", - "symfony/property-info": "^3.4 || ^4.0 || ^5.0", - "symfony/serializer": "^4.3 || ^5.0", - "symfony/web-link": "^4.1 || ^5.0", - "willdurand/negotiation": "^2.0.3" + "symfony/http-foundation": "^4.4 || ^5.1", + "symfony/http-kernel": "^4.4 || ^5.1", + "symfony/property-access": "^3.4.19 || ^4.4 || ^5.1", + "symfony/property-info": "^3.4 || ^4.4 || ^5.2.1", + "symfony/serializer": "^4.4 || ^5.1", + "symfony/web-link": "^4.4 || ^5.1", + "willdurand/negotiation": "^2.0.3 || ^3.0" }, "conflict": { "doctrine/common": "<2.7", - "doctrine/mongodb-odm": "<2.0" + "doctrine/mongodb-odm": "<2.0", + "doctrine/persistence": "<1.3" }, "require-dev": { "behat/behat": "^3.1", "behat/mink": "^1.7", - "behat/mink-browserkit-driver": "^1.3.1", - "behat/mink-extension": "^2.2", - "behat/symfony2-extension": "^2.1.1", - "behatch/contexts": "^3.1.0", "doctrine/annotations": "^1.7", - "doctrine/common": "^2.11", + "doctrine/common": "^2.11 || ^3.0", "doctrine/data-fixtures": "^1.2.2", - "doctrine/doctrine-bundle": "^1.8 || ^2.0", - "doctrine/doctrine-cache-bundle": "^1.3.5", + "doctrine/doctrine-bundle": "^1.12 || ^2.0", "doctrine/mongodb-odm": "^2.0", "doctrine/mongodb-odm-bundle": "^4.0", - "doctrine/orm": "^2.6.4", - "elasticsearch/elasticsearch": "^6.0", - "friendsofsymfony/user-bundle": "2.2.x-dev#157b53bd7d6c347148a90e723981a43f9c897bf5", - "guzzlehttp/guzzle": "^6.0", - "jangregor/phpstan-prophecy": "^0.6", + "doctrine/orm": "^2.6.4 || ^3.0", + "elasticsearch/elasticsearch": "^6.0 || ^7.0", + "friends-of-behat/mink-browserkit-driver": "^1.3.1", + "friends-of-behat/mink-extension": "^2.2", + "friends-of-behat/symfony-extension": "^2.1", + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "jangregor/phpstan-prophecy": "^0.8", "justinrainbow/json-schema": "^5.2.1", - "nelmio/api-doc-bundle": "^2.13.4", - "phpdocumentor/reflection-docblock": "^3.0 || ^4.0", - "phpdocumentor/type-resolver": "^0.3 || ^0.4", - "phpspec/prophecy": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0 || ^4.0 || ^5.1", + "phpdocumentor/type-resolver": "^0.3 || ^0.4 || ^1.4", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.4", + "phpstan/phpstan": "^0.12.65", "phpstan/phpstan-doctrine": "^0.12.7", "phpstan/phpstan-phpunit": "^0.12.4", "phpstan/phpstan-symfony": "^0.12.4", - "phpunit/phpunit": "^7.5.2 || ^8.0", "psr/log": "^1.0", - "ramsey/uuid": "^3.7", + "ramsey/uuid": "^3.7 || ^4.0", "ramsey/uuid-doctrine": "^1.4", - "sebastian/object-enumerator": "^3.0.3", - "symfony/asset": "^3.4 || ^4.0 || ^5.0", - "symfony/browser-kit": "^4.3 || ^5.0", - "symfony/cache": "^3.4 || ^4.0 || ^5.0", - "symfony/config": "^3.4 || ^4.0 || ^5.0", - "symfony/console": "^3.4 || ^4.0 || ^5.0", - "symfony/css-selector": "^3.4 || ^4.0 || ^5.0", - "symfony/debug": "^3.4 || ^4.0", - "symfony/dependency-injection": "^3.4 || ^4.0 || ^5.0", - "symfony/doctrine-bridge": "^3.4 || ^4.0 || ^5.0", - "symfony/dom-crawler": "^3.4 || ^4.0 || ^5.0", - "symfony/event-dispatcher": "^3.4 || ^4.0 || ^5.0", - "symfony/expression-language": "^3.4 || ^4.0 || ^5.0", - "symfony/finder": "^3.4 || ^4.0 || ^5.0", - "symfony/form": "^3.4 || ^4.0 || ^5.0", - "symfony/framework-bundle": "^4.3.2 || ^5.0", - "symfony/http-client": "^4.3 || ^5.0", + "soyuka/contexts": "^3.3.1", + "soyuka/stubs-mongodb": "^1.0", + "symfony/asset": "^3.4 || ^4.4 || ^5.1", + "symfony/browser-kit": "^4.4 || ^5.1", + "symfony/cache": "^3.4 || ^4.4 || ^5.1", + "symfony/config": "^3.4 || ^4.4 || ^5.1", + "symfony/console": "^3.4 || ^4.4 || ^5.1", + "symfony/css-selector": "^3.4 || ^4.4 || ^5.1", + "symfony/debug": "^3.4 || ^4.4 || ^5.1", + "symfony/dependency-injection": "^3.4 || ^4.4 || ^5.1", + "symfony/doctrine-bridge": "^3.4 || ^4.4 || ^5.1", + "symfony/dom-crawler": "^3.4 || ^4.4 || ^5.1", + "symfony/event-dispatcher": "^3.4 || ^4.4 || ^5.1", + "symfony/expression-language": "^3.4 || ^4.4 || ^5.1", + "symfony/finder": "^3.4 || ^4.4 || ^5.1", + "symfony/form": "^3.4 || ^4.4 || ^5.1", + "symfony/framework-bundle": "^4.4 || ^5.1", + "symfony/http-client": "^4.4 || ^5.1", "symfony/mercure-bundle": "*", - "symfony/messenger": "^4.3 || ^5.0", - "symfony/phpunit-bridge": "^4.3 || ^5.0", - "symfony/routing": "^3.4 || ^4.3 || ^5.0", - "symfony/security-bundle": "^3.4 || ^4.0 || ^5.0", - "symfony/security-core": "^4.3 || ^5.0", - "symfony/twig-bundle": "^3.4 || ^4.0 || ^5.0", - "symfony/validator": "^3.4 || ^4.0 || ^5.0", - "symfony/web-profiler-bundle": "^4.2 || ^5.0", - "symfony/yaml": "^3.4 || ^4.0 || ^5.0", - "teohhanhui/stubs-mongodb": "@dev", - "twig/twig": "^1.42.3 || ^2.12", - "webonyx/graphql-php": ">=0.13.1 <1.0" + "symfony/messenger": "^4.4 || ^5.1", + "symfony/phpunit-bridge": "^5.1.7", + "symfony/routing": "^3.4 || ^4.4 || ^5.1", + "symfony/security-bundle": "^3.4 || ^4.4 || ^5.1", + "symfony/security-core": "^4.4 || ^5.1", + "symfony/twig-bundle": "^3.4 || ^4.4 || ^5.1", + "symfony/validator": "^3.4 || ^4.4 || ^5.1", + "symfony/web-profiler-bundle": "^4.4 || ^5.1", + "symfony/yaml": "^3.4 || ^4.4 || ^5.1", + "twig/twig": "^1.42.3 || ^2.12 || ^3.0", + "webonyx/graphql-php": "^14.0" }, "suggest": { "doctrine/mongodb-odm-bundle": "To support MongoDB. Only versions 4.0 and later are supported.", "elasticsearch/elasticsearch": "To support Elasticsearch.", "guzzlehttp/guzzle": "To use the HTTP cache invalidation system.", + "ocramius/package-versions": "To display the API Platform's version in the debug bar.", "phpdocumentor/reflection-docblock": "To support extracting metadata from PHPDoc.", "psr/cache-implementation": "To use metadata caching.", "ramsey/uuid": "To support Ramsey's UUID identifiers.", @@ -150,16 +143,17 @@ "symfony/expression-language": "To use authorization features.", "symfony/security": "To use authorization features.", "symfony/twig-bundle": "To use the Swagger UI integration.", + "symfony/uid": "To support Symfony UUID/ULID identifiers.", "symfony/web-profiler-bundle": "To use the data collector.", "webonyx/graphql-php": "To support GraphQL." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5.x-dev" + "dev-main": "2.7.x-dev" }, "symfony": { - "require": "^3.4 || ^4.0 || ^5.0" + "require": "^3.4 || ^4.4 || ^5.1" } }, "autoload": { @@ -178,7 +172,7 @@ "homepage": "https://dunglas.fr" } ], - "description": "Build a fully-featured hypermedia or GraphQL API in minutes", + "description": "Build a fully-featured hypermedia or GraphQL API in minutes!", "homepage": "https://api-platform.com", "keywords": [ "Hydra", @@ -191,30 +185,36 @@ "rest", "swagger" ], - "time": "2020-05-28T15:07:16+00:00" + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/api-platform/core", + "type": "tidelift" + } + ], + "time": "2021-02-07T14:18:49+00:00" }, { "name": "brick/math", - "version": "0.9.1", + "version": "0.9.2", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "283a40c901101e66de7061bd359252c013dcc43c" + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/283a40c901101e66de7061bd359252c013dcc43c", - "reference": "283a40c901101e66de7061bd359252c013dcc43c", + "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", "shasum": "" }, "require": { "ext-json": "*", - "php": "^7.1|^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^7.5.15|^8.5", - "vimeo/psalm": "^3.5" + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", + "vimeo/psalm": "4.3.2" }, "type": "library", "autoload": { @@ -243,28 +243,28 @@ "type": "tidelift" } ], - "time": "2020-08-18T23:57:15+00:00" + "time": "2021-01-20T22:51:39+00:00" }, { "name": "composer/package-versions-deprecated", - "version": "1.10.99", + "version": "1.11.99.1", "source": { "type": "git", "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f" + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/dd51b4443d58b34b6d9344cf4c288e621c9a826f", - "reference": "dd51b4443d58b34b6d9344cf4c288e621c9a826f", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", "shasum": "" }, "require": { "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7" + "php": "^7 || ^8" }, "replace": { - "ocramius/package-versions": "1.10.99" + "ocramius/package-versions": "1.11.99" }, "require-dev": { "composer/composer": "^1.9.3 || ^2.0@dev", @@ -298,20 +298,34 @@ } ], "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "time": "2020-07-15T08:39:18+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-11T10:22:58+00:00" }, { "name": "doctrine/annotations", - "version": "1.10.4", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "bfe91e31984e2ba76df1c1339681770401ec262f" + "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/bfe91e31984e2ba76df1c1339681770401ec262f", - "reference": "bfe91e31984e2ba76df1c1339681770401ec262f", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad", + "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad", "shasum": "" }, "require": { @@ -321,13 +335,14 @@ }, "require-dev": { "doctrine/cache": "1.*", + "doctrine/coding-standard": "^6.0 || ^8.1", "phpstan/phpstan": "^0.12.20", "phpunit/phpunit": "^7.5 || ^9.1.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9.x-dev" + "dev-master": "1.11.x-dev" } }, "autoload": { @@ -362,13 +377,13 @@ } ], "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", "keywords": [ "annotations", "docblock", "parser" ], - "time": "2020-08-10T19:35:50+00:00" + "time": "2020-10-26T10:28:16+00:00" }, { "name": "doctrine/cache", @@ -450,6 +465,20 @@ "redis", "xcache" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], "time": "2020-07-07T18:54:01+00:00" }, { @@ -519,43 +548,31 @@ }, { "name": "doctrine/common", - "version": "2.13.3", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f" + "reference": "2afde5a9844126bc311cd5f548b5475e75f800d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f", - "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f", + "url": "https://api.github.com/repos/doctrine/common/zipball/2afde5a9844126bc311cd5f548b5475e75f800d3", + "reference": "2afde5a9844126bc311cd5f548b5475e75f800d3", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "doctrine/inflector": "^1.0", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^1.3.3", - "doctrine/reflection": "^1.0", + "doctrine/persistence": "^2.0", "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^1.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpunit/phpunit": "^7.0", + "doctrine/coding-standard": "^6.0 || ^8.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", "squizlabs/php_codesniffer": "^3.0", "symfony/phpunit-bridge": "^4.0.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.11.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common" @@ -591,27 +608,41 @@ "email": "ocramius@gmail.com" } ], - "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", "homepage": "https://www.doctrine-project.org/projects/common.html", "keywords": [ "common", "doctrine", "php" ], - "time": "2020-06-05T16:46:05+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "type": "tidelift" + } + ], + "time": "2021-01-20T19:58:05+00:00" }, { "name": "doctrine/data-fixtures", - "version": "1.4.4", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "16a03fadb5473f49aad70384002dfd5012fe680e" + "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/16a03fadb5473f49aad70384002dfd5012fe680e", - "reference": "16a03fadb5473f49aad70384002dfd5012fe680e", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/51d3d4880d28951fff42a635a2389f8c63baddc5", + "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5", "shasum": "" }, "require": { @@ -623,11 +654,12 @@ "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.2", "doctrine/dbal": "^2.5.4", "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", "doctrine/orm": "^2.7.0", - "phpunit/phpunit": "^7.0" + "ext-sqlite3": "*", + "phpunit/phpunit": "^8.0" }, "suggest": { "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", @@ -636,11 +668,6 @@ "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" @@ -675,36 +702,36 @@ "type": "tidelift" } ], - "time": "2020-09-01T07:13:28+00:00" + "time": "2021-01-23T10:20:43+00:00" }, { "name": "doctrine/dbal", - "version": "2.10.2", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8" + "reference": "adce7a954a1c2f14f85e94aed90c8489af204086" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/aab745e7b6b2de3b47019da81e7225e14dcfdac8", - "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/adce7a954a1c2f14f85e94aed90c8489af204086", + "reference": "adce7a954a1c2f14f85e94aed90c8489af204086", "shasum": "" }, "require": { "doctrine/cache": "^1.0", "doctrine/event-manager": "^1.0", "ext-pdo": "*", - "php": "^7.2" + "php": "^7.3 || ^8" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.1", "jetbrains/phpstorm-stubs": "^2019.1", - "nikic/php-parser": "^4.4", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^8.4.1", + "phpstan/phpstan": "^0.12.40", + "phpunit/phpunit": "^9.4", + "psalm/plugin-phpunit": "^0.10.0", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "^3.11" + "vimeo/psalm": "^3.17.2" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -715,8 +742,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.10.x-dev", - "dev-develop": "3.0.x-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { @@ -769,25 +795,39 @@ "sqlserver", "sqlsrv" ], - "time": "2020-04-20T17:19:26+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2020-11-14T20:26:58+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "2.1.0", + "version": "2.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "0fb513842c78b43770597ef3c487cdf79d944db3" + "reference": "015fdd490074d4daa891e2d1df998dc35ba54924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/0fb513842c78b43770597ef3c487cdf79d944db3", - "reference": "0fb513842c78b43770597ef3c487cdf79d944db3", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/015fdd490074d4daa891e2d1df998dc35ba54924", + "reference": "015fdd490074d4daa891e2d1df998dc35ba54924", "shasum": "" }, "require": { - "doctrine/dbal": "^2.9.0", - "doctrine/persistence": "^1.3.3", + "doctrine/dbal": "^2.9.0|^3.0", + "doctrine/persistence": "^1.3.3|^2.0", "doctrine/sql-formatter": "^1.0.1", "php": "^7.1 || ^8.0", "symfony/cache": "^4.3.3|^5.0", @@ -803,10 +843,10 @@ "twig/twig": "<1.34|>=2.0,<2.4" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.0", "doctrine/orm": "^2.6", - "ocramius/proxy-manager": "^2.1", - "phpunit/phpunit": "^7.5", + "friendsofphp/proxy-manager-lts": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3", "symfony/phpunit-bridge": "^4.2", "symfony/property-info": "^4.3.3|^5.0", "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0", @@ -814,7 +854,7 @@ "symfony/validator": "^3.4.30|^4.3.3|^5.0", "symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0", "symfony/yaml": "^3.4.30|^4.3.3|^5.0", - "twig/twig": "^1.34|^2.12" + "twig/twig": "^1.34|^2.12|^3.0" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -823,7 +863,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "2.3.x-dev" } }, "autoload": { @@ -861,7 +901,21 @@ "orm", "persistence" ], - "time": "2020-05-25T19:56:00+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", + "type": "tidelift" + } + ], + "time": "2021-01-19T20:29:53+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", @@ -942,35 +996,37 @@ }, { "name": "doctrine/doctrine-migrations-bundle", - "version": "2.2.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "5efa29df768abaafe29b34e73dac68efbedcaa4d" + "reference": "b8de89fe811e62f1dea8cf9aafda0ea45ca6f1f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/5efa29df768abaafe29b34e73dac68efbedcaa4d", - "reference": "5efa29df768abaafe29b34e73dac68efbedcaa4d", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/b8de89fe811e62f1dea8cf9aafda0ea45ca6f1f3", + "reference": "b8de89fe811e62f1dea8cf9aafda0ea45ca6f1f3", "shasum": "" }, "require": { "doctrine/doctrine-bundle": "~1.0|~2.0", - "doctrine/migrations": "^2.2", - "php": "^7.1", + "doctrine/migrations": "~3.0", + "php": "^7.2|^8.0", "symfony/framework-bundle": "~3.4|~4.0|~5.0" }, "require-dev": { - "doctrine/coding-standard": "^5.0", - "mikey179/vfsstream": "^1.6", - "phpstan/phpstan": "^0.9.2", - "phpstan/phpstan-strict-rules": "^0.9", - "phpunit/phpunit": "^6.4|^7.0" + "doctrine/coding-standard": "^8.0", + "doctrine/orm": "^2.6", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1006,7 +1062,21 @@ "migrations", "schema" ], - "time": "2020-06-25T19:36:08+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-migrations-bundle", + "type": "tidelift" + } + ], + "time": "2020-12-23T15:13:22+00:00" }, { "name": "doctrine/event-manager", @@ -1082,20 +1152,34 @@ "event system", "events" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], "time": "2020-05-29T18:28:51+00:00" }, { "name": "doctrine/inflector", - "version": "1.4.3", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c" + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c", - "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", "shasum": "" }, "require": { @@ -1116,7 +1200,6 @@ }, "autoload": { "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, @@ -1160,40 +1243,49 @@ "uppercase", "words" ], - "time": "2020-05-29T07:19:59+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2020-05-29T15:13:26+00:00" }, { "name": "doctrine/instantiator", - "version": "1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", - "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.0", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -1207,7 +1299,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -1216,7 +1308,21 @@ "constructor", "instantiate" ], - "time": "2020-05-29T17:27:14+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-11-10T18:47:58+00:00" }, { "name": "doctrine/lexer", @@ -1278,46 +1384,64 @@ "parser", "php" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], "time": "2020-05-25T17:44:05+00:00" }, { "name": "doctrine/migrations", - "version": "2.2.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "a3987131febeb0e9acb3c47ab0df0af004588934" + "reference": "260991be753a38aa25b6f2d13dbb7f113f8dbf8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/a3987131febeb0e9acb3c47ab0df0af004588934", - "reference": "a3987131febeb0e9acb3c47ab0df0af004588934", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/260991be753a38aa25b6f2d13dbb7f113f8dbf8f", + "reference": "260991be753a38aa25b6f2d13dbb7f113f8dbf8f", "shasum": "" }, "require": { - "doctrine/dbal": "^2.9", - "ocramius/package-versions": "^1.3", - "ocramius/proxy-manager": "^2.0.2", - "php": "^7.1", - "symfony/console": "^3.4||^4.0||^5.0", - "symfony/stopwatch": "^3.4||^4.0||^5.0" + "composer/package-versions-deprecated": "^1.8", + "doctrine/dbal": "^2.10", + "doctrine/event-manager": "^1.0", + "friendsofphp/proxy-manager-lts": "^1.0", + "php": "^7.2 || ^8.0", + "psr/log": "^1.1.3", + "symfony/console": "^3.4 || ^4.4.16 || ^5.0", + "symfony/stopwatch": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.0", "doctrine/orm": "^2.6", + "doctrine/persistence": "^1.3 || ^2.0", + "doctrine/sql-formatter": "^1.0", + "ergebnis/composer-normalize": "^2.9", "ext-pdo_sqlite": "*", - "jdorn/sql-formatter": "^1.1", - "mikey179/vfsstream": "^1.6", - "phpstan/phpstan": "^0.10", - "phpstan/phpstan-deprecation-rules": "^0.10", - "phpstan/phpstan-phpunit": "^0.10", - "phpstan/phpstan-strict-rules": "^0.10", - "phpunit/phpunit": "^7.0", - "symfony/process": "^3.4||^4.0||^5.0", - "symfony/yaml": "^3.4||^4.0||^5.0" + "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/process": "^3.4 || ^4.0 || ^5.0", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0" }, "suggest": { - "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", "symfony/yaml": "Allows the use of yaml for migration configuration files." }, "bin": [ @@ -1326,7 +1450,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "3.0.x-dev" + }, + "composer-normalize": { + "indent-size": 4, + "indent-style": "space" } }, "autoload": { @@ -1357,47 +1485,60 @@ "keywords": [ "database", "dbal", - "migrations", - "php" + "migrations" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations", + "type": "tidelift" + } ], - "time": "2019-12-04T06:09:14+00:00" + "time": "2021-02-07T21:16:17+00:00" }, { "name": "doctrine/orm", - "version": "v2.7.3", + "version": "2.8.2", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "d95e03ba660d50d785a9925f41927fef0ee553cf" + "reference": "ebae57eb9637acd8252b398df3121b120688ed5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/d95e03ba660d50d785a9925f41927fef0ee553cf", - "reference": "d95e03ba660d50d785a9925f41927fef0ee553cf", + "url": "https://api.github.com/repos/doctrine/orm/zipball/ebae57eb9637acd8252b398df3121b120688ed5c", + "reference": "ebae57eb9637acd8252b398df3121b120688ed5c", "shasum": "" }, "require": { - "doctrine/annotations": "^1.8", + "composer/package-versions-deprecated": "^1.8", + "doctrine/annotations": "^1.11.1", "doctrine/cache": "^1.9.1", "doctrine/collections": "^1.5", - "doctrine/common": "^2.11 || ^3.0", - "doctrine/dbal": "^2.9.3", + "doctrine/common": "^3.0.3", + "doctrine/dbal": "^2.10.0", "doctrine/event-manager": "^1.1", - "doctrine/inflector": "^1.0", + "doctrine/inflector": "^1.4|^2.0", "doctrine/instantiator": "^1.3", "doctrine/lexer": "^1.0", - "doctrine/persistence": "^1.3.3 || ^2.0", + "doctrine/persistence": "^2.0", "ext-pdo": "*", - "ocramius/package-versions": "^1.2", - "php": "^7.1", + "php": "^7.2|^8.0", "symfony/console": "^3.0|^4.0|^5.0" }, "require-dev": { - "doctrine/coding-standard": "^5.0", + "doctrine/coding-standard": "^8.0", "phpstan/phpstan": "^0.12.18", - "phpunit/phpunit": "^7.5", + "phpunit/phpunit": "^8.5|^9.4", "symfony/yaml": "^3.4|^4.0|^5.0", - "vimeo/psalm": "^3.11" + "vimeo/psalm": "4.1.1" }, "suggest": { "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" @@ -1448,20 +1589,20 @@ "database", "orm" ], - "time": "2020-05-26T16:03:49+00:00" + "time": "2021-02-16T22:10:18+00:00" }, { "name": "doctrine/persistence", - "version": "1.3.8", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288" + "reference": "9899c16934053880876b920a3b8b02ed2337ac1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288", - "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/9899c16934053880876b920a3b8b02ed2337ac1d", + "reference": "9899c16934053880876b920a3b8b02ed2337ac1d", "shasum": "" }, "require": { @@ -1469,24 +1610,20 @@ "doctrine/cache": "^1.0", "doctrine/collections": "^1.0", "doctrine/event-manager": "^1.0", - "doctrine/reflection": "^1.2", "php": "^7.1 || ^8.0" }, "conflict": { "doctrine/common": "<2.10@dev" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "composer/package-versions-deprecated": "^1.11", + "doctrine/coding-standard": "^6.0 || ^8.0", + "doctrine/common": "^3.0", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", "vimeo/psalm": "^3.11" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common", @@ -1532,119 +1669,40 @@ "orm", "persistence" ], - "time": "2020-06-20T12:56:16+00:00" + "time": "2020-10-24T22:13:54+00:00" }, { - "name": "doctrine/reflection", - "version": "1.2.1", + "name": "doctrine/sql-formatter", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/doctrine/reflection.git", - "reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79" + "url": "https://github.com/doctrine/sql-formatter.git", + "reference": "56070bebac6e77230ed7d306ad13528e60732871" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/55e71912dfcd824b2fdd16f2d9afe15684cfce79", - "reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/56070bebac6e77230ed7d306ad13528e60732871", + "reference": "56070bebac6e77230ed7d306ad13528e60732871", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", - "ext-tokenizer": "*", - "php": "^7.1" - }, - "conflict": { - "doctrine/common": "<2.9" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^5.0", - "doctrine/common": "^2.10", - "phpstan/phpstan": "^0.11.0", - "phpstan/phpstan-phpunit": "^0.11.0", - "phpunit/phpunit": "^7.0" + "bamarni/composer-bin-plugin": "^1.4" }, + "bin": [ + "bin/sql-formatter" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", - "homepage": "https://www.doctrine-project.org/projects/reflection.html", - "keywords": [ - "reflection", - "static" - ], - "abandoned": "roave/better-reflection", - "time": "2020-03-27T11:06:43+00:00" - }, - { - "name": "doctrine/sql-formatter", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "56070bebac6e77230ed7d306ad13528e60732871" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/56070bebac6e77230ed7d306ad13528e60732871", - "reference": "56070bebac6e77230ed7d306ad13528e60732871", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4" - }, - "bin": [ - "bin/sql-formatter" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\SqlFormatter\\": "src" + "Doctrine\\SqlFormatter\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1668,16 +1726,16 @@ }, { "name": "egulias/email-validator", - "version": "2.1.19", + "version": "2.1.25", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "840d5603eb84cc81a6a0382adac3293e57c1c64c" + "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/840d5603eb84cc81a6a0382adac3293e57c1c64c", - "reference": "840d5603eb84cc81a6a0382adac3293e57c1c64c", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", "shasum": "" }, "require": { @@ -1722,45 +1780,55 @@ "validation", "validator" ], - "time": "2020-08-08T21:28:19+00:00" + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2020-12-29T14:50:06+00:00" }, { "name": "elao/enum", - "version": "v1.9.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/Elao/PhpEnums.git", - "reference": "8a63c3528153824268b917c9ce2271bee58b9b7c" + "reference": "f7badd1fc3a7d9cf90849d79552d4e23896555a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Elao/PhpEnums/zipball/8a63c3528153824268b917c9ce2271bee58b9b7c", - "reference": "8a63c3528153824268b917c9ce2271bee58b9b7c", + "url": "https://api.github.com/repos/Elao/PhpEnums/zipball/f7badd1fc3a7d9cf90849d79552d4e23896555a0", + "reference": "f7badd1fc3a7d9cf90849d79552d4e23896555a0", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { "api-platform/core": "^2.5.1", "doctrine/data-fixtures": "^1.2", - "doctrine/doctrine-bundle": "^1.4|^2.0", + "doctrine/doctrine-bundle": "^1.12|^2.0", "doctrine/orm": "^2.4", "friendsofphp/php-cs-fixer": "^2.12.0", "nelmio/alice": "^3.0", "phpspec/prophecy": "~1.0", - "symfony/browser-kit": "^3.4|^4.4|^5.0", - "symfony/console": "^3.4|^4.4|^5.0", - "symfony/css-selector": "^3.4|^4.4|^5.0", - "symfony/form": "^3.4|^4.4|^5.0", - "symfony/framework-bundle": "^3.4|^4.4|^5.0", - "symfony/phpunit-bridge": "^3.4|^4.4|^5.0", - "symfony/serializer": "^3.4|^4.4|^5.0", - "symfony/translation": "^3.4|^4.4|^5.0", - "symfony/twig-bundle": "^3.4|^4.4|^5.0", - "symfony/validator": "^3.4|^4.4|^5.0", - "symfony/yaml": "^3.4|^4.4|^5.0" + "symfony/browser-kit": "^4.4|^5.1", + "symfony/console": "^4.4|^5.1", + "symfony/css-selector": "^4.4|^5.1", + "symfony/form": "^4.4|^5.1", + "symfony/framework-bundle": "^4.4|^5.1", + "symfony/phpunit-bridge": "^5.1", + "symfony/serializer": "^4.4|^5.1", + "symfony/translation": "^4.4|^5.1", + "symfony/twig-bundle": "^4.4|^5.1", + "symfony/validator": "^4.4|^5.1", + "symfony/yaml": "^4.4|^5.1", + "twig/twig": "^2.12|^3.0" }, + "bin": [ + "bin/elao-enum-dump-js" + ], "type": "library", "extra": { "branch-alias": { @@ -1797,7 +1865,13 @@ "enum", "symfony" ], - "time": "2020-05-18T13:06:23+00:00" + "funding": [ + { + "url": "https://github.com/ogizanagi", + "type": "github" + } + ], + "time": "2020-12-10T14:42:10+00:00" }, { "name": "erusev/parsedown", @@ -1847,16 +1921,16 @@ }, { "name": "fig/link-util", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/link-util.git", - "reference": "c038ee75ca13663ddc2d1f185fe6f7533c00832a" + "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/link-util/zipball/c038ee75ca13663ddc2d1f185fe6f7533c00832a", - "reference": "c038ee75ca13663ddc2d1f185fe6f7533c00832a", + "url": "https://api.github.com/repos/php-fig/link-util/zipball/5d7b8d04ed3393b4b59968ca1e906fb7186d81e8", + "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8", "shasum": "" }, "require": { @@ -1888,7 +1962,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common utility implementations for HTTP links", @@ -1900,24 +1974,102 @@ "psr-13", "rest" ], - "time": "2020-04-27T06:40:36+00:00" + "time": "2021-02-03T23:36:04+00:00" + }, + { + "name": "friendsofphp/proxy-manager-lts", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", + "reference": "121af47c9aee9c03031bdeca3fac0540f59aa5c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/121af47c9aee9c03031bdeca3fac0540f59aa5c3", + "reference": "121af47c9aee9c03031bdeca3fac0540f59aa5c3", + "shasum": "" + }, + "require": { + "laminas/laminas-code": "~3.4.1|^4.0", + "php": ">=7.1", + "symfony/filesystem": "^4.4.17|^5.0" + }, + "conflict": { + "laminas/laminas-stdlib": "<3.2.1", + "zendframework/zend-stdlib": "<3.2.1" + }, + "replace": { + "ocramius/proxy-manager": "^2.1" + }, + "require-dev": { + "ext-phar": "*", + "symfony/phpunit-bridge": "^5.2" + }, + "type": "library", + "extra": { + "thanks": { + "name": "ocramius/proxy-manager", + "url": "https://github.com/Ocramius/ProxyManager" + } + }, + "autoload": { + "psr-4": { + "ProxyManager\\": "src/ProxyManager" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.io/" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + } + ], + "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager", + "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts", + "keywords": [ + "aop", + "lazy loading", + "proxy", + "proxy pattern", + "service proxies" + ], + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", + "type": "tidelift" + } + ], + "time": "2021-01-14T21:52:44+00:00" }, { "name": "friendsofsymfony/jsrouting-bundle", - "version": "2.6.0", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/FriendsOfSymfony/FOSJsRoutingBundle.git", - "reference": "9deaf916760ce1d64cf46460473260b02751cee5" + "reference": "d56600542504148bf2faa2b6bd7571a6adf6799e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfSymfony/FOSJsRoutingBundle/zipball/9deaf916760ce1d64cf46460473260b02751cee5", - "reference": "9deaf916760ce1d64cf46460473260b02751cee5", + "url": "https://api.github.com/repos/FriendsOfSymfony/FOSJsRoutingBundle/zipball/d56600542504148bf2faa2b6bd7571a6adf6799e", + "reference": "d56600542504148bf2faa2b6bd7571a6adf6799e", "shasum": "" }, "require": { - "php": "^7.1", + "php": "^7.1|^8.0", "symfony/console": "~3.3|^4.0|^5.0", "symfony/framework-bundle": "~3.3|^4.0|^5.0", "symfony/serializer": "~3.3|^4.0|^5.0", @@ -1925,12 +2077,12 @@ }, "require-dev": { "symfony/expression-language": "~3.3|^4.0|^5.0", - "symfony/phpunit-bridge": "^3.3|^4.0" + "symfony/phpunit-bridge": "^5.1" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -1962,7 +2114,7 @@ "javascript", "routing" ], - "time": "2020-05-20T09:38:45+00:00" + "time": "2020-11-20T10:38:12+00:00" }, { "name": "guzzlehttp/command", @@ -2146,23 +2298,23 @@ }, { "name": "guzzlehttp/promises", - "version": "v1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "reference": "60d379c243457e073cff02bc323a2a86cb355631" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", + "reference": "60d379c243457e073cff02bc323a2a86cb355631", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": ">=5.5" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", "extra": { @@ -2193,20 +2345,20 @@ "keywords": [ "promise" ], - "time": "2016-12-20T10:07:11+00:00" + "time": "2020-09-30T07:37:28+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.6.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", "shasum": "" }, "require": { @@ -2219,15 +2371,15 @@ }, "require-dev": { "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" }, "suggest": { - "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -2264,37 +2416,37 @@ "uri", "url" ], - "time": "2019-07-01T23:21:34+00:00" + "time": "2020-09-30T07:37:11+00:00" }, { "name": "knpuniversity/oauth2-client-bundle", - "version": "v1.34.0", + "version": "v2.7.0", "source": { "type": "git", "url": "https://github.com/knpuniversity/oauth2-client-bundle.git", - "reference": "fd892fe2d4752116f09c85d1a3a34af91e1ddade" + "reference": "a6462eac7488435526052d4a06c83086566dbbb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/fd892fe2d4752116f09c85d1a3a34af91e1ddade", - "reference": "fd892fe2d4752116f09c85d1a3a34af91e1ddade", + "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/a6462eac7488435526052d4a06c83086566dbbb5", + "reference": "a6462eac7488435526052d4a06c83086566dbbb5", "shasum": "" }, "require": { "league/oauth2-client": "^1.0|^2.0", - "php": "^7.1.3", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/framework-bundle": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/routing": "^3.4|^4.0|^5.0" + "php": ">=7.1.3", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/routing": "^4.4|^5.0" }, "require-dev": { "league/oauth2-facebook": "^1.1|^2.0", "phpspec/prophecy": "^1.8", "phpstan/phpstan": "^0.11.16", - "symfony/phpunit-bridge": "^4.3|^5.0", - "symfony/security-guard": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/phpunit-bridge": "^4.4|^5.0", + "symfony/security-guard": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "symfony/security-guard": "For integration with Symfony's Guard Security layer" @@ -2312,35 +2464,34 @@ "authors": [ { "name": "Ryan Weaver", - "email": "ryan@knpuniversity.com" + "email": "ryan@symfonycasts.com" } ], "description": "Integration with league/oauth2-client to provide services", - "homepage": "http://knpuniversity.com", + "homepage": "https://symfonycasts.com", "keywords": [ "oauth", "oauth2" ], - "time": "2020-03-19T10:26:26+00:00" + "time": "2020-12-07T01:10:11+00:00" }, { "name": "laminas/laminas-code", - "version": "3.4.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-code.git", - "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766" + "reference": "28a6d70ea8b8bca687d7163300e611ae33baf82a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1cb8f203389ab1482bf89c0e70a04849bacd7766", - "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/28a6d70ea8b8bca687d7163300e611ae33baf82a", + "reference": "28a6d70ea8b8bca687d7163300e611ae33baf82a", "shasum": "" }, "require": { - "laminas/laminas-eventmanager": "^2.6 || ^3.0", - "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^7.1" + "laminas/laminas-eventmanager": "^3.3", + "php": "^7.4 || ~8.0.0" }, "conflict": { "phpspec/prophecy": "<1.9.0" @@ -2349,24 +2500,20 @@ "zendframework/zend-code": "self.version" }, "require-dev": { - "doctrine/annotations": "^1.7", + "doctrine/annotations": "^1.10.4", "ext-phar": "*", - "laminas/laminas-coding-standard": "^1.0", - "laminas/laminas-stdlib": "^2.7 || ^3.0", - "phpunit/phpunit": "^7.5.16 || ^8.4" + "laminas/laminas-coding-standard": "^2.1.4", + "laminas/laminas-stdlib": "^3.3.0", + "phpunit/phpunit": "^9.4.2", + "psalm/plugin-phpunit": "^0.14.0", + "vimeo/psalm": "^4.3.1" }, "suggest": { "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "laminas/laminas-stdlib": "Laminas\\Stdlib component" + "laminas/laminas-stdlib": "Laminas\\Stdlib component", + "laminas/laminas-zendframework-bridge": "A bridge with Zend Framework" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4.x-dev", - "dev-develop": "3.5.x-dev", - "dev-dev-4.0": "4.0.x-dev" - } - }, "autoload": { "psr-4": { "Laminas\\Code\\": "src/" @@ -2380,47 +2527,54 @@ "homepage": "https://laminas.dev", "keywords": [ "code", - "laminas" + "laminas", + "laminasframework" + ], + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } ], - "time": "2019-12-31T16:28:24+00:00" + "time": "2020-12-30T16:16:14+00:00" }, { "name": "laminas/laminas-eventmanager", - "version": "3.2.1", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-eventmanager.git", - "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748" + "reference": "1940ccf30e058b2fd66f5a9d696f1b5e0027b082" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", - "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", + "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/1940ccf30e058b2fd66f5a9d696f1b5e0027b082", + "reference": "1940ccf30e058b2fd66f5a9d696f1b5e0027b082", "shasum": "" }, "require": { "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0" + "php": "^7.3 || ^8.0" }, "replace": { - "zendframework/zend-eventmanager": "self.version" + "zendframework/zend-eventmanager": "^3.2.1" }, "require-dev": { - "athletic/athletic": "^0.1", - "container-interop/container-interop": "^1.1.0", + "container-interop/container-interop": "^1.1", "laminas/laminas-coding-standard": "~1.0.0", "laminas/laminas-stdlib": "^2.7.3 || ^3.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + "phpbench/phpbench": "^0.17.1", + "phpunit/phpunit": "^8.5.8" }, "suggest": { - "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "container-interop/container-interop": "^1.1, to use the lazy listeners feature", "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev", - "dev-develop": "3.3-dev" + "dev-master": "3.3.x-dev", + "dev-develop": "3.4.x-dev" } }, "autoload": { @@ -2440,35 +2594,37 @@ "events", "laminas" ], - "time": "2019-12-31T16:44:52+00:00" + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-08-25T11:10:44+00:00" }, { "name": "laminas/laminas-zendframework-bridge", - "version": "1.0.4", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-zendframework-bridge.git", - "reference": "fcd87520e4943d968557803919523772475e8ea3" + "reference": "6ede70583e101030bcace4dcddd648f760ddf642" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/fcd87520e4943d968557803919523772475e8ea3", - "reference": "fcd87520e4943d968557803919523772475e8ea3", + "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^5.6 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1", + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev", - "dev-develop": "1.1.x-dev" - }, "laminas": { "module": "Laminas\\ZendFrameworkBridge" } @@ -2492,34 +2648,41 @@ "laminas", "zf" ], - "time": "2020-05-20T16:45:56+00:00" + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-09-14T14:23:00+00:00" }, { "name": "league/csv", - "version": "9.6.0", + "version": "9.6.2", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "7351a74625601914409b42b32cabb91a93773b7b" + "reference": "f28da6e483bf979bac10e2add384c90ae9983e4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/7351a74625601914409b42b32cabb91a93773b7b", - "reference": "7351a74625601914409b42b32cabb91a93773b7b", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/f28da6e483bf979bac10e2add384c90ae9983e4e", + "reference": "f28da6e483bf979bac10e2add384c90ae9983e4e", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "^7.2.5" + "php": ">=7.2.5" }, "require-dev": { "ext-curl": "*", + "ext-dom": "*", "friendsofphp/php-cs-fixer": "^2.16", "phpstan/phpstan": "^0.12.0", "phpstan/phpstan-phpunit": "^0.12.0", "phpstan/phpstan-strict-rules": "^0.12.0", - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^8.5" }, "suggest": { "ext-dom": "Required to use the XMLConverter and or the HTMLConverter classes", @@ -2563,33 +2726,38 @@ "transform", "write" ], - "time": "2020-03-17T15:15:35+00:00" + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2020-12-10T19:40:30+00:00" }, { "name": "league/oauth2-client", - "version": "2.5.0", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth2-client.git", - "reference": "d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb" + "reference": "badb01e62383430706433191b82506b6df24ad98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb", - "reference": "d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb", + "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/badb01e62383430706433191b82506b6df24ad98", + "reference": "badb01e62383430706433191b82506b6df24ad98", "shasum": "" }, "require": { "guzzlehttp/guzzle": "^6.0 || ^7.0", - "paragonie/random_compat": "^1|^2|^9.99", - "php": "^5.6|^7.0" + "paragonie/random_compat": "^1 || ^2 || ^9.99", + "php": "^5.6 || ^7.0 || ^8.0" }, "require-dev": { - "eloquent/liberator": "^2.0", - "eloquent/phony-phpunit": "^1.0|^3.0", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "phpunit/phpunit": "^5.7|^6.0", - "squizlabs/php_codesniffer": "^2.3|^3.0" + "mockery/mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpunit/phpunit": "^5.7 || ^6.0 || ^9.3", + "squizlabs/php_codesniffer": "^2.3 || ^3.0" }, "type": "library", "extra": { @@ -2630,25 +2798,25 @@ "oauth2", "single sign on" ], - "time": "2020-07-18T17:54:32+00:00" + "time": "2020-10-28T02:03:40+00:00" }, { "name": "monolog/monolog", - "version": "1.25.5", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0" + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1817faadd1846cd08be9a49e905dc68823bc38c0", - "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" + "php": ">=7.2", + "psr/log": "^1.0.1" }, "provide": { "psr/log-implementation": "1.0.0" @@ -2656,32 +2824,37 @@ "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", + "elasticsearch/elasticsearch": "^7", + "graylog2/gelf-php": "^1.4.2", + "mongodb/mongodb": "^1.8", "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", - "php-parallel-lint/php-parallel-lint": "^1.0", - "phpunit/phpunit": "~4.5", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", + "phpspec/prophecy": "^1.6.1", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "^8.5", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", + "ruflin/elastica": ">=0.90 <7.0.1", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -2697,17 +2870,27 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "homepage": "https://github.com/Seldaek/monolog", "keywords": [ "log", "logging", "psr-3" ], - "time": "2020-07-23T08:35:51+00:00" + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2020-12-14T13:15:25+00:00" }, { "name": "nelmio/cors-bundle", @@ -2813,79 +2996,49 @@ "time": "2019-08-15T19:41:25+00:00" }, { - "name": "ocramius/proxy-manager", - "version": "2.8.0", + "name": "paragonie/random_compat", + "version": "v9.99.100", "source": { "type": "git", - "url": "https://github.com/Ocramius/ProxyManager.git", - "reference": "ac1dd414fd114cfc0da9930e0ab46063c2f5e62a" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/ac1dd414fd114cfc0da9930e0ab46063c2f5e62a", - "reference": "ac1dd414fd114cfc0da9930e0ab46063c2f5e62a", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", "shasum": "" }, "require": { - "laminas/laminas-code": "^3.4.1", - "ocramius/package-versions": "^1.8.0", - "php": "~7.4.1", - "webimpress/safe-writer": "^2.0.1" - }, - "conflict": { - "doctrine/annotations": "<1.6.1", - "laminas/laminas-stdlib": "<3.2.1", - "zendframework/zend-stdlib": "<3.2.1" + "php": ">= 7" }, "require-dev": { - "doctrine/coding-standard": "^6.0.0", - "ext-phar": "*", - "infection/infection": "^0.16.2", - "nikic/php-parser": "^4.4.0", - "phpbench/phpbench": "^0.17.0", - "phpunit/phpunit": "^9.1.1", - "slevomat/coding-standard": "^5.0.4", - "squizlabs/php_codesniffer": "^3.5.4", - "vimeo/psalm": "^3.11.1" + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" }, "suggest": { - "laminas/laminas-json": "To have the JsonRpc adapter (Remote Object feature)", - "laminas/laminas-soap": "To have the Soap adapter (Remote Object feature)", - "laminas/laminas-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)", - "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects" + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "ProxyManager\\": "src/ProxyManager" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.io/" + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" } ], - "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", - "homepage": "https://github.com/Ocramius/ProxyManager", + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "keywords": [ - "aop", - "lazy loading", - "proxy", - "proxy pattern", - "service proxies" + "csprng", + "polyfill", + "pseudorandom", + "random" ], - "time": "2020-04-13T14:42:16+00:00" + "time": "2020-10-15T08:29:30+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -2938,16 +3091,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.2.0", + "version": "5.2.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "3170448f5769fe19f456173d833734e0ff1b84df" + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/3170448f5769fe19f456173d833734e0ff1b84df", - "reference": "3170448f5769fe19f456173d833734e0ff1b84df", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "shasum": "" }, "require": { @@ -2986,20 +3139,20 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-07-20T20:05:34+00:00" + "time": "2020-09-03T19:13:55+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "e878a14a65245fbe78f8080eba03b47c3b705651" + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651", - "reference": "e878a14a65245fbe78f8080eba03b47c3b705651", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { @@ -3031,7 +3184,7 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-06-27T10:12:23+00:00" + "time": "2020-09-17T18:55:26+00:00" }, { "name": "psr/cache", @@ -3128,6 +3281,52 @@ ], "time": "2017-02-14T16:28:37+00:00" }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "time": "2019-01-08T18:20:26+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -3316,16 +3515,16 @@ }, { "name": "ramsey/collection", - "version": "1.1.1", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1" + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/24d93aefb2cd786b7edd9f45b554aea20b28b9b1", - "reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1", + "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", "shasum": "" }, "require": { @@ -3335,19 +3534,19 @@ "captainhook/captainhook": "^5.3", "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "ergebnis/composer-normalize": "^2.6", - "fzaninotto/faker": "^1.5", + "fakerphp/faker": "^1.5", "hamcrest/hamcrest-php": "^2", - "jangregor/phpstan-prophecy": "^0.6", + "jangregor/phpstan-prophecy": "^0.8", "mockery/mockery": "^1.3", "phpstan/extension-installer": "^1", "phpstan/phpstan": "^0.12.32", "phpstan/phpstan-mockery": "^0.12.5", "phpstan/phpstan-phpunit": "^0.12.11", - "phpunit/phpunit": "^8.5", + "phpunit/phpunit": "^8.5 || ^9", "psy/psysh": "^0.10.4", "slevomat/coding-standard": "^6.3", "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^3.12.2" + "vimeo/psalm": "^4.4" }, "type": "library", "autoload": { @@ -3379,9 +3578,13 @@ { "url": "https://github.com/ramsey", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" } ], - "time": "2020-09-10T20:58:17+00:00" + "time": "2021-01-21T17:40:04+00:00" }, { "name": "ramsey/uuid", @@ -3518,30 +3721,30 @@ }, { "name": "restcord/restcord", - "version": "0.3.2", + "version": "0.5.0", "source": { "type": "git", "url": "https://github.com/restcord/restcord.git", - "reference": "2e332138428a91fbcc70630c324aa5a449c11b01" + "reference": "e79722fc74b15773a8b58237f678d004038f3529" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/restcord/restcord/zipball/2e332138428a91fbcc70630c324aa5a449c11b01", - "reference": "2e332138428a91fbcc70630c324aa5a449c11b01", + "url": "https://api.github.com/repos/restcord/restcord/zipball/e79722fc74b15773a8b58237f678d004038f3529", + "reference": "e79722fc74b15773a8b58237f678d004038f3529", "shasum": "" }, "require": { "guzzlehttp/guzzle": "^6.3", "guzzlehttp/guzzle-services": "^1.0", - "monolog/monolog": "^1.22", + "monolog/monolog": "^1.22|^2.0", "netresearch/jsonmapper": "^1.4", - "php": "^5.6|^7.0", - "symfony/options-resolver": "^2.6|^3.0|^4.0" + "php": "^7.3|^8.0", + "symfony/options-resolver": "^3.4|^4.4|^5.1" }, "require-dev": { "beberlei/assert": "^2.7", - "gossi/php-code-generator": "^0.4.1", - "phpunit/phpunit": "^6.0|^5.0", + "gossi/php-code-generator": "^0.5.0", + "phpunit/phpunit": "^8.0|^9.0", "symfony/console": "^2.6|^3.0|^4.0", "symfony/process": "^2.6|^3.0|^4.0", "symfony/var-dumper": "^2.6|^3.0|^4.0", @@ -3564,44 +3767,47 @@ } ], "description": "REST Library for the Discord API", - "time": "2019-08-08T23:33:12+00:00" + "time": "2020-12-24T04:37:14+00:00" }, { "name": "sensio/framework-extra-bundle", - "version": "v5.5.6", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "b49f079d8a87a6e6dd434062085ff5a132af466b" + "reference": "430d14c01836b77c28092883d195a43ce413ee32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/b49f079d8a87a6e6dd434062085ff5a132af466b", - "reference": "b49f079d8a87a6e6dd434062085ff5a132af466b", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/430d14c01836b77c28092883d195a43ce413ee32", + "reference": "430d14c01836b77c28092883d195a43ce413ee32", "shasum": "" }, "require": { "doctrine/annotations": "^1.0", - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", "symfony/framework-bundle": "^4.4|^5.0", "symfony/http-kernel": "^4.4|^5.0" }, "conflict": { - "doctrine/doctrine-cache-bundle": "<1.3.1" + "doctrine/doctrine-cache-bundle": "<1.3.1", + "doctrine/persistence": "<1.3" }, "require-dev": { + "doctrine/dbal": "^2.10|^3.0", "doctrine/doctrine-bundle": "^1.11|^2.0", "doctrine/orm": "^2.5", "nyholm/psr7": "^1.1", "symfony/browser-kit": "^4.4|^5.0", + "symfony/doctrine-bridge": "^4.4|^5.0", "symfony/dom-crawler": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/finder": "^4.4|^5.0", "symfony/monolog-bridge": "^4.0|^5.0", "symfony/monolog-bundle": "^3.2", - "symfony/phpunit-bridge": "^4.3.5|^5.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9", "symfony/psr-http-message-bridge": "^1.1", "symfony/security-bundle": "^4.4|^5.0", "symfony/twig-bundle": "^4.4|^5.0", @@ -3611,7 +3817,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "5.5.x-dev" + "dev-master": "5.6.x-dev" } }, "autoload": { @@ -3637,20 +3843,20 @@ "annotations", "controllers" ], - "time": "2020-06-15T20:28:02+00:00" + "time": "2020-08-25T19:10:18+00:00" }, { "name": "spatie/calendar-links", - "version": "1.4.0", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/spatie/calendar-links.git", - "reference": "3d407ed4a1546ddc212ea05c047e51a2b8116d60" + "reference": "c705b17416e2cf0b673a742f9fb6716a111ed984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/calendar-links/zipball/3d407ed4a1546ddc212ea05c047e51a2b8116d60", - "reference": "3d407ed4a1546ddc212ea05c047e51a2b8116d60", + "url": "https://api.github.com/repos/spatie/calendar-links/zipball/c705b17416e2cf0b673a742f9fb6716a111ed984", + "reference": "c705b17416e2cf0b673a742f9fb6716a111ed984", "shasum": "" }, "require": { @@ -3684,38 +3890,40 @@ "calendar-links", "spatie" ], - "time": "2020-05-02T10:41:03+00:00" + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + } + ], + "time": "2020-09-01T09:49:15+00:00" }, { "name": "symfony/asset", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "384d36d53771955d432f0e0bf6470f1c9e6a716f" + "reference": "54a42aa50f9359d1184bf7e954521b45ca3d5828" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/384d36d53771955d432f0e0bf6470f1c9e6a716f", - "reference": "384d36d53771955d432f0e0bf6470f1c9e6a716f", + "url": "https://api.github.com/repos/symfony/asset/zipball/54a42aa50f9359d1184bf7e954521b45ca3d5828", + "reference": "54a42aa50f9359d1184bf7e954521b45ca3d5828", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5" }, "require-dev": { - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/http-kernel": "^3.4|^4.0|^5.0" + "symfony/http-client": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0" }, "suggest": { "symfony/http-foundation": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Asset\\": "" @@ -3738,35 +3946,50 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Asset Component", + "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", - "time": "2020-07-05T09:39:30+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/cache", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "b9ae3539a0ecd7bcffe426f7a91401489c069834" + "reference": "d6aed6c1bbf6f59e521f46437475a0ff4878d388" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/b9ae3539a0ecd7bcffe426f7a91401489c069834", - "reference": "b9ae3539a0ecd7bcffe426f7a91401489c069834", + "url": "https://api.github.com/repos/symfony/cache/zipball/d6aed6c1bbf6f59e521f46437475a0ff4878d388", + "reference": "d6aed6c1bbf6f59e521f46437475a0ff4878d388", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/cache": "~1.0", - "psr/log": "~1.0", + "psr/log": "^1.1", "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.2|^5.0" + "symfony/var-exporter": "^4.4|^5.0" }, "conflict": { - "doctrine/dbal": "<2.5", - "symfony/dependency-injection": "<3.4", + "doctrine/dbal": "<2.10", + "symfony/dependency-injection": "<4.4", "symfony/http-kernel": "<4.4", "symfony/var-dumper": "<4.4" }, @@ -3778,19 +4001,17 @@ "require-dev": { "cache/integration-tests": "dev-master", "doctrine/cache": "^1.6", - "doctrine/dbal": "^2.5|^3.0", + "doctrine/dbal": "^2.10|^3.0", "predis/predis": "^1.1", "psr/simple-cache": "^1.0", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", "symfony/var-dumper": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Cache\\": "" @@ -3813,26 +4034,40 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Cache component with PSR-6, PSR-16, and tags", + "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", "homepage": "https://symfony.com", "keywords": [ "caching", "psr6" ], - "time": "2020-07-23T11:31:42+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T11:24:50+00:00" }, { "name": "symfony/cache-contracts", - "version": "v2.1.3", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "9771a09d2e6b84ecb8c9f0a7dbc72ee92aeba009" + "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/9771a09d2e6b84ecb8c9f0a7dbc72ee92aeba009", - "reference": "9771a09d2e6b84ecb8c9f0a7dbc72ee92aeba009", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/8034ca0b61d4dd967f3698aaa1da2507b631d0cb", + "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb", "shasum": "" }, "require": { @@ -3845,7 +4080,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" }, "thanks": { "name": "symfony/contracts", @@ -3881,46 +4116,57 @@ "interoperability", "standards" ], - "time": "2020-07-06T13:23:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" }, { "name": "symfony/config", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "b1d8f0d9341ea1d378b8b043ba90739f37c49d36" + "reference": "50e0e1314a3b2609d32b6a5a0d0fb5342494c4ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/b1d8f0d9341ea1d378b8b043ba90739f37c49d36", - "reference": "b1d8f0d9341ea1d378b8b043ba90739f37c49d36", + "url": "https://api.github.com/repos/symfony/config/zipball/50e0e1314a3b2609d32b6a5a0d0fb5342494c4ab", + "reference": "50e0e1314a3b2609d32b6a5a0d0fb5342494c4ab", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/finder": "<3.4" + "symfony/finder": "<4.4" }, "require-dev": { - "symfony/event-dispatcher": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/messenger": "^4.1|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Config\\": "" @@ -3943,48 +4189,64 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Config Component", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", - "time": "2020-07-15T08:27:46+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/console", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02" + "reference": "89d4b176d12a2946a1ae4e34906a025b7b6b135a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/55d07021da933dd0d633ffdab6f45d5b230c7e02", - "reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02", + "url": "https://api.github.com/repos/symfony/console/zipball/89d4b176d12a2946a1ae4e34906a025b7b6b135a", + "reference": "89d4b176d12a2946a1ae4e34906a025b7b6b135a", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2" + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" }, "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", "symfony/lock": "<4.4", - "symfony/process": "<3.3" + "symfony/process": "<4.4" }, "provide": { "psr/log-implementation": "1.0" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/event-dispatcher": "^4.3", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", "symfony/lock": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.3|^5.0" + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -3993,11 +4255,6 @@ "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -4020,44 +4277,77 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", - "time": "2020-07-06T13:18:39+00:00" + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" }, { - "name": "symfony/debug", - "version": "v4.4.11", + "name": "symfony/dependency-injection", + "version": "v5.2.3", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "47aa9064d75db36389692dd4d39895a0820f00f2" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "62f72187be689540385dce6c68a5d4c16f034139" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/47aa9064d75db36389692dd4d39895a0820f00f2", - "reference": "47aa9064d75db36389692dd4d39895a0820f00f2", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/62f72187be689540385dce6c68a5d4c16f034139", + "reference": "62f72187be689540385dce6c68a5d4c16f034139", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/log": "~1.0", - "symfony/polyfill-php80": "^1.15" + "php": ">=7.2.5", + "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/http-kernel": "<3.4" + "symfony/config": "<5.1", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0" }, "require-dev": { - "symfony/http-kernel": "^3.4|^4.0|^5.0" + "symfony/config": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Debug\\": "" + "Symfony\\Component\\DependencyInjection\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -4077,63 +4367,54 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Debug Component", + "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", - "time": "2020-07-23T08:31:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T12:56:27+00:00" }, { - "name": "symfony/dependency-injection", - "version": "v4.4.11", + "name": "symfony/deprecation-contracts", + "version": "v2.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "f33a28edd42708ed579377391b3a556bcd6a626d" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f33a28edd42708ed579377391b3a556bcd6a626d", - "reference": "f33a28edd42708ed579377391b3a556bcd6a626d", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/container": "^1.0", - "symfony/service-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<4.3|>=5.0", - "symfony/finder": "<3.4", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0" - }, - "require-dev": { - "symfony/config": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "function.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4142,72 +4423,93 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony DependencyInjection Component", + "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", - "time": "2020-07-23T08:31:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" }, { "name": "symfony/doctrine-bridge", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "b6062a870a07e2abf1bb4acd9fb56deaf5c307bf" + "reference": "c348e596f49df406a7c0a51443864038b3137cac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/b6062a870a07e2abf1bb4acd9fb56deaf5c307bf", - "reference": "b6062a870a07e2abf1bb4acd9fb56deaf5c307bf", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/c348e596f49df406a7c0a51443864038b3137cac", + "reference": "c348e596f49df406a7c0a51443864038b3137cac", "shasum": "" }, "require": { "doctrine/event-manager": "~1.0", - "doctrine/persistence": "^1.3|^2", - "php": ">=7.1.3", + "doctrine/persistence": "^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/dependency-injection": "<3.4", - "symfony/form": "<4.4", - "symfony/http-kernel": "<4.3.7", - "symfony/messenger": "<4.3", - "symfony/security-core": "<4.4", - "symfony/validator": "<4.4.2|<5.0.2,>=5.0" + "doctrine/dbal": "<2.10", + "phpunit/phpunit": "<5.4.3", + "symfony/dependency-injection": "<4.4", + "symfony/form": "<5.1", + "symfony/http-kernel": "<5", + "symfony/messenger": "<4.4", + "symfony/property-info": "<5", + "symfony/security-bundle": "<5", + "symfony/security-core": "<5", + "symfony/validator": "<5.2" }, "require-dev": { "composer/package-versions-deprecated": "^1.8", - "doctrine/annotations": "~1.7", + "doctrine/annotations": "^1.10.4", "doctrine/cache": "~1.6", "doctrine/collections": "~1.0", "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "~2.4", - "doctrine/orm": "^2.6.3", - "doctrine/reflection": "~1.0", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/form": "^4.4|^5.0", - "symfony/http-kernel": "^4.3.7", + "doctrine/dbal": "^2.10|^3.0", + "doctrine/orm": "^2.7.3", + "symfony/cache": "^5.1", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/doctrine-messenger": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/form": "^5.1.3", + "symfony/http-kernel": "^5.0", "symfony/messenger": "^4.4|^5.0", - "symfony/property-access": "^3.4|^4.0|^5.0", - "symfony/property-info": "^3.4|^4.0|^5.0", - "symfony/proxy-manager-bridge": "^3.4|^4.0|^5.0", - "symfony/security-core": "^4.4|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0", - "symfony/translation": "^3.4|^4.0|^5.0", - "symfony/validator": "^4.4.2|^5.0.2", - "symfony/var-dumper": "^3.4|^4.0|^5.0" + "symfony/property-access": "^4.4|^5.0", + "symfony/property-info": "^5.0", + "symfony/proxy-manager-bridge": "^4.4|^5.0", + "symfony/security-core": "^5.0", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/uid": "^5.1", + "symfony/validator": "^5.2", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "doctrine/data-fixtures": "", @@ -4218,11 +4520,6 @@ "symfony/validator": "" }, "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\Doctrine\\": "" @@ -4245,36 +4542,46 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Doctrine Bridge", + "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", - "time": "2020-07-23T16:49:41+00:00" - }, - { - "name": "symfony/dotenv", - "version": "v4.4.11", - "source": { - "type": "git", - "url": "https://github.com/symfony/dotenv.git", - "reference": "a9eb95c87c2965d0e7dfda9c5e87e4fb590d1f4e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/a9eb95c87c2965d0e7dfda9c5e87e4fb590d1f4e", - "reference": "a9eb95c87c2965d0e7dfda9c5e87e4fb590d1f4e", - "shasum": "" - }, - "require": { - "php": ">=7.1.3" - }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-03T04:42:09+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "783f12027c6b40ab0e93d6136d9f642d1d67cd6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/783f12027c6b40ab0e93d6136d9f642d1d67cd6b", + "reference": "783f12027c6b40ab0e93d6136d9f642d1d67cd6b", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1" + }, "require-dev": { - "symfony/process": "^3.4.2|^4.0|^5.0" + "symfony/process": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Dotenv\\": "" @@ -4304,39 +4611,48 @@ "env", "environment" ], - "time": "2020-07-05T09:39:30+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "66f151360550ec2b3273b3746febb12e6ba0348b" + "reference": "48f18b3609e120ea66d59142c23dc53e9562c26d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/66f151360550ec2b3273b3746febb12e6ba0348b", - "reference": "66f151360550ec2b3273b3746febb12e6ba0348b", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/48f18b3609e120ea66d59142c23dc53e9562c26d", + "reference": "48f18b3609e120ea66d59142c23dc53e9562c26d", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/log": "~1.0", - "symfony/debug": "^4.4.5", + "php": ">=7.2.5", + "psr/log": "^1.0", "symfony/polyfill-php80": "^1.15", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { + "symfony/deprecation-contracts": "^2.1", "symfony/http-kernel": "^4.4|^5.0", "symfony/serializer": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\ErrorHandler\\": "" @@ -4359,44 +4675,60 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony ErrorHandler Component", + "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", - "time": "2020-07-23T08:35:20+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.17", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f029d6f21eac61ab23198e7aca40e7638e8c8924" + "reference": "4f9760f8074978ad82e2ce854dff79a71fe45367" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f029d6f21eac61ab23198e7aca40e7638e8c8924", - "reference": "f029d6f21eac61ab23198e7aca40e7638e8c8924", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4f9760f8074978ad82e2ce854dff79a71fe45367", + "reference": "4f9760f8074978ad82e2ce854dff79a71fe45367", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher-contracts": "^2", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/dependency-injection": "<3.4" + "symfony/dependency-injection": "<4.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" + "symfony/event-dispatcher-implementation": "2.0" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/error-handler": "~3.4|~4.4", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" + "symfony/stopwatch": "^4.4|^5.0" }, "suggest": { "symfony/dependency-injection": "", @@ -4425,7 +4757,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony EventDispatcher Component", + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "funding": [ { @@ -4441,33 +4773,33 @@ "type": "tidelift" } ], - "time": "2020-10-31T22:44:29+00:00" + "time": "2021-01-27T10:36:42+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.9", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" + "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ba7d54483095a198fa51781bc608d17e84dffa2", + "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" }, "suggest": { - "psr/event-dispatcher": "", "symfony/event-dispatcher-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.2-dev" }, "thanks": { "name": "symfony/contracts", @@ -4503,33 +4835,43 @@ "interoperability", "standards" ], - "time": "2020-07-06T13:19:58+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" }, { "name": "symfony/expression-language", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "89f0e2c82d8c12975180f993383decbb810ad73e" + "reference": "7bf30a4e29887110f8bd1882ccc82ee63c8a5133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/89f0e2c82d8c12975180f993383decbb810ad73e", - "reference": "89f0e2c82d8c12975180f993383decbb810ad73e", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/7bf30a4e29887110f8bd1882ccc82ee63c8a5133", + "reference": "7bf30a4e29887110f8bd1882ccc82ee63c8a5133", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/cache": "^3.4|^4.0|^5.0", + "php": ">=7.2.5", + "symfony/cache": "^4.4|^5.0", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\ExpressionLanguage\\": "" @@ -4552,26 +4894,40 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony ExpressionLanguage Component", + "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", - "time": "2020-05-20T08:37:50+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/filesystem", - "version": "v4.4.17", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "17b83e36a911aefa2cfe04bbf6328ec4c040c1b2" + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/17b83e36a911aefa2cfe04bbf6328ec4c040c1b2", - "reference": "17b83e36a911aefa2cfe04bbf6328ec4c040c1b2", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/262d033b57c73e8b59cd6e68a45c528318b15038", + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8" }, "type": "library", @@ -4597,7 +4953,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Filesystem Component", + "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "funding": [ { @@ -4613,24 +4969,24 @@ "type": "tidelift" } ], - "time": "2020-11-11T22:20:15+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/finder", - "version": "v4.4.17", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9f1d1d883b79a91ef320c0c6e803494e042ef36e" + "reference": "4adc8d172d602008c204c2e16956f99257248e03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9f1d1d883b79a91ef320c0c6e803494e042ef36e", - "reference": "9f1d1d883b79a91ef320c0c6e803494e042ef36e", + "url": "https://api.github.com/repos/symfony/finder/zipball/4adc8d172d602008c204c2e16956f99257248e03", + "reference": "4adc8d172d602008c204c2e16956f99257248e03", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5" }, "type": "library", "autoload": { @@ -4655,7 +5011,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "funding": [ { @@ -4671,20 +5027,20 @@ "type": "tidelift" } ], - "time": "2020-11-17T19:45:34+00:00" + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/flex", - "version": "v1.9.1", + "version": "v1.12.2", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "0e752e47d8382361ca2d7ef016f549828185ddb6" + "reference": "e472606b4b3173564f0edbca8f5d32b52fc4f2c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/0e752e47d8382361ca2d7ef016f549828185ddb6", - "reference": "0e752e47d8382361ca2d7ef016f549828185ddb6", + "url": "https://api.github.com/repos/symfony/flex/zipball/e472606b4b3173564f0edbca8f5d32b52fc4f2c9", + "reference": "e472606b4b3173564f0edbca8f5d32b52fc4f2c9", "shasum": "" }, "require": { @@ -4694,13 +5050,14 @@ "require-dev": { "composer/composer": "^1.0.2|^2.0", "symfony/dotenv": "^4.4|^5.0", + "symfony/filesystem": "^4.4|^5.0", "symfony/phpunit-bridge": "^4.4|^5.0", "symfony/process": "^3.4|^4.4|^5.0" }, "type": "composer-plugin", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-main": "1.12-dev" }, "class": "Symfony\\Flex\\Flex" }, @@ -4720,55 +5077,73 @@ } ], "description": "Composer plugin for Symfony", - "time": "2020-07-14T15:18:33+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-16T14:05:05+00:00" }, { "name": "symfony/form", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "f1cfe946a59e6139184c161dd64d6357dd59f2b0" + "reference": "4f3069be5fe46e72f3ec233fc61ac2828ea5b301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/f1cfe946a59e6139184c161dd64d6357dd59f2b0", - "reference": "f1cfe946a59e6139184c161dd64d6357dd59f2b0", + "url": "https://api.github.com/repos/symfony/form/zipball/4f3069be5fe46e72f3ec233fc61ac2828ea5b301", + "reference": "4f3069be5fe46e72f3ec233fc61ac2828ea5b301", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/event-dispatcher": "^4.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher": "^4.4|^5.0", "symfony/intl": "^4.4|^5.0", - "symfony/options-resolver": "~4.3|^5.0", + "symfony/options-resolver": "^5.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^3.4.40|^4.4.8|^5.0.8", + "symfony/polyfill-php80": "^1.15", + "symfony/property-access": "^5.0.8", "symfony/service-contracts": "^1.1|^2" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<4.3", - "symfony/dependency-injection": "<3.4", - "symfony/doctrine-bridge": "<3.4", - "symfony/framework-bundle": "<3.4", + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<4.4", + "symfony/doctrine-bridge": "<4.4", + "symfony/error-handler": "<4.4.5", + "symfony/framework-bundle": "<4.4", "symfony/http-kernel": "<4.4", - "symfony/intl": "<4.3", - "symfony/translation": "<4.2", - "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0" + "symfony/intl": "<4.4", + "symfony/translation": "<4.4", + "symfony/translation-contracts": "<1.1.7", + "symfony/twig-bridge": "<4.4" }, "require-dev": { "doctrine/collections": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^4.3|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/security-csrf": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2|^5.0", - "symfony/validator": "^3.4.31|^4.3.4|^5.0", - "symfony/var-dumper": "^4.3|^5.0" + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/security-csrf": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^4.4.17|^5.1.9", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "symfony/security-csrf": "For protecting forms against CSRF attacks.", @@ -4776,11 +5151,6 @@ "symfony/validator": "For form validation." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Form\\": "" @@ -4803,98 +5173,117 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Form Component", + "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", - "time": "2020-07-12T10:34:29+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/framework-bundle", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "c698b86e95124eeab7bc84fc5f95e808e8bd6640" + "reference": "ff455b2afd3f98237d4131ffebe190e59cc0f011" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/c698b86e95124eeab7bc84fc5f95e808e8bd6640", - "reference": "c698b86e95124eeab7bc84fc5f95e808e8bd6640", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/ff455b2afd3f98237d4131ffebe190e59cc0f011", + "reference": "ff455b2afd3f98237d4131ffebe190e59cc0f011", "shasum": "" }, "require": { "ext-xml": "*", - "php": ">=7.1.3", - "symfony/cache": "^4.4|^5.0", - "symfony/config": "^4.3.4|^5.0", - "symfony/dependency-injection": "^4.4.1|^5.0.1", + "php": ">=7.2.5", + "symfony/cache": "^5.2", + "symfony/config": "^5.0", + "symfony/dependency-injection": "^5.2", + "symfony/deprecation-contracts": "^2.1", "symfony/error-handler": "^4.4.1|^5.0.1", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/http-kernel": "^4.4", + "symfony/event-dispatcher": "^5.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-foundation": "^5.2.1", + "symfony/http-kernel": "^5.2.1", "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^4.4|^5.0" + "symfony/polyfill-php80": "^1.15", + "symfony/routing": "^5.2" }, "conflict": { "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<3.0", - "phpdocumentor/type-resolver": "<0.2.1", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/asset": "<3.4", - "symfony/browser-kit": "<4.3", - "symfony/console": "<4.3", - "symfony/dom-crawler": "<4.3", - "symfony/dotenv": "<4.3.6", - "symfony/form": "<4.3.5", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "phpunit/phpunit": "<5.4.3", + "symfony/asset": "<5.1", + "symfony/browser-kit": "<4.4", + "symfony/console": "<5.2", + "symfony/dom-crawler": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/form": "<5.2", "symfony/http-client": "<4.4", "symfony/lock": "<4.4", - "symfony/mailer": "<4.4", + "symfony/mailer": "<5.2", "symfony/messenger": "<4.4", "symfony/mime": "<4.4", - "symfony/property-info": "<3.4", - "symfony/security-bundle": "<4.4", - "symfony/serializer": "<4.4", - "symfony/stopwatch": "<3.4", - "symfony/translation": "<4.4", - "symfony/twig-bridge": "<4.1.1", + "symfony/property-access": "<5.2", + "symfony/property-info": "<4.4", + "symfony/serializer": "<5.2", + "symfony/stopwatch": "<4.4", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<4.4", "symfony/twig-bundle": "<4.4", - "symfony/validator": "<4.4", + "symfony/validator": "<5.2", "symfony/web-profiler-bundle": "<4.4", - "symfony/workflow": "<4.3.6" + "symfony/workflow": "<5.2" }, "require-dev": { - "doctrine/annotations": "~1.7", + "doctrine/annotations": "^1.10.4", "doctrine/cache": "~1.0", + "doctrine/persistence": "^1.3|^2.0", "paragonie/sodium_compat": "^1.8", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/asset": "^3.4|^4.0|^5.0", - "symfony/browser-kit": "^4.3|^5.0", - "symfony/console": "^4.3.4|^5.0", - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/dom-crawler": "^4.3|^5.0", - "symfony/dotenv": "^4.3.6|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/form": "^4.3.5|^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^5.1", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/console": "^5.2", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/dotenv": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/form": "^5.2", "symfony/http-client": "^4.4|^5.0", "symfony/lock": "^4.4|^5.0", - "symfony/mailer": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", + "symfony/mailer": "^5.2", + "symfony/messenger": "^5.2", "symfony/mime": "^4.4|^5.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/property-info": "^3.4|^4.0|^5.0", - "symfony/security-csrf": "^3.4|^4.0|^5.0", - "symfony/security-http": "^3.4|^4.0|^5.0", - "symfony/serializer": "^4.4|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0", - "symfony/templating": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/property-info": "^4.4|^5.0", + "symfony/security-bundle": "^5.1", + "symfony/security-csrf": "^4.4|^5.0", + "symfony/security-http": "^4.4|^5.0", + "symfony/serializer": "^5.2", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/string": "^5.0", + "symfony/translation": "^5.0", "symfony/twig-bundle": "^4.4|^5.0", - "symfony/validator": "^4.4|^5.0", + "symfony/validator": "^5.2", "symfony/web-link": "^4.4|^5.0", - "symfony/workflow": "^4.3.6|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0", - "twig/twig": "^1.41|^2.10|^3.0" + "symfony/workflow": "^5.2", + "symfony/yaml": "^4.4|^5.0", + "twig/twig": "^2.10|^3.0" }, "suggest": { "ext-apcu": "For best performance of the system caches", @@ -4907,11 +5296,6 @@ "symfony/yaml": "For using the debug:config and lint:yaml commands" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\FrameworkBundle\\": "" @@ -4934,29 +5318,44 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony FrameworkBundle", + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", - "time": "2020-07-23T08:31:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T11:19:04+00:00" }, { "name": "symfony/http-client", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "c71448cfd772db2334e30f993c9011e14677f604" + "reference": "22cb1a7844fff206cc5186409776e78865405ea5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/c71448cfd772db2334e30f993c9011e14677f604", - "reference": "c71448cfd772db2334e30f993c9011e14677f604", + "url": "https://api.github.com/repos/symfony/http-client/zipball/22cb1a7844fff206cc5186409776e78865405ea5", + "reference": "22cb1a7844fff206cc5186409776e78865405ea5", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/log": "^1.0", - "symfony/http-client-contracts": "^1.1.8|^2", + "symfony/http-client-contracts": "^2.2", "symfony/polyfill-php73": "^1.11", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.0|^2" }, "provide": { @@ -4966,20 +5365,20 @@ "symfony/http-client-implementation": "1.1" }, "require-dev": { - "guzzlehttp/promises": "^1.3.1", + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4", "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^4.3|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/process": "^4.2|^5.0" + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4.13|^5.1.5", + "symfony/process": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\HttpClient\\": "" @@ -5002,22 +5401,36 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpClient component", + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", - "time": "2020-07-04T09:37:14+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v2.1.3", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "cd88921e9add61f2064c9c6b30de4f589db42962" + "reference": "41db680a15018f9c1d4b23516059633ce280ca33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/cd88921e9add61f2064c9c6b30de4f589db42962", - "reference": "cd88921e9add61f2064c9c6b30de4f589db42962", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33", + "reference": "41db680a15018f9c1d4b23516059633ce280ca33", "shasum": "" }, "require": { @@ -5028,8 +5441,9 @@ }, "type": "library", "extra": { + "branch-version": "2.3", "branch-alias": { - "dev-master": "2.1-dev" + "dev-main": "2.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -5065,37 +5479,52 @@ "interoperability", "standards" ], - "time": "2020-07-06T13:23:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-14T17:08:19+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.0.7", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "26fb006a2c7b6cdd23d52157b05f8414ffa417b6" + "reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/26fb006a2c7b6cdd23d52157b05f8414ffa417b6", - "reference": "26fb006a2c7b6cdd23d52157b05f8414ffa417b6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/20c554c0f03f7cde5ce230ed248470cccbc34c36", + "reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/mime": "^4.4|^5.0", - "symfony/polyfill-mbstring": "~1.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.15" }, "require-dev": { "predis/predis": "~1.0", - "symfony/expression-language": "^4.4|^5.0" + "symfony/cache": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } + "suggest": { + "symfony/mime": "To use the file extension guesser" }, + "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" @@ -5118,29 +5547,44 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpFoundation Component", + "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", - "time": "2020-03-30T14:14:32+00:00" - }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-03T04:42:09+00:00" + }, { "name": "symfony/http-kernel", - "version": "v4.4.14", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e3eac6daeb0c65965a6201bd2de9564a802fe0a9" + "reference": "89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e3eac6daeb0c65965a6201bd2de9564a802fe0a9", - "reference": "e3eac6daeb0c65965a6201bd2de9564a802fe0a9", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05", + "reference": "89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/log": "~1.0", - "symfony/error-handler": "^4.4", - "symfony/event-dispatcher": "^4.4", + "symfony/deprecation-contracts": "^2.1", + "symfony/error-handler": "^4.4|^5.0", + "symfony/event-dispatcher": "^5.0", "symfony/http-client-contracts": "^1.1|^2", "symfony/http-foundation": "^4.4|^5.0", "symfony/polyfill-ctype": "^1.8", @@ -5148,33 +5592,40 @@ "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/browser-kit": "<4.3", - "symfony/config": "<3.4", - "symfony/console": ">=5", - "symfony/dependency-injection": "<4.3", - "symfony/translation": "<4.2", - "twig/twig": "<1.34|<2.4,>=2" + "symfony/browser-kit": "<4.4", + "symfony/cache": "<5.0", + "symfony/config": "<5.0", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<5.1.8", + "symfony/doctrine-bridge": "<5.0", + "symfony/form": "<5.0", + "symfony/http-client": "<5.0", + "symfony/mailer": "<5.0", + "symfony/messenger": "<5.0", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<5.0", + "symfony/validator": "<5.0", + "twig/twig": "<2.13" }, "provide": { "psr/log-implementation": "1.0" }, "require-dev": { "psr/cache": "~1.0", - "symfony/browser-kit": "^4.3|^5.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0", - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^4.3|^5.0", - "symfony/dom-crawler": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/routing": "^3.4|^4.0|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0", - "symfony/templating": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2|^5.0", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/config": "^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dependency-injection": "^5.1.8", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/routing": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^1.34|^2.4|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "symfony/browser-kit": "", @@ -5183,11 +5634,6 @@ "symfony/dependency-injection": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\HttpKernel\\": "" @@ -5210,7 +5656,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpKernel Component", + "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "funding": [ { @@ -5226,96 +5672,34 @@ "type": "tidelift" } ], - "time": "2020-09-27T04:25:44+00:00" - }, - { - "name": "symfony/inflector", - "version": "v5.0.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/inflector.git", - "reference": "70c25c66427e2bb6ba0827d668366d60b0a90cbf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/inflector/zipball/70c25c66427e2bb6ba0827d668366d60b0a90cbf", - "reference": "70c25c66427e2bb6ba0827d668366d60b0a90cbf", - "shasum": "" - }, - "require": { - "php": "^7.2.5", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Inflector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Inflector Component", - "homepage": "https://symfony.com", - "keywords": [ - "inflection", - "pluralize", - "singularize", - "string", - "symfony", - "words" - ], - "time": "2020-03-27T16:56:45+00:00" + "time": "2021-02-03T04:51:58+00:00" }, { "name": "symfony/intl", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "312aa3f77e739cf4b8e12f1d54d9c88e09638dc7" + "reference": "930f17689729cc47d2ce18be21ed403bcbeeb6a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/312aa3f77e739cf4b8e12f1d54d9c88e09638dc7", - "reference": "312aa3f77e739cf4b8e12f1d54d9c88e09638dc7", + "url": "https://api.github.com/repos/symfony/intl/zipball/930f17689729cc47d2ce18be21ed403bcbeeb6a9", + "reference": "930f17689729cc47d2ce18be21ed403bcbeeb6a9", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/polyfill-intl-icu": "~1.0" + "php": ">=7.2.5", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "require-dev": { - "symfony/filesystem": "^3.4|^4.0|^5.0" + "symfony/filesystem": "^4.4|^5.0" }, "suggest": { "ext-intl": "to use the component with locales other than \"en\"" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Intl\\": "" @@ -5349,7 +5733,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A PHP replacement layer for the C intl extension that includes additional data from the ICU library.", + "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library", "homepage": "https://symfony.com", "keywords": [ "i18n", @@ -5359,33 +5743,47 @@ "l10n", "localization" ], - "time": "2020-06-18T17:51:13+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/mailer", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "bbc265cc1072afb336d36503a618e3c8fb5a3810" + "reference": "1efa11a8f59b8ba706aa6ee112c4675dce4dccf6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/bbc265cc1072afb336d36503a618e3c8fb5a3810", - "reference": "bbc265cc1072afb336d36503a618e3c8fb5a3810", + "url": "https://api.github.com/repos/symfony/mailer/zipball/1efa11a8f59b8ba706aa6ee112c4675dce4dccf6", + "reference": "1efa11a8f59b8ba706aa6ee112c4675dce4dccf6", "shasum": "" }, "require": { "egulias/email-validator": "^2.1.10", - "php": ">=7.1.3", + "php": ">=7.2.5", "psr/log": "~1.0", - "symfony/event-dispatcher": "^4.3", - "symfony/mime": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/mime": "^5.2", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2" }, "conflict": { - "symfony/http-kernel": "<4.4", - "symfony/sendgrid-mailer": "<4.4" + "symfony/http-kernel": "<4.4" }, "require-dev": { "symfony/amazon-mailer": "^4.4|^5.0", @@ -5393,16 +5791,12 @@ "symfony/http-client-contracts": "^1.1|^2", "symfony/mailchimp-mailer": "^4.4|^5.0", "symfony/mailgun-mailer": "^4.4|^5.0", + "symfony/mailjet-mailer": "^4.4|^5.0", "symfony/messenger": "^4.4|^5.0", "symfony/postmark-mailer": "^4.4|^5.0", "symfony/sendgrid-mailer": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Mailer\\": "" @@ -5425,42 +5819,59 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Mailer Component", + "description": "Helps sending emails", "homepage": "https://symfony.com", - "time": "2020-07-15T06:28:59+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-02T06:10:15+00:00" }, { "name": "symfony/mime", - "version": "v5.0.7", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "481b7d6da88922fb1e0d86a943987722b08f3955" + "reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/481b7d6da88922fb1e0d86a943987722b08f3955", - "reference": "481b7d6da88922fb1e0d86a943987722b08f3955", + "url": "https://api.github.com/repos/symfony/mime/zipball/7dee6a43493f39b51ff6c5bb2bd576fe40a76c86", + "reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.15" }, "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<4.4" }, "require-dev": { "egulias/email-validator": "^2.1.10", - "symfony/dependency-injection": "^4.4|^5.0" + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/property-access": "^4.4|^5.1", + "symfony/property-info": "^4.4|^5.1", + "symfony/serializer": "^5.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Mime\\": "" @@ -5483,43 +5894,60 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A library to manipulate MIME messages", + "description": "Allows manipulating MIME messages", "homepage": "https://symfony.com", "keywords": [ "mime", "mime-type" ], - "time": "2020-03-27T16:56:45+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-02T06:10:15+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "f326fb8e9c7819a8560f6e9e2058332efe2b7a38" + "reference": "aca99c4135001224b917eed17cc846e8c0ba981c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/f326fb8e9c7819a8560f6e9e2058332efe2b7a38", - "reference": "f326fb8e9c7819a8560f6e9e2058332efe2b7a38", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/aca99c4135001224b917eed17cc846e8c0ba981c", + "reference": "aca99c4135001224b917eed17cc846e8c0ba981c", "shasum": "" }, "require": { - "monolog/monolog": "^1.25.1", - "php": ">=7.1.3", - "symfony/http-kernel": "^4.3", + "monolog/monolog": "^1.25.1|^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/http-kernel": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2" }, "conflict": { - "symfony/console": "<3.4", - "symfony/http-foundation": "<3.4" + "symfony/console": "<4.4", + "symfony/http-foundation": "<4.4" }, "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0", + "symfony/console": "^4.4|^5.0", "symfony/http-client": "^4.4|^5.0", - "symfony/security-core": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^3.4|^4.0|^5.0" + "symfony/mailer": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/security-core": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", @@ -5527,11 +5955,6 @@ "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." }, "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\Monolog\\": "" @@ -5554,22 +5977,36 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Monolog Bridge", + "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", - "time": "2020-06-18T17:51:13+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T11:24:50+00:00" }, { "name": "symfony/monolog-bundle", - "version": "v3.5.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd" + "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", - "reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e495f5c7e4e672ffef4357d4a4d85f010802f940", + "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940", "shasum": "" }, "require": { @@ -5582,7 +6019,7 @@ }, "require-dev": { "symfony/console": "~3.4 || ~4.0 || ^5.0", - "symfony/phpunit-bridge": "^3.4.19 || ^4.0 || ^5.0", + "symfony/phpunit-bridge": "^4.4 || ^5.0", "symfony/yaml": "~3.4 || ~4.0 || ^5.0" }, "type": "symfony-bundle", @@ -5619,24 +6056,122 @@ "log", "logging" ], - "time": "2019-11-13T13:11:14+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-06T15:12:11+00:00" + }, + { + "name": "symfony/notifier", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/notifier.git", + "reference": "bdb8702e91f19fc64d0c678f41fed144d0263657" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/notifier/zipball/bdb8702e91f19fc64d0c678f41fed144d0263657", + "reference": "bdb8702e91f19fc64d0c678f41fed144d0263657", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "~1.0", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/firebase-notifier": "<5.2", + "symfony/free-mobile-notifier": "<5.2", + "symfony/http-kernel": "<4.4", + "symfony/mattermost-notifier": "<5.2", + "symfony/nexmo-notifier": "<5.2", + "symfony/ovh-cloud-notifier": "<5.2", + "symfony/rocket-chat-notifier": "<5.2", + "symfony/sinch-notifier": "<5.2", + "symfony/slack-notifier": "<5.2", + "symfony/telegram-notifier": "<5.2", + "symfony/twilio-notifier": "<5.2" + }, + "require-dev": { + "symfony/event-dispatcher-contracts": "^2", + "symfony/http-client-contracts": "^2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Notifier\\": "" + }, + "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": "Sends notifications via one or more channels (email, SMS, ...)", + "homepage": "https://symfony.com", + "keywords": [ + "notification", + "notifier" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-14T15:42:36+00:00" }, { "name": "symfony/options-resolver", - "version": "v4.4.17", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "157a252222251310fe50c71012b4e72f01325850" + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/157a252222251310fe50c71012b4e72f01325850", - "reference": "157a252222251310fe50c71012b4e72f01325850", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "type": "library", "autoload": { @@ -5661,7 +6196,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony OptionsResolver Component", + "description": "Provides an improved replacement for the array_replace PHP function", "homepage": "https://symfony.com", "keywords": [ "config", @@ -5682,24 +6217,67 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2021-01-27T12:56:27+00:00" + }, + { + "name": "symfony/orm-pack", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/orm-pack.git", + "reference": "357f6362067b1ebb94af321b79f8939fc9118751" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/orm-pack/zipball/357f6362067b1ebb94af321b79f8939fc9118751", + "reference": "357f6362067b1ebb94af321b79f8939fc9118751", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "*", + "doctrine/doctrine-bundle": "*", + "doctrine/doctrine-migrations-bundle": "*", + "doctrine/orm": "*", + "symfony/proxy-manager-bridge": "*" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A pack for the Doctrine ORM", + "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-12-22T16:33:52+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b740103edbdcc39602239ee8860f0f45a8eb9aa5" + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b740103edbdcc39602239ee8860f0f45a8eb9aa5", - "reference": "b740103edbdcc39602239ee8860f0f45a8eb9aa5", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-intl": "For best performance" @@ -5707,7 +6285,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5746,33 +6324,46 @@ "portable", "shim" ], - "time": "2020-07-14T12:35:20+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "4e45a6e39041a9cc78835b11abc47874ae302a55" + "reference": "af1842919c7e7364aaaa2798b29839e3ba168588" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/4e45a6e39041a9cc78835b11abc47874ae302a55", - "reference": "4e45a6e39041a9cc78835b11abc47874ae302a55", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/af1842919c7e7364aaaa2798b29839e3ba168588", + "reference": "af1842919c7e7364aaaa2798b29839e3ba168588", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/intl": "~2.3|~3.0|~4.0|~5.0" + "php": ">=7.1" }, "suggest": { - "ext-intl": "For best performance" + "ext-intl": "For best performance and support of other locales than \"en\"" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5782,6 +6373,15 @@ "autoload": { "files": [ "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5808,26 +6408,39 @@ "portable", "shim" ], - "time": "2020-07-14T12:35:20+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251" + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/5dcab1bc7146cf8c1beaa4502a3d9be344334251", - "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483", + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=7.1", "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php70": "^1.10", "symfony/polyfill-php72": "^1.10" }, "suggest": { @@ -5836,7 +6449,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5879,24 +6492,38 @@ "portable", "shim" ], - "time": "2020-08-04T06:02:08+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e" + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e", - "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-intl": "For best performance" @@ -5904,7 +6531,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5946,24 +6573,38 @@ "portable", "shim" ], - "time": "2020-07-14T12:35:20+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a" + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-mbstring": "For best performance" @@ -5971,7 +6612,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6009,65 +6650,6 @@ "portable", "shim" ], - "time": "2020-07-14T12:35:20+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], "funding": [ { "url": "https://symfony.com/sponsor", @@ -6082,29 +6664,29 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca" + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6144,29 +6726,43 @@ "portable", "shim" ], - "time": "2020-07-14T12:35:20+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.18.1", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981" + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { - "php": ">=7.0.8" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6210,31 +6806,41 @@ "portable", "shim" ], - "time": "2020-07-14T12:35:20+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/process", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479" + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/65e70bab62f3da7089a8d4591fb23fbacacb3479", - "reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479", + "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -6257,40 +6863,51 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", - "time": "2020-07-23T08:31:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/property-access", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "4788569bbec76c5b950d22ac6de61e2c3cc6bae1" + "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/4788569bbec76c5b950d22ac6de61e2c3cc6bae1", - "reference": "4788569bbec76c5b950d22ac6de61e2c3cc6bae1", + "url": "https://api.github.com/repos/symfony/property-access/zipball/3af8ed262bd3217512a13b023981fe68f36ad5f3", + "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/inflector": "^3.4|^4.0|^5.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", + "symfony/property-info": "^5.2" }, "require-dev": { - "symfony/cache": "^3.4|^4.0|^5.0" + "symfony/cache": "^4.4|^5.0" }, "suggest": { "psr/cache-implementation": "To cache access methods." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\PropertyAccess\\": "" @@ -6313,7 +6930,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony PropertyAccess Component", + "description": "Provides functions to read and write from/to an object or array using a simple string notation", "homepage": "https://symfony.com", "keywords": [ "access", @@ -6326,37 +6943,53 @@ "property path", "reflection" ], - "time": "2020-06-18T17:51:13+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/property-info", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "a04e02346225d54c2e2a474fe22a46af04e6bf2c" + "reference": "4e4f368c3737b1c175d66f4fc0b99a5bcd161a77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/a04e02346225d54c2e2a474fe22a46af04e6bf2c", - "reference": "a04e02346225d54c2e2a474fe22a46af04e6bf2c", + "url": "https://api.github.com/repos/symfony/property-info/zipball/4e4f368c3737b1c175d66f4fc0b99a5bcd161a77", + "reference": "4e4f368c3737b1c175d66f4fc0b99a5bcd161a77", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/inflector": "^3.4|^4.0|^5.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", + "symfony/string": "^5.1" }, "conflict": { - "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.3.0", - "symfony/dependency-injection": "<3.4" + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4" }, "require-dev": { - "doctrine/annotations": "~1.7", + "doctrine/annotations": "^1.10.4", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/serializer": "^3.4|^4.0|^5.0" + "symfony/cache": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" }, "suggest": { "phpdocumentor/reflection-docblock": "To use the PHPDoc", @@ -6365,11 +6998,6 @@ "symfony/serializer": "To use Serializer metadata" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\PropertyInfo\\": "" @@ -6392,7 +7020,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Property Info Component", + "description": "Extracts information about PHP class' properties using metadata of popular sources", "homepage": "https://symfony.com", "keywords": [ "doctrine", @@ -6402,38 +7030,118 @@ "type", "validator" ], - "time": "2020-06-18T20:41:34+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" + }, + { + "name": "symfony/proxy-manager-bridge", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/proxy-manager-bridge.git", + "reference": "fd6bb40190b1719abbe831be09adf38e0744d5f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/fd6bb40190b1719abbe831be09adf38e0744d5f5", + "reference": "fd6bb40190b1719abbe831be09adf38e0744d5f5", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "^1.8", + "friendsofphp/proxy-manager-lts": "^1.0.2", + "php": ">=7.2.5", + "symfony/dependency-injection": "^5.0" + }, + "require-dev": { + "symfony/config": "^4.4|^5.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", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/routing", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e103381a4c2f0731c14589041852bf979e97c7af" + "reference": "348b5917e56546c6d96adbf21d7f92c9ef563661" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e103381a4c2f0731c14589041852bf979e97c7af", - "reference": "e103381a4c2f0731c14589041852bf979e97c7af", + "url": "https://api.github.com/repos/symfony/routing/zipball/348b5917e56546c6d96adbf21d7f92c9ef563661", + "reference": "348b5917e56546c6d96adbf21d7f92c9ef563661", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/config": "<4.2", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" + "symfony/config": "<5.0", + "symfony/dependency-injection": "<4.4", + "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "~1.2", + "doctrine/annotations": "^1.10.4", "psr/log": "~1.0", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/config": "^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -6443,11 +7151,6 @@ "symfony/yaml": "For using the YAML loader" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Routing\\": "" @@ -6470,7 +7173,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Routing Component", + "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", "keywords": [ "router", @@ -6478,65 +7181,78 @@ "uri", "url" ], - "time": "2020-07-05T09:39:30+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/security-bundle", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "ee61f2ecf996c65e93b65ada6097761132964783" + "reference": "51854aa28585d196e60519271338aecad86f95f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/ee61f2ecf996c65e93b65ada6097761132964783", - "reference": "ee61f2ecf996c65e93b65ada6097761132964783", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/51854aa28585d196e60519271338aecad86f95f5", + "reference": "51854aa28585d196e60519271338aecad86f95f5", "shasum": "" }, "require": { "ext-xml": "*", - "php": ">=7.1.3", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/security-core": "^4.4", - "symfony/security-csrf": "^4.2|^5.0", - "symfony/security-guard": "^4.2|^5.0", - "symfony/security-http": "^4.4.5" + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^5.2", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher": "^5.1", + "symfony/http-kernel": "^5.0", + "symfony/polyfill-php80": "^1.15", + "symfony/security-core": "^5.2", + "symfony/security-csrf": "^4.4|^5.0", + "symfony/security-guard": "^5.2", + "symfony/security-http": "^5.2" }, "conflict": { - "symfony/browser-kit": "<4.2", - "symfony/console": "<3.4", + "symfony/browser-kit": "<4.4", + "symfony/console": "<4.4", "symfony/framework-bundle": "<4.4", "symfony/ldap": "<4.4", "symfony/twig-bundle": "<4.4" }, "require-dev": { - "doctrine/doctrine-bundle": "^1.5|^2.0", - "symfony/asset": "^3.4|^4.0|^5.0", - "symfony/browser-kit": "^4.2|^5.0", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/dom-crawler": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/form": "^3.4|^4.0|^5.0", - "symfony/framework-bundle": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", + "doctrine/doctrine-bundle": "^2.0", + "symfony/asset": "^4.4|^5.0", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/form": "^4.4|^5.0", + "symfony/framework-bundle": "^5.2", + "symfony/process": "^4.4|^5.0", + "symfony/rate-limiter": "^5.2", "symfony/serializer": "^4.4|^5.0", - "symfony/translation": "^3.4|^4.0|^5.0", - "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bridge": "^4.4|^5.0", "symfony/twig-bundle": "^4.4|^5.0", - "symfony/validator": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0", - "twig/twig": "^1.41|^2.10|^3.0" + "symfony/validator": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0", + "twig/twig": "^2.13|^3.0.4" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\SecurityBundle\\": "" @@ -6559,42 +7275,60 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony SecurityBundle", + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", - "time": "2020-07-23T08:31:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/security-core", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "16ab88e5692e3fc32ae4ad550a55fbced516203b" + "reference": "a468c863d65e2c3768b897b8ddf7547abb4512f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/16ab88e5692e3fc32ae4ad550a55fbced516203b", - "reference": "16ab88e5692e3fc32ae4ad550a55fbced516203b", + "url": "https://api.github.com/repos/symfony/security-core/zipball/a468c863d65e2c3768b897b8ddf7547abb4512f8", + "reference": "a468c863d65e2c3768b897b8ddf7547abb4512f8", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/event-dispatcher": "<4.3|>=5", + "symfony/event-dispatcher": "<4.4", "symfony/ldap": "<4.4", - "symfony/security-guard": "<4.3" + "symfony/security-guard": "<4.4", + "symfony/validator": "<5.2" }, "require-dev": { "psr/container": "^1.0", "psr/log": "~1.0", - "symfony/event-dispatcher": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", "symfony/ldap": "^4.4|^5.0", - "symfony/validator": "^3.4.31|^4.3.4|^5.0" + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^5.2" }, "suggest": { "psr/container-implementation": "To instantiate the Security class", @@ -6605,11 +7339,6 @@ "symfony/validator": "For using the user password constraint" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Core\\": "" @@ -6634,41 +7363,50 @@ ], "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", - "time": "2020-05-30T21:50:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/security-csrf", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "8788f6d4c8555b34d6f32f42b996b937b473f6b3" + "reference": "e22ef49d5d3773014942f3dfe301b168a4a833dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/8788f6d4c8555b34d6f32f42b996b937b473f6b3", - "reference": "8788f6d4c8555b34d6f32f42b996b937b473f6b3", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/e22ef49d5d3773014942f3dfe301b168a4a833dc", + "reference": "e22ef49d5d3773014942f3dfe301b168a4a833dc", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/security-core": "^3.4|^4.0|^5.0" + "php": ">=7.2.5", + "symfony/security-core": "^4.4|^5.0" }, "conflict": { - "symfony/http-foundation": "<3.4" + "symfony/http-foundation": "<4.4" }, "require-dev": { - "symfony/http-foundation": "^3.4|^4.0|^5.0" + "symfony/http-foundation": "^4.4|^5.0" }, "suggest": { "symfony/http-foundation": "For using the class SessionTokenStorage." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Csrf\\": "" @@ -6693,36 +7431,46 @@ ], "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", - "time": "2020-05-20T08:37:50+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/security-guard", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/security-guard.git", - "reference": "699162c3a9fcceb5ec8bce35a3dc2fcb79c6751e" + "reference": "a191352047f2ea0d927c62e1a2f261cf906d1bde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-guard/zipball/699162c3a9fcceb5ec8bce35a3dc2fcb79c6751e", - "reference": "699162c3a9fcceb5ec8bce35a3dc2fcb79c6751e", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/a191352047f2ea0d927c62e1a2f261cf906d1bde", + "reference": "a191352047f2ea0d927c62e1a2f261cf906d1bde", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/security-core": "^3.4.22|^4.2.3|^5.0", - "symfony/security-http": "^4.4.1" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15", + "symfony/security-core": "^5.0", + "symfony/security-http": "^4.4.1|^5.0.1" }, "require-dev": { "psr/log": "~1.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Guard\\": "" @@ -6747,48 +7495,62 @@ ], "description": "Symfony Security Component - Guard", "homepage": "https://symfony.com", - "time": "2020-05-20T08:37:50+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/security-http", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "4aab90c5797a4f2ee9d5cd91f5e884d1e21f431a" + "reference": "122c8f52fd080fcc582ca475baf2b8e63d62e980" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/4aab90c5797a4f2ee9d5cd91f5e884d1e21f431a", - "reference": "4aab90c5797a4f2ee9d5cd91f5e884d1e21f431a", + "url": "https://api.github.com/repos/symfony/security-http/zipball/122c8f52fd080fcc582ca475baf2b8e63d62e980", + "reference": "122c8f52fd080fcc582ca475baf2b8e63d62e980", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", - "symfony/http-kernel": "^4.4", - "symfony/property-access": "^3.4|^4.0|^5.0", - "symfony/security-core": "^4.4.8" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/http-foundation": "^5.2", + "symfony/http-kernel": "^5.2", + "symfony/polyfill-php80": "^1.15", + "symfony/property-access": "^4.4|^5.0", + "symfony/security-core": "^5.2" }, "conflict": { - "symfony/event-dispatcher": ">=5", - "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" + "symfony/event-dispatcher": "<4.3", + "symfony/security-csrf": "<4.4" }, "require-dev": { "psr/log": "~1.0", - "symfony/routing": "^3.4|^4.0|^5.0", - "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0" + "symfony/cache": "^4.4|^5.0", + "symfony/rate-limiter": "^5.2", + "symfony/routing": "^4.4|^5.0", + "symfony/security-csrf": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0" }, "suggest": { "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Http\\": "" @@ -6813,64 +7575,81 @@ ], "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", - "time": "2020-05-28T12:17:38+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/serializer", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "0fe47b7aa55ff28b1b781e380120c0731e2d36c7" + "reference": "70c5aa59ab0642033391a5591c9771ee417e7cef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/0fe47b7aa55ff28b1b781e380120c0731e2d36c7", - "reference": "0fe47b7aa55ff28b1b781e380120c0731e2d36c7", + "url": "https://api.github.com/repos/symfony/serializer/zipball/70c5aa59ab0642033391a5591c9771ee417e7cef", + "reference": "70c5aa59ab0642033391a5591c9771ee417e7cef", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "phpdocumentor/type-resolver": "<0.2.1", - "symfony/dependency-injection": "<3.4", - "symfony/property-access": "<3.4", - "symfony/property-info": "<3.4", - "symfony/yaml": "<3.4" + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4", + "symfony/property-access": "<4.4", + "symfony/property-info": "<4.4", + "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "~1.0", + "doctrine/annotations": "^1.10.4", "doctrine/cache": "~1.0", - "phpdocumentor/reflection-docblock": "^3.2|^4.0", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", "symfony/error-handler": "^4.4|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/form": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", "symfony/mime": "^4.4|^5.0", - "symfony/property-access": "^3.4|^4.0|^5.0", - "symfony/property-info": "^3.4.13|~4.0|^5.0", - "symfony/validator": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/property-access": "^4.4.9|^5.0.9", + "symfony/property-info": "^4.4|^5.0", + "symfony/uid": "^5.1", + "symfony/validator": "^4.4|^5.0", + "symfony/var-exporter": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", "doctrine/cache": "For using the default cached annotation reader and metadata cache.", "psr/cache-implementation": "For using the metadata cache.", "symfony/config": "For using the XML mapping loader.", - "symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.", + "symfony/mime": "For using a MIME type guesser within the DataUriNormalizer.", "symfony/property-access": "For using the ObjectNormalizer.", "symfony/property-info": "To deserialize relations.", + "symfony/var-exporter": "For using the metadata compiler.", "symfony/yaml": "For using the default YAML mapping loader." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Serializer\\": "" @@ -6893,22 +7672,79 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Serializer Component", + "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", - "time": "2020-07-21T15:17:25+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-03T04:42:09+00:00" + }, + { + "name": "symfony/serializer-pack", + "version": "v1.0.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer-pack.git", + "reference": "61173947057d5e1bf1c79e2a6ab6a8430be0602e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer-pack/zipball/61173947057d5e1bf1c79e2a6ab6a8430be0602e", + "reference": "61173947057d5e1bf1c79e2a6ab6a8430be0602e", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "phpdocumentor/reflection-docblock": "*", + "symfony/property-access": "*", + "symfony/property-info": "*", + "symfony/serializer": "*" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A pack for the Symfony serializer", + "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-19T08:52:16+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.1.3", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442" + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/58c7475e5457c5492c26cc740cc0ad7464be9442", - "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", "shasum": "" }, "require": { @@ -6921,7 +7757,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" }, "thanks": { "name": "symfony/contracts", @@ -6957,32 +7793,41 @@ "interoperability", "standards" ], - "time": "2020-07-06T13:23:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" }, { "name": "symfony/stopwatch", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "f51fb90df1154a7f75987198a9689e28f91e6a50" + "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f51fb90df1154a7f75987198a9689e28f91e6a50", - "reference": "f51fb90df1154a7f75987198a9689e28f91e6a50", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b12274acfab9d9850c52583d136a24398cdf1a0c", + "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/service-contracts": "^1.0|^2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Stopwatch\\": "" @@ -7005,22 +7850,36 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Stopwatch Component", + "description": "Provides a way to profile code", "homepage": "https://symfony.com", - "time": "2020-05-20T08:37:50+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/string", - "version": "v5.1.3", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f629ba9b611c76224feb21fe2bcbf0b6f992300b" + "reference": "c95468897f408dd0aca2ff582074423dd0455122" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f629ba9b611c76224feb21fe2bcbf0b6f992300b", - "reference": "f629ba9b611c76224feb21fe2bcbf0b6f992300b", + "url": "https://api.github.com/repos/symfony/string/zipball/c95468897f408dd0aca2ff582074423dd0455122", + "reference": "c95468897f408dd0aca2ff582074423dd0455122", "shasum": "" }, "require": { @@ -7038,11 +7897,6 @@ "symfony/var-exporter": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\String\\": "" @@ -7068,7 +7922,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony String component", + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", "homepage": "https://symfony.com", "keywords": [ "grapheme", @@ -7078,46 +7932,62 @@ "utf-8", "utf8" ], - "time": "2020-07-08T08:27:49+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-25T15:14:59+00:00" }, { "name": "symfony/translation", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a8ea9d97353294eb6783f2894ef8cee99a045822" + "reference": "c021864d4354ee55160ddcfd31dc477a1bc77949" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a8ea9d97353294eb6783f2894ef8cee99a045822", - "reference": "a8ea9d97353294eb6783f2894ef8cee99a045822", + "url": "https://api.github.com/repos/symfony/translation/zipball/c021864d4354ee55160ddcfd31dc477a1bc77949", + "reference": "c021864d4354ee55160ddcfd31dc477a1bc77949", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1.6|^2" + "symfony/polyfill-php80": "^1.15", + "symfony/translation-contracts": "^2.3" }, "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<4.4", - "symfony/yaml": "<3.4" + "symfony/config": "<4.4", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" }, "provide": { - "symfony/translation-implementation": "1.0" + "symfony/translation-implementation": "2.0" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/finder": "~2.8|~3.0|~4.0|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-kernel": "^5.0", + "symfony/intl": "^4.4|^5.0", "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -7125,12 +7995,10 @@ "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { + "files": [ + "Resources/functions.php" + ], "psr-4": { "Symfony\\Component\\Translation\\": "" }, @@ -7152,22 +8020,36 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Translation Component", + "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", - "time": "2020-07-23T08:31:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.1.3", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "616a9773c853097607cf9dd6577d5b143ffdcd63" + "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/616a9773c853097607cf9dd6577d5b143ffdcd63", - "reference": "616a9773c853097607cf9dd6577d5b143ffdcd63", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105", + "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105", "shasum": "" }, "require": { @@ -7179,7 +8061,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -7215,58 +8097,77 @@ "interoperability", "standards" ], - "time": "2020-07-06T13:23:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-28T13:05:58+00:00" }, { "name": "symfony/twig-bridge", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "36e7f0bdb09fb88367e91375d739f95e8a5ad7bc" + "reference": "3e8a56f4a8ab4db819f5ec726afad29d470b452d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/36e7f0bdb09fb88367e91375d739f95e8a5ad7bc", - "reference": "36e7f0bdb09fb88367e91375d739f95e8a5ad7bc", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/3e8a56f4a8ab4db819f5ec726afad29d470b452d", + "reference": "3e8a56f4a8ab4db819f5ec726afad29d470b452d", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15", "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^1.41|^2.10|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "conflict": { - "symfony/console": "<3.4", - "symfony/form": "<4.4", - "symfony/http-foundation": "<4.3", - "symfony/translation": "<4.2", - "symfony/workflow": "<4.3" + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/console": "<4.4", + "symfony/form": "<5.1", + "symfony/http-foundation": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/translation": "<5.2", + "symfony/workflow": "<5.2" }, "require-dev": { "egulias/email-validator": "^2.1.10", - "symfony/asset": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/form": "^4.3.5", - "symfony/http-foundation": "^4.3|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/mime": "^4.3|^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/form": "^5.1.9", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/mime": "^5.2", "symfony/polyfill-intl-icu": "~1.0", - "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/property-info": "^4.4|^5.1", + "symfony/routing": "^4.4|^5.0", "symfony/security-acl": "^2.8|^3.0", - "symfony/security-core": "^3.0|^4.0|^5.0", - "symfony/security-csrf": "^3.4|^4.0|^5.0", - "symfony/security-http": "^3.4|^4.0|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0", - "symfony/templating": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2.1|^5.0", + "symfony/security-core": "^4.4|^5.0", + "symfony/security-csrf": "^4.4|^5.0", + "symfony/security-http": "^4.4|^5.0", + "symfony/serializer": "^5.2", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^5.2", "symfony/web-link": "^4.4|^5.0", - "symfony/workflow": "^4.3|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0", + "symfony/workflow": "^5.2", + "symfony/yaml": "^4.4|^5.0", "twig/cssinliner-extra": "^2.12", "twig/inky-extra": "^2.12", "twig/markdown-extra": "^2.12" @@ -7282,18 +8183,12 @@ "symfony/security-csrf": "For using the CsrfExtension", "symfony/security-http": "For using the LogoutUrlExtension", "symfony/stopwatch": "For using the StopwatchExtension", - "symfony/templating": "For using the TwigEngine", "symfony/translation": "For using the TranslationExtension", "symfony/var-dumper": "For using the DumpExtension", "symfony/web-link": "For using the WebLinkExtension", "symfony/yaml": "For using the YamlExtension" }, "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\Twig\\": "" @@ -7316,59 +8211,68 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Twig Bridge", + "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", - "time": "2020-06-30T17:59:39+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-03T04:42:09+00:00" }, { "name": "symfony/twig-bundle", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "c83e606bdc54504a1b2bcd8807b5dd139187b4a4" + "reference": "5ebbb5f0e8bfaa0b4b37cb25ff97f83b18caf221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c83e606bdc54504a1b2bcd8807b5dd139187b4a4", - "reference": "c83e606bdc54504a1b2bcd8807b5dd139187b4a4", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/5ebbb5f0e8bfaa0b4b37cb25ff97f83b18caf221", + "reference": "5ebbb5f0e8bfaa0b4b37cb25ff97f83b18caf221", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/http-foundation": "^4.3|^5.0", - "symfony/http-kernel": "^4.4", + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^5.0", "symfony/polyfill-ctype": "~1.8", - "symfony/twig-bridge": "^4.4|^5.0", - "twig/twig": "^1.41|^2.10|^3.0" + "symfony/twig-bridge": "^5.0", + "twig/twig": "^2.13|^3.0.4" }, "conflict": { - "symfony/dependency-injection": "<4.1", - "symfony/framework-bundle": "<4.4", - "symfony/translation": "<4.2" + "symfony/dependency-injection": "<5.2", + "symfony/framework-bundle": "<5.0", + "symfony/translation": "<5.0" }, "require-dev": { - "doctrine/annotations": "~1.7", + "doctrine/annotations": "^1.10.4", "doctrine/cache": "~1.0", - "symfony/asset": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^4.2.5|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/form": "^3.4|^4.0|^5.0", - "symfony/framework-bundle": "^4.4|^5.0", - "symfony/routing": "^3.4|^4.0|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0", - "symfony/templating": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2|^5.0", - "symfony/web-link": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/asset": "^4.4|^5.0", + "symfony/dependency-injection": "^5.2", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/form": "^4.4|^5.0", + "symfony/framework-bundle": "^5.0", + "symfony/routing": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\TwigBundle\\": "" @@ -7391,56 +8295,76 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony TwigBundle", + "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", - "time": "2020-05-20T08:37:50+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/validator", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "f2b1e1d0c731987f15268816bc9cd998bd50a468" + "reference": "d83d2a9f060ce42636feef6af6facc39793354cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/f2b1e1d0c731987f15268816bc9cd998bd50a468", - "reference": "f2b1e1d0c731987f15268816bc9cd998bd50a468", + "url": "https://api.github.com/repos/symfony/validator/zipball/d83d2a9f060ce42636feef6af6facc39793354cf", + "reference": "d83d2a9f060ce42636feef6af6facc39793354cf", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15", "symfony/translation-contracts": "^1.1|^2" }, "conflict": { "doctrine/lexer": "<1.0.2", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/dependency-injection": "<3.4", + "phpunit/phpunit": "<5.4.3", + "symfony/dependency-injection": "<4.4", + "symfony/expression-language": "<5.1", "symfony/http-kernel": "<4.4", - "symfony/intl": "<4.3", - "symfony/translation": ">=5.0", - "symfony/yaml": "<3.4" + "symfony/intl": "<4.4", + "symfony/translation": "<4.4", + "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "~1.7", + "doctrine/annotations": "^1.10.4", "doctrine/cache": "~1.0", "egulias/email-validator": "^2.1.10", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/http-foundation": "^4.1|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/intl": "^4.3|^5.0", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^5.1", + "symfony/finder": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/intl": "^4.4|^5.0", "symfony/mime": "^4.4|^5.0", - "symfony/property-access": "^3.4|^4.0|^5.0", - "symfony/property-info": "^3.4|^4.0|^5.0", - "symfony/translation": "^4.2", - "symfony/yaml": "^3.4|^4.0|^5.0" + "symfony/property-access": "^4.4|^5.0", + "symfony/property-info": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", @@ -7448,7 +8372,7 @@ "egulias/email-validator": "Strict (RFC compliant) email validation", "psr/cache-implementation": "For using the mapping cache.", "symfony/config": "", - "symfony/expression-language": "For using the Expression validator", + "symfony/expression-language": "For using the Expression validator and the ExpressionLanguageSyntax constraints", "symfony/http-foundation": "", "symfony/intl": "", "symfony/property-access": "For accessing properties within comparison constraints", @@ -7457,11 +8381,6 @@ "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Validator\\": "" @@ -7484,39 +8403,52 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Validator Component", + "description": "Provides tools to validate values", "homepage": "https://symfony.com", - "time": "2020-06-30T17:40:09+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2125805a1a4e57f2340bc566c3013ca94d2722dc" + "reference": "72ca213014a92223a5d18651ce79ef441c12b694" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2125805a1a4e57f2340bc566c3013ca94d2722dc", - "reference": "2125805a1a4e57f2340bc566c3013ca94d2722dc", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/72ca213014a92223a5d18651ce79ef441c12b694", + "reference": "72ca213014a92223a5d18651ce79ef441c12b694", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php72": "~1.5", "symfony/polyfill-php80": "^1.15" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<3.4" + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^3.4|^4.0|^5.0", + "symfony/console": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^1.34|^2.4|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -7527,11 +8459,6 @@ "Resources/bin/var-dump-server" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "files": [ "Resources/functions/dump.php" @@ -7557,40 +8484,50 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ "debug", "dump" ], - "time": "2020-06-24T13:34:53+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/var-exporter", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "09f0aec4b8bfc25c1dd306e6203cf055c9886560" + "reference": "5aed4875ab514c8cb9b6ff4772baa25fa4c10307" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/09f0aec4b8bfc25c1dd306e6203cf055c9886560", - "reference": "09f0aec4b8bfc25c1dd306e6203cf055c9886560", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/5aed4875ab514c8cb9b6ff4772baa25fa4c10307", + "reference": "5aed4875ab514c8cb9b6ff4772baa25fa4c10307", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" }, "require-dev": { "symfony/var-dumper": "^4.4.9|^5.0.9" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\VarExporter\\": "" @@ -7613,7 +8550,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", + "description": "Allows exporting any serializable PHP data structure to plain PHP code", "homepage": "https://symfony.com", "keywords": [ "clone", @@ -7623,46 +8560,54 @@ "instantiate", "serialize" ], - "time": "2020-07-05T09:39:30+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/web-link", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/web-link.git", - "reference": "b862a104ef3a233b6f12fdbf6b57113308af79ff" + "reference": "28e6bd9028740602c158f5c6ac8d5e2a2692812e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-link/zipball/b862a104ef3a233b6f12fdbf6b57113308af79ff", - "reference": "b862a104ef3a233b6f12fdbf6b57113308af79ff", + "url": "https://api.github.com/repos/symfony/web-link/zipball/28e6bd9028740602c158f5c6ac8d5e2a2692812e", + "reference": "28e6bd9028740602c158f5c6ac8d5e2a2692812e", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/link": "^1.0", - "symfony/polyfill-php72": "^1.5" + "php": ">=7.2.5", + "psr/link": "^1.0" }, "conflict": { - "symfony/http-kernel": "<4.3" + "symfony/http-kernel": "<4.4" }, "provide": { "psr/link-implementation": "1.0" }, "require-dev": { "symfony/http-foundation": "^4.4|^5.0", - "symfony/http-kernel": "^4.3|^5.0" + "symfony/http-kernel": "^4.4|^5.0" }, "suggest": { "symfony/http-kernel": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\WebLink\\": "" @@ -7685,7 +8630,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony WebLink Component", + "description": "Manages links between resources", "homepage": "https://symfony.com", "keywords": [ "dns-prefetch", @@ -7699,35 +8644,49 @@ "psr13", "push" ], - "time": "2020-05-26T09:42:42+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-10T16:29:19+00:00" }, { "name": "symfony/webpack-encore-bundle", - "version": "v1.7.3", + "version": "v1.11.1", "source": { "type": "git", "url": "https://github.com/symfony/webpack-encore-bundle.git", - "reference": "5c0f659eceae87271cce54bbdfb05ed8ec9007bd" + "reference": "395b60a549ded8e7f77f0d551815d7555e2d9eb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/5c0f659eceae87271cce54bbdfb05ed8ec9007bd", - "reference": "5c0f659eceae87271cce54bbdfb05ed8ec9007bd", + "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/395b60a549ded8e7f77f0d551815d7555e2d9eb0", + "reference": "395b60a549ded8e7f77f0d551815d7555e2d9eb0", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/asset": "^3.4 || ^4.0 || ^5.0", - "symfony/config": "^3.4 || ^4.0 || ^5.0", - "symfony/dependency-injection": "^3.4 || ^4.0 || ^5.0", - "symfony/http-kernel": "^3.4 || ^4.0 || ^5.0", + "php": ">=7.1.3", + "symfony/asset": "^4.4 || ^5.0", + "symfony/config": "^4.4 || ^5.0", + "symfony/dependency-injection": "^4.4 || ^5.0", + "symfony/http-kernel": "^4.4 || ^5.0", "symfony/service-contracts": "^1.0 || ^2.0" }, "require-dev": { - "symfony/framework-bundle": "^3.4 || ^4.0 || ^5.0", - "symfony/phpunit-bridge": "^4.3.5 || ^5.0", - "symfony/twig-bundle": "^3.4 || ^4.0 || ^5.0", - "symfony/web-link": "^3.4 || ^4.0 || ^5.0" + "symfony/framework-bundle": "^4.4 || ^5.0", + "symfony/phpunit-bridge": "^4.4 || ^5.0", + "symfony/twig-bundle": "^4.4 || ^5.0", + "symfony/web-link": "^4.4 || ^5.0" }, "type": "symfony-bundle", "extra": { @@ -7752,41 +8711,54 @@ } ], "description": "Integration with your Symfony app & Webpack Encore!", - "time": "2020-01-31T15:31:59+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-17T13:45:51+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a" + "reference": "338cddc6d74929f6adf19ca5682ac4b8e109cdb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a", - "reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/338cddc6d74929f6adf19ca5682ac4b8e109cdb0", + "reference": "338cddc6d74929f6adf19ca5682ac4b8e109cdb0", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/console": "<3.4" + "symfony/console": "<4.4" }, "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0" + "symfony/console": "^4.4|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -7809,22 +8781,36 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2020-05-20T08:37:50+00:00" + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-03T04:42:09+00:00" }, { "name": "twig/extra-bundle", - "version": "v3.0.5", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "a7c5799cf742ab0827f5d32df37528ee8bf5a233" + "reference": "e2d27a86c3f47859eb07808fa7c8679d30fcbdde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/a7c5799cf742ab0827f5d32df37528ee8bf5a233", - "reference": "a7c5799cf742ab0827f5d32df37528ee8bf5a233", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/e2d27a86c3f47859eb07808fa7c8679d30fcbdde", + "reference": "e2d27a86c3f47859eb07808fa7c8679d30fcbdde", "shasum": "" }, "require": { @@ -7834,22 +8820,28 @@ "twig/twig": "^2.4|^3.0" }, "require-dev": { + "symfony/phpunit-bridge": "^4.4.9|^5.0.9", + "twig/cache-extra": "^3.0", "twig/cssinliner-extra": "^2.12|^3.0", "twig/html-extra": "^2.12|^3.0", "twig/inky-extra": "^2.12|^3.0", "twig/intl-extra": "^2.12|^3.0", - "twig/markdown-extra": "^2.12|^3.0" + "twig/markdown-extra": "^2.12|^3.0", + "twig/string-extra": "^2.12|^3.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.2-dev" } }, "autoload": { "psr-4": { - "Twig\\Extra\\TwigExtraBundle\\": "src/" - } + "Twig\\Extra\\TwigExtraBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7870,20 +8862,30 @@ "extra", "twig" ], - "time": "2020-05-21T09:56:39+00:00" + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2021-02-06T21:13:17+00:00" }, { "name": "twig/intl-extra", - "version": "v3.0.5", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "6f1889920753e6ffd72b06fc1d9b363ec2cec540" + "reference": "919e8f945c30bd3efeb6a4d79722cda538116658" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/6f1889920753e6ffd72b06fc1d9b363ec2cec540", - "reference": "6f1889920753e6ffd72b06fc1d9b363ec2cec540", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/919e8f945c30bd3efeb6a4d79722cda538116658", + "reference": "919e8f945c30bd3efeb6a4d79722cda538116658", "shasum": "" }, "require": { @@ -7897,13 +8899,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.2-dev" } }, "autoload": { "psr-4": { - "Twig\\Extra\\Intl\\": "src/" - } + "Twig\\Extra\\Intl\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7923,20 +8928,30 @@ "intl", "twig" ], - "time": "2020-06-22T06:17:05+00:00" + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2021-01-01T14:58:18+00:00" }, { "name": "twig/markdown-extra", - "version": "v3.0.5", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/twigphp/markdown-extra.git", - "reference": "1fe798d559665b64bda4b08eda10793427d7e3bc" + "reference": "48142a7727b2b84691f843056346d534933f1d3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/1fe798d559665b64bda4b08eda10793427d7e3bc", - "reference": "1fe798d559665b64bda4b08eda10793427d7e3bc", + "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/48142a7727b2b84691f843056346d534933f1d3f", + "reference": "48142a7727b2b84691f843056346d534933f1d3f", "shasum": "" }, "require": { @@ -7953,13 +8968,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.2-dev" } }, "autoload": { "psr-4": { - "Twig\\Extra\\Markdown\\": "src/" - } + "Twig\\Extra\\Markdown\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7980,25 +8998,36 @@ "markdown", "twig" ], - "time": "2020-08-05T14:54:08+00:00" + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2021-01-01T14:58:18+00:00" }, { "name": "twig/string-extra", - "version": "v3.0.5", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/twigphp/string-extra.git", - "reference": "8e9b436d25b9473e9dc163c83cff1eb9f5dd68c4" + "reference": "8a8bb5631e8e27573fae741211b9c752b9b0b428" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/string-extra/zipball/8e9b436d25b9473e9dc163c83cff1eb9f5dd68c4", - "reference": "8e9b436d25b9473e9dc163c83cff1eb9f5dd68c4", + "url": "https://api.github.com/repos/twigphp/string-extra/zipball/8a8bb5631e8e27573fae741211b9c752b9b0b428", + "reference": "8a8bb5631e8e27573fae741211b9c752b9b0b428", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/string": "^5.0", + "symfony/translation-contracts": "^1.1|^2", "twig/twig": "^2.4|^3.0" }, "require-dev": { @@ -8007,13 +9036,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.12-dev" + "dev-master": "3.2-dev" } }, "autoload": { "psr-4": { - "Twig\\Extra\\String\\": "src/" - } + "Twig\\Extra\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8035,20 +9067,30 @@ "twig", "unicode" ], - "time": "2020-05-21T09:54:27+00:00" + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2021-01-29T14:39:43+00:00" }, { "name": "twig/twig", - "version": "v3.0.5", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9b76b1535483cdf4edf01bb787b0217b62bd68a5" + "reference": "1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9b76b1535483cdf4edf01bb787b0217b62bd68a5", - "reference": "9b76b1535483cdf4edf01bb787b0217b62bd68a5", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5", + "reference": "1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5", "shasum": "" }, "require": { @@ -8063,7 +9105,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -8097,55 +9139,17 @@ "keywords": [ "templating" ], - "time": "2020-08-05T15:13:19+00:00" - }, - { - "name": "webimpress/safe-writer", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/webimpress/safe-writer.git", - "reference": "d6e879960febb307c112538997316371f1e95b12" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webimpress/safe-writer/zipball/d6e879960febb307c112538997316371f1e95b12", - "reference": "d6e879960febb307c112538997316371f1e95b12", - "shasum": "" - }, - "require": { - "php": "^7.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.2 || ^9.0.1", - "webimpress/coding-standard": "^1.1.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev", - "dev-develop": "2.1.x-dev", - "dev-release-1.0": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Webimpress\\SafeWriter\\": "src/" + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "description": "Tool to write files safely, to avoid race conditions", - "keywords": [ - "concurrent write", - "file writer", - "race condition", - "safe writer", - "webimpress" ], - "time": "2020-03-21T15:49:08+00:00" + "time": "2021-02-08T09:54:36+00:00" }, { "name": "webmozart/assert", @@ -8238,28 +9242,28 @@ }, { "name": "willdurand/negotiation", - "version": "v2.3.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/willdurand/Negotiation.git", - "reference": "03436ededa67c6e83b9b12defac15384cb399dc9" + "reference": "04e14f38d4edfcc974114a07d2777d90c98f3d9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/willdurand/Negotiation/zipball/03436ededa67c6e83b9b12defac15384cb399dc9", - "reference": "03436ededa67c6e83b9b12defac15384cb399dc9", + "url": "https://api.github.com/repos/willdurand/Negotiation/zipball/04e14f38d4edfcc974114a07d2777d90c98f3d9c", + "reference": "04e14f38d4edfcc974114a07d2777d90c98f3d9c", "shasum": "" }, "require": { - "php": ">=5.4.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "~4.5" + "symfony/phpunit-bridge": "^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -8286,20 +9290,20 @@ "header", "negotiation" ], - "time": "2017-05-14T17:21:12+00:00" + "time": "2020-09-25T08:01:41+00:00" }, { "name": "wohali/oauth2-discord-new", - "version": "v1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/wohali/oauth2-discord-new.git", - "reference": "990bdfb59b4cd2086e0524b429dc12b5142d66ad" + "reference": "0dcb5059cded358f55ae566de9621652cf8542c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wohali/oauth2-discord-new/zipball/990bdfb59b4cd2086e0524b429dc12b5142d66ad", - "reference": "990bdfb59b4cd2086e0524b429dc12b5142d66ad", + "url": "https://api.github.com/repos/wohali/oauth2-discord-new/zipball/0dcb5059cded358f55ae566de9621652cf8542c6", + "reference": "0dcb5059cded358f55ae566de9621652cf8542c6", "shasum": "" }, "require": { @@ -8309,9 +9313,9 @@ "team-reflex/oauth2-discord": ">=1.0" }, "require-dev": { - "jakub-onderka/php-parallel-lint": "~0.9", - "mockery/mockery": "~0.9", - "phpunit/phpunit": "^5.0", + "mockery/mockery": "~1.3.0", + "php-parallel-lint/php-parallel-lint": "~0.9", + "phpunit/phpunit": "~8.0", "squizlabs/php_codesniffer": "^2.0" }, "type": "library", @@ -8332,7 +9336,7 @@ "authors": [ { "name": "Joan Touzet", - "email": "wohali@gmail.com", + "email": "code@atypical.net", "homepage": "https://github.com/wohali" } ], @@ -8345,7 +9349,7 @@ "oauth", "oauth2" ], - "time": "2017-10-15T23:24:28+00:00" + "time": "2020-06-12T07:27:09+00:00" } ], "packages-dev": [ @@ -8410,16 +9414,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.8.0", + "version": "v4.10.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "8c58eb4cd4f3883f82611abeac2efbc3dbed787e" + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8c58eb4cd4f3883f82611abeac2efbc3dbed787e", - "reference": "8c58eb4cd4f3883f82611abeac2efbc3dbed787e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", "shasum": "" }, "require": { @@ -8427,7 +9431,7 @@ "php": ">=7.0" }, "require-dev": { - "ircmaxell/php-yacc": "^0.0.6", + "ircmaxell/php-yacc": "^0.0.7", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, "bin": [ @@ -8436,7 +9440,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.8-dev" + "dev-master": "4.9-dev" } }, "autoload": { @@ -8458,7 +9462,7 @@ "parser", "php" ], - "time": "2020-08-09T10:23:20+00:00" + "time": "2020-12-20T10:01:03+00:00" }, { "name": "roave/security-advisories", @@ -8466,12 +9470,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "a9e4cf90fc47b0ffbb90ee79f24be1b7c5ce82dc" + "reference": "640ff0b5dcacc0958534c8c0255b90697f3eb2a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/a9e4cf90fc47b0ffbb90ee79f24be1b7c5ce82dc", - "reference": "a9e4cf90fc47b0ffbb90ee79f24be1b7c5ce82dc", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/640ff0b5dcacc0958534c8c0255b90697f3eb2a8", + "reference": "640ff0b5dcacc0958534c8c0255b90697f3eb2a8", "shasum": "" }, "conflict": { @@ -8487,7 +9491,9 @@ "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", + "baserproject/basercms": ">=4,<=4.3.6|>=4.4,<4.4.1", "bolt/bolt": "<3.7.1", + "bolt/core": "<4.1.13", "brightlocal/phpwhois": "<=4.2.5", "buddypress/buddypress": "<5.1.2", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", @@ -8500,10 +9506,11 @@ "composer/composer": "<=1-alpha.11", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": ">=4,<4.4.46|>=4.5,<4.8.6", + "contao/core-bundle": ">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", + "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", "doctrine/annotations": ">=1,<1.2.7", "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", @@ -8515,24 +9522,28 @@ "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1", "dolibarr/dolibarr": "<11.0.4", "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.72|>=8,<8.8.8|>=8.9,<8.9.1|>=9,<9.0.1", - "drupal/drupal": ">=7,<7.72|>=8,<8.8.8|>=8.9,<8.9.1|>=9,<9.0.1", + "drupal/core": ">=7,<7.74|>=8,<8.8.11|>=8.9,<8.9.9|>=9,<9.0.8", + "drupal/drupal": ">=7,<7.74|>=8,<8.8.11|>=8.9,<8.9.9|>=9,<9.0.8", "endroid/qr-code-bundle": "<3.4.2", "enshrined/svg-sanitize": "<0.13.1", "erusev/parsedown": "<1.7.2", "ezsystems/demobundle": ">=5.4,<5.4.6.1", + "ezsystems/ez-support-tools": ">=2.2,<2.2.3", "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1", "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1", "ezsystems/ezplatform": ">=1.7,<1.7.9.1|>=1.13,<1.13.5.1|>=2.5,<2.5.4", "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6", - "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2", + "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", "ezsystems/ezplatform-kernel": ">=1,<1.0.2.1", "ezsystems/ezplatform-user": ">=1,<1.0.1", "ezsystems/ezpublish-kernel": ">=5.3,<5.3.12.1|>=5.4,<5.4.14.2|>=6,<6.7.9.1|>=6.8,<6.13.6.3|>=7,<7.2.4.1|>=7.3,<7.3.2.1|>=7.5,<7.5.7.1", - "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.14.1|>=2011,<2017.12.7.2|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3|>=2019.3,<2019.3.4.2", + "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.14.2|>=2011,<2017.12.7.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3|>=2019.3,<2019.3.5.1", + "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", "ezsystems/repository-forms": ">=2.3,<2.3.2.1", "ezyang/htmlpurifier": "<4.1.1", "firebase/php-jwt": "<2", + "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15", + "flarum/tags": "<=0.1-beta.13", "fooman/tcpdf": "<6.2.22", "fossar/tcpdf-parser": "<6.2.22", "friendsofsymfony/oauth2-php": "<1.3", @@ -8541,13 +9552,15 @@ "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "fuel/core": "<1.8.1", "getgrav/grav": "<1.7-beta.8", + "getkirby/cms": ">=3,<3.4.5", + "getkirby/panel": "<2.5.14", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", - "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.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.44|>=5.6,<5.6.30|>=6,<6.18.31|>=7,<7.22.4", - "illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29|>=5.5,<=5.5.44|>=6,<6.18.34|>=7,<7.23.2", + "illuminate/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.14|>=7,<7.30.4|>=8,<8.24", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": ">=7,<7.1.2", "ivankristianto/phpwhois": "<=4.3", @@ -8558,58 +9571,74 @@ "kitodo/presentation": "<3.1.2", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", - "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.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.49|>=5.6,<5.6.30|>=6,<6.18.34|>=7,<7.23.2", + "laravel/framework": "<6.20.14|>=7,<7.30.4|>=8,<8.24", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "league/commonmark": "<0.18.3", "librenms/librenms": "<1.53", + "livewire/livewire": ">2.2.4,<2.2.6", "magento/community-edition": ">=2,<2.2.10|>=2.3,<2.3.3", "magento/magento1ce": "<1.9.4.3", "magento/magento1ee": ">=1,<1.14.4.3", "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2-p.2", "marcwillmann/turn": "<0.3.3", + "mautic/core": "<2.16.5|>=3,<3.2.4|= 2.13.1", + "mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35", "mittwald/typo3_forum": "<1.2.1", "monolog/monolog": ">=1.8,<1.12", "namshi/jose": "<2.2", + "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", + "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nystudio107/craft-seomatic": "<3.3", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", - "october/backend": ">=1.0.319,<1.0.467", - "october/cms": ">=1.0.319,<1.0.466", + "october/backend": ">=1.0.319,<1.0.470", + "october/cms": "= 1.0.469|>=1.0.319,<1.0.469", "october/october": ">=1.0.319,<1.0.466", - "october/rain": ">=1.0.319,<1.0.468", + "october/rain": "<1.0.472|>=1.1,<1.1.2", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", "openid/php-openid": "<2.3", + "openmage/magento-lts": "<19.4.8|>=20,<20.0.4", + "orchid/platform": ">=9,<9.4.4", "oro/crm": ">=1.7,<1.7.4", "oro/platform": ">=1.7,<1.7.4", "padraic/humbug_get_contents": "<1.1.2", "pagarme/pagarme-php": ">=0,<3", "paragonie/random_compat": "<2", + "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", - "pear/archive_tar": "<1.4.4", + "pear/archive_tar": "<1.4.12", + "personnummer/personnummer": "<3.0.2", "phpfastcache/phpfastcache": ">=5,<5.0.13", "phpmailer/phpmailer": "<6.1.6", "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<4.9.2", + "phpmyadmin/phpmyadmin": "<4.9.6|>=5,<5.0.3", "phpoffice/phpexcel": "<1.8.2", - "phpoffice/phpspreadsheet": "<1.8", + "phpoffice/phpspreadsheet": "<1.16", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", "pimcore/pimcore": "<6.3", + "pocketmine/pocketmine-mp": "<3.15.4", "prestashop/autoupgrade": ">=4,<4.10.1", + "prestashop/contactform": ">1.0.1,<4.3", "prestashop/gamification": "<2.3.2", + "prestashop/productcomments": ">=4,<4.2.1", "prestashop/ps_facetedsearch": "<3.4.1", "privatebin/privatebin": "<1.2.2|>=1.3,<1.3.2", "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", + "pterodactyl/panel": "<0.7.19|>=1-rc.0,<=1-rc.6", "pusher/pusher-php-server": "<2.2.1", "rainlab/debugbar-plugin": "<3.1", "robrichards/xmlseclibs": "<3.0.4", + "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", "scheb/two-factor-bundle": ">=0,<3.26|>=4,<4.11", "sensiolabs/connect": "<4.2.3", "serluck/phpwhois": "<=4.2.6", - "shopware/shopware": "<5.3.7", + "shopware/core": "<=6.3.4", + "shopware/platform": "<=6.3.5", + "shopware/shopware": "<5.6.9", "silverstripe/admin": ">=1.0.3,<1.0.4|>=1.1,<1.1.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", "silverstripe/cms": "<4.3.6|>=4.4,<4.4.4", @@ -8630,6 +9659,7 @@ "slim/slim": "<2.6", "smarty/smarty": "<3.1.33", "socalnick/scn-social-auth": "<1.15.2", + "socialiteproviders/steam": "<1.1", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", "ssddanbrown/bookstack": "<0.29.2", @@ -8640,8 +9670,8 @@ "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/resource-bundle": "<1.3.13|>=1.4,<1.4.6|>=1.5,<1.5.1|>=1.6,<1.6.3", - "sylius/sylius": "<1.3.16|>=1.4,<1.4.12|>=1.5,<1.5.9|>=1.6,<1.6.5", + "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", "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", "symbiote/silverstripe-versionedfiles": "<=2.0.3", "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", @@ -8650,7 +9680,7 @@ "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/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.3.8", + "symfony/http-kernel": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", "symfony/mime": ">=4.3,<4.3.8", "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", @@ -8665,7 +9695,7 @@ "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", "symfony/serializer": ">=2,<2.0.11", - "symfony/symfony": ">=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/symfony": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.4.13|>=5,<5.1.5", "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", @@ -8679,19 +9709,21 @@ "titon/framework": ">=0,<9.9.99", "truckersmp/phpwhois": "<=4.3.1", "twig/twig": "<1.38|>=2,<2.7", - "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.30|>=9,<9.5.20|>=10,<10.4.6", - "typo3/cms-core": ">=8,<8.7.30|>=9,<9.5.20|>=10,<10.4.6", + "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.23|>=10,<10.4.10", + "typo3/cms-core": ">=8,<8.7.38|>=9,<9.5.23|>=10,<10.4.10", "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5", "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", + "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", "ua-parser/uap-php": "<3.8", "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", + "vrana/adminer": "<4.7.9", "wallabag/tcpdf": "<6.2.22", "willdurand/js-translation-bundle": "<2.1.1", "yii2mod/yii2-cms": "<1.9.2", "yiisoft/yii": ">=1.1.14,<1.1.15", - "yiisoft/yii2": "<2.0.15", + "yiisoft/yii2": "<2.0.38", "yiisoft/yii2-bootstrap": "<2.0.4", "yiisoft/yii2-dev": "<2.0.15", "yiisoft/yii2-elasticsearch": "<2.0.5", @@ -8743,41 +9775,46 @@ } ], "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", - "time": "2020-08-08T10:05:44+00:00" + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "type": "tidelift" + } + ], + "time": "2021-02-18T21:02:27+00:00" }, { "name": "symfony/browser-kit", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "f53310646af9901292488b2ff36e26ea10f545f5" + "reference": "b03b2057ed53ee4eab2e8f372084d7722b7b8ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/f53310646af9901292488b2ff36e26ea10f545f5", - "reference": "f53310646af9901292488b2ff36e26ea10f545f5", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/b03b2057ed53ee4eab2e8f372084d7722b7b8ffd", + "reference": "b03b2057ed53ee4eab2e8f372084d7722b7b8ffd", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/dom-crawler": "^3.4|^4.0|^5.0" + "php": ">=7.2.5", + "symfony/dom-crawler": "^4.4|^5.0" }, "require-dev": { - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/mime": "^4.3|^5.0", - "symfony/process": "^3.4|^4.0|^5.0" + "symfony/css-selector": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0" }, "suggest": { "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\BrowserKit\\": "" @@ -8800,33 +9837,42 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony BrowserKit Component", + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", - "time": "2020-05-22T17:28:00+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T12:56:27+00:00" }, { "name": "symfony/css-selector", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "bf17dc9f6ce144e41f786c32435feea4d8e11dcc" + "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/bf17dc9f6ce144e41f786c32435feea4d8e11dcc", - "reference": "bf17dc9f6ce144e41f786c32435feea4d8e11dcc", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f", + "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\CssSelector\\": "" @@ -8853,50 +9899,59 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony CssSelector Component", + "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", - "time": "2020-07-05T09:39:30+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/debug-bundle", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/debug-bundle.git", - "reference": "12a020d14b4f6f3a5cfb46cd83836b78be036210" + "reference": "ec21bd26d24dab02ac40e4bec362b3f4032486e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/12a020d14b4f6f3a5cfb46cd83836b78be036210", - "reference": "12a020d14b4f6f3a5cfb46cd83836b78be036210", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/ec21bd26d24dab02ac40e4bec362b3f4032486e8", + "reference": "ec21bd26d24dab02ac40e4bec362b3f4032486e8", "shasum": "" }, "require": { "ext-xml": "*", - "php": ">=7.1.3", - "symfony/http-kernel": "^3.4|^4.0|^5.0", - "symfony/twig-bridge": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.1.1|^5.0" + "php": ">=7.2.5", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/twig-bridge": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "conflict": { - "symfony/config": "<4.2", - "symfony/dependency-injection": "<3.4" + "symfony/config": "<4.4", + "symfony/dependency-injection": "<5.2" }, "require-dev": { - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/web-profiler-bundle": "^3.4|^4.0|^5.0" + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/web-profiler-bundle": "^4.4|^5.0" }, "suggest": { "symfony/config": "For service container configuration", "symfony/dependency-injection": "For using as a service from the container" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\DebugBundle\\": "" @@ -8919,45 +9974,55 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony DebugBundle", + "description": "Provides a tight integration of the Symfony Debug component into the Symfony full-stack framework", "homepage": "https://symfony.com", - "time": "2020-05-20T08:37:50+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-10T16:30:10+00:00" }, { "name": "symfony/dom-crawler", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "72b3a65ddd5052cf6d65eac6669748ed311f39bf" + "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/72b3a65ddd5052cf6d65eac6669748ed311f39bf", - "reference": "72b3a65ddd5052cf6d65eac6669748ed311f39bf", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/5d89ceb53ec65e1973a555072fac8ed5ecad3384", + "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "conflict": { "masterminds/html5": "<2.6" }, "require-dev": { "masterminds/html5": "^2.6", - "symfony/css-selector": "^3.4|^4.0|^5.0" + "symfony/css-selector": "^4.4|^5.0" }, "suggest": { "symfony/css-selector": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\DomCrawler\\": "" @@ -8980,31 +10045,46 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony DomCrawler Component", + "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", - "time": "2020-07-23T08:31:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/maker-bundle", - "version": "v1.20.0", + "version": "v1.29.1", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "b048c7b2be5bce9024ae3b0db97d44a107029c27" + "reference": "313b5669a5370bf36cd34fa8f5b5bbbfa5fb8aa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/b048c7b2be5bce9024ae3b0db97d44a107029c27", - "reference": "b048c7b2be5bce9024ae3b0db97d44a107029c27", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/313b5669a5370bf36cd34fa8f5b5bbbfa5fb8aa8", + "reference": "313b5669a5370bf36cd34fa8f5b5bbbfa5fb8aa8", "shasum": "" }, "require": { - "doctrine/inflector": "^1.2", + "doctrine/inflector": "^1.2|^2.0", "nikic/php-parser": "^4.0", - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/config": "^3.4|^4.0|^5.0", "symfony/console": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/deprecation-contracts": "^2.2", "symfony/filesystem": "^3.4|^4.0|^5.0", "symfony/finder": "^3.4|^4.0|^5.0", "symfony/framework-bundle": "^3.4|^4.0|^5.0", @@ -9025,7 +10105,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "1.0-dev" } }, "autoload": { @@ -9051,20 +10131,34 @@ "scaffold", "scaffolding" ], - "time": "2020-07-14T11:22:04+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-10T19:21:31+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v5.1.3", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "964bd57046dfa48687e1412fe5f8006adfcb9675" + "reference": "587f2b6bbcda8c473b91c18165958ffbb8af3c4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/964bd57046dfa48687e1412fe5f8006adfcb9675", - "reference": "964bd57046dfa48687e1412fe5f8006adfcb9675", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/587f2b6bbcda8c473b91c18165958ffbb8af3c4c", + "reference": "587f2b6bbcda8c473b91c18165958ffbb8af3c4c", "shasum": "" }, "require": { @@ -9073,6 +10167,10 @@ "conflict": { "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" }, + "require-dev": { + "symfony/deprecation-contracts": "^2.1", + "symfony/error-handler": "^4.4|^5.0" + }, "suggest": { "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" }, @@ -9081,9 +10179,6 @@ ], "type": "symfony-bridge", "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - }, "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" @@ -9114,50 +10209,59 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony PHPUnit Bridge", + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", - "time": "2020-07-23T09:26:24+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-25T13:54:05+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v4.4.11", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "c946a250ac41542c481265d8e958d62cf5a172c9" + "reference": "4b28c24db64156ad892300be7fae1978bed075ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/c946a250ac41542c481265d8e958d62cf5a172c9", - "reference": "c946a250ac41542c481265d8e958d62cf5a172c9", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/4b28c24db64156ad892300be7fae1978bed075ce", + "reference": "4b28c24db64156ad892300be7fae1978bed075ce", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/config": "^4.2|^5.0", - "symfony/framework-bundle": "^4.4|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/routing": "^4.3|^5.0", - "symfony/twig-bundle": "^4.2|^5.0", - "twig/twig": "^1.41|^2.10|^3.0" + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0", + "symfony/framework-bundle": "^5.1", + "symfony/http-kernel": "^5.2", + "symfony/routing": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "twig/twig": "^2.13|^3.0.4" }, "conflict": { - "symfony/form": "<4.3", - "symfony/messenger": "<4.2" + "symfony/dependency-injection": "<5.2", + "symfony/form": "<4.4", + "symfony/messenger": "<4.4" }, "require-dev": { - "symfony/browser-kit": "^4.3|^5.0", - "symfony/console": "^4.3|^5.0", - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/stopwatch": "^3.4|^4.0|^5.0" + "symfony/browser-kit": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/css-selector": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\WebProfilerBundle\\": "" @@ -9180,20 +10284,34 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony WebProfilerBundle", + "description": "Provides a development tool that gives detailed information about the execution of any request", "homepage": "https://symfony.com", - "time": "2020-07-23T08:31:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" } ], "aliases": [], - "minimum-stability": "stable", + "minimum-stability": "dev", "stability-flags": { "roave/security-advisories": 20 }, - "prefer-stable": false, + "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.3", + "php": ">=7.2.5", "ext-ctype": "*", "ext-iconv": "*" }, diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml index 67d71ddd..0d0694c1 100644 --- a/config/packages/doctrine.yaml +++ b/config/packages/doctrine.yaml @@ -4,7 +4,7 @@ doctrine: # IMPORTANT: You MUST configure your server version, # either here or in the DATABASE_URL env var (see .env file) - #server_version: '5.7' + #server_version: '13' orm: auto_generate_proxy_classes: true naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware diff --git a/config/packages/elao_enum.yaml b/config/packages/elao_enum.yaml index a05b1037..c74df974 100644 --- a/config/packages/elao_enum.yaml +++ b/config/packages/elao_enum.yaml @@ -1,6 +1,9 @@ elao_enum: doctrine: types: - App\Entity\Mod\Enum\ModTypeEnum: mod_type_enum - App\Entity\Mod\Enum\ModStatusEnum: mod_status_enum - App\Entity\Mod\Enum\ModSourceEnum: mod_source_enum + mod_type_enum: + class: App\Entity\Mod\Enum\ModTypeEnum + mod_status_enum: + class: App\Entity\Mod\Enum\ModStatusEnum + mod_source_enum: + class: App\Entity\Mod\Enum\ModSourceEnum diff --git a/config/packages/notifier.yaml b/config/packages/notifier.yaml new file mode 100644 index 00000000..3984a48d --- /dev/null +++ b/config/packages/notifier.yaml @@ -0,0 +1,16 @@ +framework: + notifier: + #chatter_transports: + # slack: '%env(SLACK_DSN)%' + # telegram: '%env(TELEGRAM_DSN)%' + #texter_transports: + # twilio: '%env(TWILIO_DSN)%' + # nexmo: '%env(NEXMO_DSN)%' + channel_policy: + # use chat/slack, chat/telegram, sms/twilio or sms/nexmo + urgent: ['email'] + high: ['email'] + medium: ['email'] + low: ['email'] + admin_recipients: + - { email: admin@example.com } diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml index 7e977620..b45c1cec 100644 --- a/config/packages/routing.yaml +++ b/config/packages/routing.yaml @@ -1,3 +1,7 @@ framework: router: utf8: true + + # Configure how to generate URLs in non-HTTP contexts, such as CLI commands. + # See https://symfony.com/doc/current/routing.html#generating-urls-in-commands + #default_uri: http://localhost diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 95325ebd..3f48383c 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -13,7 +13,8 @@ security: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: - anonymous: lazy + anonymous: true + lazy: true remember_me: secret: '%kernel.secret%' lifetime: 604800 # 1 week in seconds diff --git a/config/preload.php b/config/preload.php new file mode 100644 index 00000000..7cbe578d --- /dev/null +++ b/config/preload.php @@ -0,0 +1,7 @@ + + diff --git a/public/index.php b/public/index.php index 912c45a2..52ca8cc7 100644 --- a/public/index.php +++ b/public/index.php @@ -3,10 +3,13 @@ declare(strict_types=1); use App\Kernel; +use Symfony\Component\Dotenv\Dotenv; use Symfony\Component\ErrorHandler\Debug; use Symfony\Component\HttpFoundation\Request; -require dirname(__DIR__).'/config/bootstrap.php'; +require dirname(__DIR__).'/vendor/autoload.php'; + +(new Dotenv())->bootEnv(dirname(__DIR__).'/.env'); if ($_SERVER['APP_DEBUG']) { umask(0000); @@ -14,14 +17,6 @@ Debug::enable(); } -if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) { - Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); -} - -if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) { - Request::setTrustedHosts([$trustedHosts]); -} - $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); $request = Request::createFromGlobals(); $response = $kernel->handle($request); diff --git a/src/Kernel.php b/src/Kernel.php index 07198545..e63175f5 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -5,52 +5,36 @@ namespace App; use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; -use Symfony\Component\Config\Loader\LoaderInterface; -use Symfony\Component\Config\Resource\FileResource; -use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Symfony\Component\HttpKernel\Kernel as BaseKernel; -use Symfony\Component\Routing\RouteCollectionBuilder; +use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator; class Kernel extends BaseKernel { use MicroKernelTrait; - private const CONFIG_EXTS = '.{php,xml,yaml,yml}'; - - public function registerBundles(): iterable + protected function configureContainer(ContainerConfigurator $container): void { - $contents = require $this->getProjectDir().'/config/bundles.php'; - foreach ($contents as $class => $envs) { - if ($envs[$this->environment] ?? $envs['all'] ?? false) { - yield new $class(); - } + $container->import('../config/{packages}/*.yaml'); + $container->import('../config/{packages}/'.$this->environment.'/*.yaml'); + + if (is_file(\dirname(__DIR__).'/config/services.yaml')) { + $container->import('../config/services.yaml'); + $container->import('../config/{services}_'.$this->environment.'.yaml'); + } elseif (is_file($path = \dirname(__DIR__).'/config/services.php')) { + (require $path)($container->withPath($path), $this); } } - public function getProjectDir(): string - { - return \dirname(__DIR__); - } - - protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void + protected function configureRoutes(RoutingConfigurator $routes): void { - $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php')); - $container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug); - $container->setParameter('container.dumper.inline_factories', true); - $confDir = $this->getProjectDir().'/config'; - - $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob'); - $loader->load($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob'); - $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob'); - $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob'); - } - - protected function configureRoutes(RouteCollectionBuilder $routes): void - { - $confDir = $this->getProjectDir().'/config'; + $routes->import('../config/{routes}/'.$this->environment.'/*.yaml'); + $routes->import('../config/{routes}/*.yaml'); - $routes->import($confDir.'/{routes}/'.$this->environment.'/*'.self::CONFIG_EXTS, '/', 'glob'); - $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob'); - $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob'); + if (is_file(\dirname(__DIR__).'/config/routes.yaml')) { + $routes->import('../config/routes.yaml'); + } elseif (is_file($path = \dirname(__DIR__).'/config/routes.php')) { + (require $path)($routes->withPath($path), $this); + } } } diff --git a/symfony.lock b/symfony.lock index c4cc296b..c434ee70 100644 --- a/symfony.lock +++ b/symfony.lock @@ -1,6 +1,6 @@ { "api-platform/api-pack": { - "version": "v1.2.2" + "version": "v1.3.0" }, "api-platform/core": { "version": "2.5", @@ -17,10 +17,10 @@ ] }, "brick/math": { - "version": "0.9.1" + "version": "0.9.2" }, "composer/package-versions-deprecated": { - "version": "1.10.99" + "version": "1.11.99.1" }, "dama/doctrine-test-bundle": { "version": "4.0", @@ -53,13 +53,13 @@ "version": "1.6.7" }, "doctrine/common": { - "version": "2.13.3" + "version": "3.1.1" }, "doctrine/data-fixtures": { - "version": "1.4.4" + "version": "1.5.0" }, "doctrine/dbal": { - "version": "2.10.2" + "version": "2.12.1" }, "doctrine/doctrine-bundle": { "version": "2.0", @@ -67,7 +67,7 @@ "repo": "github.com/symfony/recipes", "branch": "master", "version": "2.0", - "ref": "a9f2463b9f73efe74482f831f03a204a41328555" + "ref": "40631978d2c4adc9b11220b13eba539b727c36a8" }, "files": [ "config/packages/doctrine.yaml", @@ -105,31 +105,28 @@ "version": "1.1.1" }, "doctrine/inflector": { - "version": "1.4.3" + "version": "2.0.3" }, "doctrine/instantiator": { - "version": "1.3.1" + "version": "1.4.0" }, "doctrine/lexer": { "version": "1.2.1" }, "doctrine/migrations": { - "version": "2.2.1" + "version": "3.1.0" }, "doctrine/orm": { - "version": "v2.7.3" + "version": "2.8.2" }, "doctrine/persistence": { - "version": "1.3.8" - }, - "doctrine/reflection": { - "version": "1.2.1" + "version": "2.1.0" }, "doctrine/sql-formatter": { "version": "1.1.1" }, "egulias/email-validator": { - "version": "2.1.19" + "version": "2.1.25" }, "elao/enum": { "version": "1.7", @@ -147,7 +144,10 @@ "version": "1.7.4" }, "fig/link-util": { - "version": "1.1.1" + "version": "1.1.2" + }, + "friendsofphp/proxy-manager-lts": { + "version": "v1.0.3" }, "friendsofsymfony/jsrouting-bundle": { "version": "2.3", @@ -171,10 +171,10 @@ "version": "1.1.3" }, "guzzlehttp/promises": { - "version": "v1.3.1" + "version": "1.4.0" }, "guzzlehttp/psr7": { - "version": "1.6.1" + "version": "1.7.0" }, "knpuniversity/oauth2-client-bundle": { "version": "1.20", @@ -189,22 +189,22 @@ ] }, "laminas/laminas-code": { - "version": "3.4.1" + "version": "4.0.0" }, "laminas/laminas-eventmanager": { - "version": "3.2.1" + "version": "3.3.0" }, "laminas/laminas-zendframework-bridge": { - "version": "1.0.4" + "version": "1.1.1" }, "league/csv": { - "version": "9.6.0" + "version": "9.6.2" }, "league/oauth2-client": { - "version": "2.5.0" + "version": "2.6.0" }, "monolog/monolog": { - "version": "1.25.5" + "version": "2.2.0" }, "nelmio/cors-bundle": { "version": "1.5", @@ -212,7 +212,7 @@ "repo": "github.com/symfony/recipes", "branch": "master", "version": "1.5", - "ref": "6388de23860284db9acce0a7a5d9d13153bcb571" + "ref": "6bea22e6c564fba3a1391615cada1437d0bde39c" }, "files": [ "config/packages/nelmio_cors.yaml" @@ -222,11 +222,14 @@ "version": "v1.6.0" }, "nikic/php-parser": { - "version": "v4.8.0" + "version": "v4.10.4" }, "ocramius/proxy-manager": { "version": "2.8.0" }, + "paragonie/random_compat": { + "version": "v9.99.100" + }, "php": { "version": "7.4" }, @@ -234,10 +237,10 @@ "version": "2.2.0" }, "phpdocumentor/reflection-docblock": { - "version": "5.2.0" + "version": "5.2.2" }, "phpdocumentor/type-resolver": { - "version": "1.3.0" + "version": "1.4.0" }, "psr/cache": { "version": "1.0.1" @@ -245,6 +248,9 @@ "psr/container": { "version": "1.0.0" }, + "psr/event-dispatcher": { + "version": "1.0.0" + }, "psr/http-message": { "version": "1.0.1" }, @@ -258,10 +264,10 @@ "version": "3.0.3" }, "ramsey/collection": { - "version": "1.1.1" + "version": "1.1.3" }, "ramsey/uuid": { - "version": "3.9.3" + "version": "4.1.1" }, "ramsey/uuid-doctrine": { "version": "1.3", @@ -276,7 +282,7 @@ ] }, "restcord/restcord": { - "version": "0.3.2" + "version": "0.5.0" }, "roave/security-advisories": { "version": "dev-master" @@ -294,41 +300,37 @@ ] }, "spatie/calendar-links": { - "version": "1.4.0" + "version": "1.4.2" }, "symfony/asset": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/browser-kit": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/cache": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/cache-contracts": { - "version": "v2.1.3" + "version": "v2.2.0" }, "symfony/config": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/console": { - "version": "4.4", + "version": "5.1", "recipe": { "repo": "github.com/symfony/recipes", "branch": "master", - "version": "4.4", - "ref": "ea8c0eda34fda57e7d5cd8cbd889e2a387e3472c" + "version": "5.1", + "ref": "c6d02bdfba9da13c22157520e32a602dbee8a75c" }, "files": [ - "bin/console", - "config/bootstrap.php" + "bin/console" ] }, "symfony/css-selector": { - "version": "v4.4.11" - }, - "symfony/debug": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/debug-bundle": { "version": "4.1", @@ -343,34 +345,37 @@ ] }, "symfony/dependency-injection": { - "version": "v4.4.11" + "version": "v5.2.3" + }, + "symfony/deprecation-contracts": { + "version": "v2.2.0" }, "symfony/doctrine-bridge": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/dom-crawler": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/dotenv": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/error-handler": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/event-dispatcher": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/event-dispatcher-contracts": { - "version": "v1.1.9" + "version": "v2.2.0" }, "symfony/expression-language": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/filesystem": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/finder": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/flex": { "version": "1.0", @@ -385,21 +390,21 @@ ] }, "symfony/form": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/framework-bundle": { - "version": "4.4", + "version": "5.2", "recipe": { "repo": "github.com/symfony/recipes", "branch": "master", - "version": "4.4", - "ref": "af2e2efad553bc959a0c61d9185e33ca9eec5c99" + "version": "5.2", + "ref": "6ec87563dcc85cd0c48856dcfbfc29610506d250" }, "files": [ - "config/bootstrap.php", "config/packages/cache.yaml", "config/packages/framework.yaml", "config/packages/test/framework.yaml", + "config/preload.php", "config/routes/dev/framework.yaml", "config/services.yaml", "public/index.php", @@ -408,22 +413,19 @@ ] }, "symfony/http-client": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/http-client-contracts": { - "version": "v2.1.3" + "version": "v2.3.1" }, "symfony/http-foundation": { - "version": "v5.0.7" + "version": "v5.2.3" }, "symfony/http-kernel": { - "version": "v4.4.11" - }, - "symfony/inflector": { - "version": "v5.0.7" + "version": "v5.2.3" }, "symfony/intl": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/mailer": { "version": "4.3", @@ -447,10 +449,10 @@ } }, "symfony/mime": { - "version": "v5.0.7" + "version": "v5.2.3" }, "symfony/monolog-bridge": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/monolog-bundle": { "version": "3.3", @@ -467,16 +469,31 @@ "config/packages/test/monolog.yaml" ] }, + "symfony/notifier": { + "version": "5.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.0", + "ref": "c31585e252b32fe0e1f30b1f256af553f4a06eb9" + }, + "files": [ + "config/packages/notifier.yaml" + ] + }, "symfony/options-resolver": { - "version": "v4.4.11" + "version": "v5.2.3" + }, + "symfony/orm-pack": { + "version": "v2.1.0" }, "symfony/phpunit-bridge": { - "version": "4.3", + "version": "5.1", "recipe": { "repo": "github.com/symfony/recipes", "branch": "master", - "version": "4.3", - "ref": "6d0e35f749d5f4bfe1f011762875275cd3f9874f" + "version": "5.1", + "ref": "bf16921ef8309a81d9f046e9b6369c46bcbd031f" }, "files": [ ".env.test", @@ -486,45 +503,45 @@ ] }, "symfony/polyfill-intl-grapheme": { - "version": "v1.18.1" + "version": "v1.22.1" }, "symfony/polyfill-intl-icu": { - "version": "v1.18.1" + "version": "v1.22.1" }, "symfony/polyfill-intl-idn": { - "version": "v1.18.1" + "version": "v1.22.1" }, "symfony/polyfill-intl-normalizer": { - "version": "v1.18.1" + "version": "v1.22.1" }, "symfony/polyfill-mbstring": { - "version": "v1.18.1" - }, - "symfony/polyfill-php72": { - "version": "v1.18.1" + "version": "v1.22.1" }, "symfony/polyfill-php73": { - "version": "v1.18.1" + "version": "v1.22.1" }, "symfony/polyfill-php80": { - "version": "v1.18.1" + "version": "v1.22.1" }, "symfony/process": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/property-access": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/property-info": { - "version": "v4.4.11" + "version": "v5.2.3" + }, + "symfony/proxy-manager-bridge": { + "version": "v5.2.3" }, "symfony/routing": { - "version": "4.2", + "version": "5.1", "recipe": { "repo": "github.com/symfony/recipes", "branch": "master", - "version": "4.2", - "ref": "683dcb08707ba8d41b7e34adb0344bfd68d248a7" + "version": "5.1", + "ref": "b4f3e7c95e38b606eef467e8a42a8408fc460c43" }, "files": [ "config/packages/prod/routing.yaml", @@ -533,40 +550,43 @@ ] }, "symfony/security-bundle": { - "version": "4.4", + "version": "5.1", "recipe": { "repo": "github.com/symfony/recipes", "branch": "master", - "version": "4.4", - "ref": "7b4408dc203049666fe23fabed23cbadc6d8440f" + "version": "5.1", + "ref": "0a4bae19389d3b9cba1ca0102e3b2bccea724603" }, "files": [ "config/packages/security.yaml" ] }, "symfony/security-core": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/security-csrf": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/security-guard": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/security-http": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/serializer": { - "version": "v4.4.11" + "version": "v5.2.3" + }, + "symfony/serializer-pack": { + "version": "v1.0.4" }, "symfony/service-contracts": { - "version": "v2.1.3" + "version": "v2.2.0" }, "symfony/stopwatch": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/string": { - "version": "v5.1.3" + "version": "v5.2.3" }, "symfony/translation": { "version": "3.3", @@ -582,18 +602,18 @@ ] }, "symfony/translation-contracts": { - "version": "v2.1.3" + "version": "v2.3.0" }, "symfony/twig-bridge": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/twig-bundle": { - "version": "4.4", + "version": "5.0", "recipe": { "repo": "github.com/symfony/recipes", "branch": "master", - "version": "4.4", - "ref": "15a41bbd66a1323d09824a189b485c126bbefa51" + "version": "5.0", + "ref": "fab9149bbaa4d5eca054ed93f9e1b66cc500895d" }, "files": [ "config/packages/test/twig.yaml", @@ -615,13 +635,13 @@ ] }, "symfony/var-dumper": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/var-exporter": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/web-link": { - "version": "v4.4.11" + "version": "v5.2.3" }, "symfony/web-profiler-bundle": { "version": "3.3", @@ -638,16 +658,19 @@ ] }, "symfony/webpack-encore-bundle": { - "version": "1.6", + "version": "1.9", "recipe": { "repo": "github.com/symfony/recipes", "branch": "master", - "version": "1.6", - "ref": "69e1d805ad95964088bd510c05995e87dc391564" + "version": "1.9", + "ref": "34a82422147bc632dec0db2676bf27aaaa582ba0" }, "files": [ - "assets/css/app.css", - "assets/js/app.js", + "assets/app.js", + "assets/bootstrap.js", + "assets/controllers.json", + "assets/controllers/hello_controller.js", + "assets/styles/app.css", "config/packages/assets.yaml", "config/packages/prod/webpack_encore.yaml", "config/packages/test/webpack_encore.yaml", @@ -657,25 +680,22 @@ ] }, "symfony/yaml": { - "version": "v4.4.11" + "version": "v5.2.3" }, "twig/extra-bundle": { - "version": "v3.0.5" + "version": "v3.3.0" }, "twig/intl-extra": { - "version": "v3.0.5" + "version": "v3.3.0" }, "twig/markdown-extra": { - "version": "v3.0.5" + "version": "v3.3.0" }, "twig/string-extra": { - "version": "v3.0.5" + "version": "v3.3.0" }, "twig/twig": { - "version": "v3.0.5" - }, - "webimpress/safe-writer": { - "version": "2.0.1" + "version": "v3.3.0" }, "webmozart/assert": { "version": "1.9.1" @@ -684,9 +704,9 @@ "version": "v1.1.0" }, "willdurand/negotiation": { - "version": "v2.3.1" + "version": "3.0.0" }, "wohali/oauth2-discord-new": { - "version": "v1.0.0" + "version": "1.1.0" } } From f4452494afbb5984e0369330f26b0a58499a1286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Thu, 18 Feb 2021 22:16:20 +0100 Subject: [PATCH 08/12] Fix deprecations --- phpunit.xml.dist | 1 + src/Repository/Mod/DirectoryModRepository.php | 2 +- src/Repository/Mod/ModRepository.php | 2 +- src/Repository/Mod/SteamWorkshopModRepository.php | 2 +- src/Repository/ModGroup/ModGroupRepository.php | 2 +- src/Repository/ModList/ModListRepository.php | 2 +- src/Repository/Permissions/PermissionsRepository.php | 2 +- src/Repository/Permissions/UserGroupPermissionsRepository.php | 2 +- src/Repository/Permissions/UserPermissionsRepository.php | 2 +- src/Repository/User/UserRepository.php | 2 +- src/Repository/UserGroup/UserGroupRepository.php | 2 +- src/Security/DiscordAuthenticator.php | 2 +- src/Security/Voter/Mod/CreateModVoter.php | 4 ++-- src/Security/Voter/Mod/DeleteModVoter.php | 4 ++-- src/Security/Voter/Mod/ListModsVoter.php | 4 ++-- src/Security/Voter/Mod/UpdateModVoter.php | 4 ++-- src/Security/Voter/ModGroup/CreateModGroupVoter.php | 4 ++-- src/Security/Voter/ModGroup/DeleteModGroupVoter.php | 4 ++-- src/Security/Voter/ModGroup/ListModGroupsVoter.php | 4 ++-- src/Security/Voter/ModGroup/UpdateModGroupVoter.php | 4 ++-- src/Security/Voter/ModList/ApproveModListVoter.php | 4 ++-- src/Security/Voter/ModList/CopyModListVoter.php | 4 ++-- src/Security/Voter/ModList/CreateModListVoter.php | 4 ++-- src/Security/Voter/ModList/DeleteModListVoter.php | 4 ++-- src/Security/Voter/ModList/DownloadModListVoter.php | 4 ++-- src/Security/Voter/ModList/ListModListsVoter.php | 4 ++-- src/Security/Voter/ModList/UpdateModListVoter.php | 4 ++-- src/Security/Voter/User/DeleteUserVoter.php | 4 ++-- src/Security/Voter/User/ListUsersVoter.php | 4 ++-- src/Security/Voter/User/ManageUserPermissionsVoter.php | 4 ++-- src/Security/Voter/UserGroup/CreateUserGroupVoter.php | 4 ++-- src/Security/Voter/UserGroup/DeleteUserGroupVoter.php | 4 ++-- src/Security/Voter/UserGroup/ListUserGroupsVoter.php | 4 ++-- src/Security/Voter/UserGroup/UpdateUserGroupVoter.php | 4 ++-- 34 files changed, 56 insertions(+), 55 deletions(-) diff --git a/phpunit.xml.dist b/phpunit.xml.dist index a72066b3..c51958e1 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -10,6 +10,7 @@ + diff --git a/src/Repository/Mod/DirectoryModRepository.php b/src/Repository/Mod/DirectoryModRepository.php index 39adf4a2..e44e8890 100644 --- a/src/Repository/Mod/DirectoryModRepository.php +++ b/src/Repository/Mod/DirectoryModRepository.php @@ -6,7 +6,7 @@ use App\Entity\Mod\DirectoryMod; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|DirectoryMod find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/Mod/ModRepository.php b/src/Repository/Mod/ModRepository.php index f13dd0d6..aeb5f07f 100644 --- a/src/Repository/Mod/ModRepository.php +++ b/src/Repository/Mod/ModRepository.php @@ -13,9 +13,9 @@ use App\Entity\ModList\ModList; use App\Entity\ModList\ModListInterface; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\QueryBuilder; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|ModInterface find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/Mod/SteamWorkshopModRepository.php b/src/Repository/Mod/SteamWorkshopModRepository.php index 32d141f7..894fd106 100644 --- a/src/Repository/Mod/SteamWorkshopModRepository.php +++ b/src/Repository/Mod/SteamWorkshopModRepository.php @@ -6,7 +6,7 @@ use App\Entity\Mod\SteamWorkshopMod; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|SteamWorkshopMod find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/ModGroup/ModGroupRepository.php b/src/Repository/ModGroup/ModGroupRepository.php index a84f3fe1..b033c3c7 100644 --- a/src/Repository/ModGroup/ModGroupRepository.php +++ b/src/Repository/ModGroup/ModGroupRepository.php @@ -7,7 +7,7 @@ use App\Entity\ModGroup\ModGroup; use App\Entity\ModGroup\ModGroupInterface; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|ModGroupInterface find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/ModList/ModListRepository.php b/src/Repository/ModList/ModListRepository.php index d6e2406a..1ca700a9 100644 --- a/src/Repository/ModList/ModListRepository.php +++ b/src/Repository/ModList/ModListRepository.php @@ -8,7 +8,7 @@ use App\Entity\ModList\ModList; use App\Entity\ModList\ModListInterface; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|ModListInterface find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/Permissions/PermissionsRepository.php b/src/Repository/Permissions/PermissionsRepository.php index ed8a2ac5..d47891a0 100644 --- a/src/Repository/Permissions/PermissionsRepository.php +++ b/src/Repository/Permissions/PermissionsRepository.php @@ -7,7 +7,7 @@ use App\Entity\Permissions\AbstractPermissions; use App\Entity\Permissions\PermissionsInterface; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|PermissionsInterface find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/Permissions/UserGroupPermissionsRepository.php b/src/Repository/Permissions/UserGroupPermissionsRepository.php index 9ee372eb..58a4df8d 100644 --- a/src/Repository/Permissions/UserGroupPermissionsRepository.php +++ b/src/Repository/Permissions/UserGroupPermissionsRepository.php @@ -7,7 +7,7 @@ use App\Entity\Permissions\PermissionsInterface; use App\Entity\Permissions\UserGroupPermissions; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|PermissionsInterface find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/Permissions/UserPermissionsRepository.php b/src/Repository/Permissions/UserPermissionsRepository.php index 2baabe4e..826e1557 100644 --- a/src/Repository/Permissions/UserPermissionsRepository.php +++ b/src/Repository/Permissions/UserPermissionsRepository.php @@ -7,7 +7,7 @@ use App\Entity\Permissions\PermissionsInterface; use App\Entity\Permissions\UserPermissions; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|PermissionsInterface find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/User/UserRepository.php b/src/Repository/User/UserRepository.php index 1b1c1ad7..96f0ad87 100644 --- a/src/Repository/User/UserRepository.php +++ b/src/Repository/User/UserRepository.php @@ -7,7 +7,7 @@ use App\Entity\User\User; use App\Entity\User\UserInterface; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|UserInterface find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Repository/UserGroup/UserGroupRepository.php b/src/Repository/UserGroup/UserGroupRepository.php index b916a554..34b907a6 100644 --- a/src/Repository/UserGroup/UserGroupRepository.php +++ b/src/Repository/UserGroup/UserGroupRepository.php @@ -7,7 +7,7 @@ use App\Entity\UserGroup\UserGroup; use App\Entity\UserGroup\UserGroupInterface; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; /** * @method null|UserGroupInterface find($id, $lockMode = null, $lockVersion = null) diff --git a/src/Security/DiscordAuthenticator.php b/src/Security/DiscordAuthenticator.php index d14ad58d..d1efe09b 100644 --- a/src/Security/DiscordAuthenticator.php +++ b/src/Security/DiscordAuthenticator.php @@ -185,7 +185,7 @@ public function onAuthenticationFailure(Request $request, AuthenticationExceptio /** * {@inheritdoc} */ - public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey): ?RedirectResponse + public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $providerKey): ?RedirectResponse { $targetUrl = $this->router->generate(self::HOME_INDEX_PAGE_ROUTE_NAME); diff --git a/src/Security/Voter/Mod/CreateModVoter.php b/src/Security/Voter/Mod/CreateModVoter.php index 12997518..0f5606e3 100644 --- a/src/Security/Voter/Mod/CreateModVoter.php +++ b/src/Security/Voter/Mod/CreateModVoter.php @@ -15,7 +15,7 @@ class CreateModVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_CREATE === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/Mod/DeleteModVoter.php b/src/Security/Voter/Mod/DeleteModVoter.php index b1d67759..d688d605 100644 --- a/src/Security/Voter/Mod/DeleteModVoter.php +++ b/src/Security/Voter/Mod/DeleteModVoter.php @@ -16,7 +16,7 @@ class DeleteModVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_DELETE === $attribute && $subject instanceof ModInterface; } @@ -24,7 +24,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/Mod/ListModsVoter.php b/src/Security/Voter/Mod/ListModsVoter.php index bd0129e2..dd2815cd 100644 --- a/src/Security/Voter/Mod/ListModsVoter.php +++ b/src/Security/Voter/Mod/ListModsVoter.php @@ -15,7 +15,7 @@ class ListModsVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_LIST === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/Mod/UpdateModVoter.php b/src/Security/Voter/Mod/UpdateModVoter.php index ba314a52..3ef4e222 100644 --- a/src/Security/Voter/Mod/UpdateModVoter.php +++ b/src/Security/Voter/Mod/UpdateModVoter.php @@ -16,7 +16,7 @@ class UpdateModVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_UPDATE === $attribute && $subject instanceof ModInterface; } @@ -24,7 +24,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModGroup/CreateModGroupVoter.php b/src/Security/Voter/ModGroup/CreateModGroupVoter.php index 9217aeb7..33aeaa9d 100644 --- a/src/Security/Voter/ModGroup/CreateModGroupVoter.php +++ b/src/Security/Voter/ModGroup/CreateModGroupVoter.php @@ -15,7 +15,7 @@ class CreateModGroupVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_GROUP_CREATE === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModGroup/DeleteModGroupVoter.php b/src/Security/Voter/ModGroup/DeleteModGroupVoter.php index 59d16b2f..2d6efc06 100644 --- a/src/Security/Voter/ModGroup/DeleteModGroupVoter.php +++ b/src/Security/Voter/ModGroup/DeleteModGroupVoter.php @@ -16,7 +16,7 @@ class DeleteModGroupVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_GROUP_DELETE === $attribute && $subject instanceof ModGroupInterface; } @@ -24,7 +24,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModGroup/ListModGroupsVoter.php b/src/Security/Voter/ModGroup/ListModGroupsVoter.php index 332554d9..e9dd0dbe 100644 --- a/src/Security/Voter/ModGroup/ListModGroupsVoter.php +++ b/src/Security/Voter/ModGroup/ListModGroupsVoter.php @@ -15,7 +15,7 @@ class ListModGroupsVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_GROUP_LIST === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModGroup/UpdateModGroupVoter.php b/src/Security/Voter/ModGroup/UpdateModGroupVoter.php index 3b83e3d1..1187ecc5 100644 --- a/src/Security/Voter/ModGroup/UpdateModGroupVoter.php +++ b/src/Security/Voter/ModGroup/UpdateModGroupVoter.php @@ -16,7 +16,7 @@ class UpdateModGroupVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_GROUP_UPDATE === $attribute && $subject instanceof ModGroupInterface; } @@ -24,7 +24,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModList/ApproveModListVoter.php b/src/Security/Voter/ModList/ApproveModListVoter.php index 131ed92d..25bbcfb3 100644 --- a/src/Security/Voter/ModList/ApproveModListVoter.php +++ b/src/Security/Voter/ModList/ApproveModListVoter.php @@ -15,7 +15,7 @@ class ApproveModListVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_LIST_APPROVE === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModList/CopyModListVoter.php b/src/Security/Voter/ModList/CopyModListVoter.php index f09a97fc..6159466d 100644 --- a/src/Security/Voter/ModList/CopyModListVoter.php +++ b/src/Security/Voter/ModList/CopyModListVoter.php @@ -16,7 +16,7 @@ class CopyModListVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_LIST_COPY === $attribute && $subject instanceof ModListInterface; } @@ -24,7 +24,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModList/CreateModListVoter.php b/src/Security/Voter/ModList/CreateModListVoter.php index 45ea2853..cef8d602 100644 --- a/src/Security/Voter/ModList/CreateModListVoter.php +++ b/src/Security/Voter/ModList/CreateModListVoter.php @@ -15,7 +15,7 @@ class CreateModListVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_LIST_CREATE === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModList/DeleteModListVoter.php b/src/Security/Voter/ModList/DeleteModListVoter.php index 116cfdab..eff2599a 100644 --- a/src/Security/Voter/ModList/DeleteModListVoter.php +++ b/src/Security/Voter/ModList/DeleteModListVoter.php @@ -17,7 +17,7 @@ class DeleteModListVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_LIST_DELETE === $attribute && $subject instanceof ModListInterface; } @@ -25,7 +25,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModList/DownloadModListVoter.php b/src/Security/Voter/ModList/DownloadModListVoter.php index ee87e20d..17e695ee 100644 --- a/src/Security/Voter/ModList/DownloadModListVoter.php +++ b/src/Security/Voter/ModList/DownloadModListVoter.php @@ -17,7 +17,7 @@ class DownloadModListVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_LIST_DOWNLOAD === $attribute && $subject instanceof ModListInterface; } @@ -25,7 +25,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModList/ListModListsVoter.php b/src/Security/Voter/ModList/ListModListsVoter.php index a4e01355..0a5cd748 100644 --- a/src/Security/Voter/ModList/ListModListsVoter.php +++ b/src/Security/Voter/ModList/ListModListsVoter.php @@ -15,7 +15,7 @@ class ListModListsVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_LIST_LIST === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/ModList/UpdateModListVoter.php b/src/Security/Voter/ModList/UpdateModListVoter.php index 9e50c547..3a0a16fe 100644 --- a/src/Security/Voter/ModList/UpdateModListVoter.php +++ b/src/Security/Voter/ModList/UpdateModListVoter.php @@ -17,7 +17,7 @@ class UpdateModListVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::MOD_LIST_UPDATE === $attribute && $subject instanceof ModListInterface; } @@ -25,7 +25,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/User/DeleteUserVoter.php b/src/Security/Voter/User/DeleteUserVoter.php index 4d10b68a..101a1621 100644 --- a/src/Security/Voter/User/DeleteUserVoter.php +++ b/src/Security/Voter/User/DeleteUserVoter.php @@ -15,7 +15,7 @@ class DeleteUserVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::USER_DELETE === $attribute && $subject instanceof UserInterface; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/User/ListUsersVoter.php b/src/Security/Voter/User/ListUsersVoter.php index e67afebc..49940f08 100644 --- a/src/Security/Voter/User/ListUsersVoter.php +++ b/src/Security/Voter/User/ListUsersVoter.php @@ -15,7 +15,7 @@ class ListUsersVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::USER_LIST === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/User/ManageUserPermissionsVoter.php b/src/Security/Voter/User/ManageUserPermissionsVoter.php index f9d12f84..7a9f9195 100644 --- a/src/Security/Voter/User/ManageUserPermissionsVoter.php +++ b/src/Security/Voter/User/ManageUserPermissionsVoter.php @@ -15,7 +15,7 @@ class ManageUserPermissionsVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::USER_PERMISSIONS_MANAGE === $attribute && $subject instanceof UserInterface; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/UserGroup/CreateUserGroupVoter.php b/src/Security/Voter/UserGroup/CreateUserGroupVoter.php index 814c2c87..504b5fa9 100644 --- a/src/Security/Voter/UserGroup/CreateUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/CreateUserGroupVoter.php @@ -15,7 +15,7 @@ class CreateUserGroupVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::USER_GROUP_CREATE === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php b/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php index 227e8349..93942006 100644 --- a/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php @@ -16,7 +16,7 @@ class DeleteUserGroupVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::USER_GROUP_DELETE === $attribute && $subject instanceof UserGroupInterface; } @@ -24,7 +24,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/UserGroup/ListUserGroupsVoter.php b/src/Security/Voter/UserGroup/ListUserGroupsVoter.php index 9bb2586f..d8ff8e40 100644 --- a/src/Security/Voter/UserGroup/ListUserGroupsVoter.php +++ b/src/Security/Voter/UserGroup/ListUserGroupsVoter.php @@ -15,7 +15,7 @@ class ListUserGroupsVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::USER_GROUP_LIST === $attribute; } @@ -23,7 +23,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); diff --git a/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php b/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php index 56c07b77..2a9f974d 100644 --- a/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php @@ -16,7 +16,7 @@ class UpdateUserGroupVoter extends AbstractVoter /** * {@inheritdoc} */ - protected function supports($attribute, $subject): bool + protected function supports(string $attribute, $subject): bool { return PermissionsEnum::USER_GROUP_UPDATE === $attribute && $subject instanceof UserGroupInterface; } @@ -24,7 +24,7 @@ protected function supports($attribute, $subject): bool /** * {@inheritdoc} */ - protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool { /** @var null|UserInterface $currentUser */ $currentUser = $token->getUser(); From 4e827993ace5cbb12258db1e9563312a1ba6e584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Thu, 18 Feb 2021 22:54:08 +0100 Subject: [PATCH 09/12] Fix code using 7.4 rules --- .php_cs.dist | 3 +++ Makefile | 4 ++-- composer.json | 2 +- composer.lock | 4 ++-- src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php | 4 +--- src/Command/PermissionsMakeAdminCommand.php | 4 +--- src/Form/Mod/ModFormType.php | 4 +--- .../ModListFormDtoDataTransformer.php | 4 +--- src/Form/ModList/ModListFormType.php | 12 +++--------- src/Security/DiscordAuthenticator.php | 2 ++ src/Security/Voter/AbstractVoter.php | 4 +--- src/Security/Voter/Mod/CreateModVoter.php | 4 +--- src/Security/Voter/Mod/DeleteModVoter.php | 4 +--- src/Security/Voter/Mod/ListModsVoter.php | 4 +--- src/Security/Voter/Mod/UpdateModVoter.php | 4 +--- src/Security/Voter/ModGroup/CreateModGroupVoter.php | 4 +--- src/Security/Voter/ModGroup/DeleteModGroupVoter.php | 4 +--- src/Security/Voter/ModGroup/ListModGroupsVoter.php | 4 +--- src/Security/Voter/ModGroup/UpdateModGroupVoter.php | 4 +--- src/Security/Voter/ModList/ApproveModListVoter.php | 4 +--- src/Security/Voter/ModList/CopyModListVoter.php | 4 +--- src/Security/Voter/ModList/CreateModListVoter.php | 4 +--- src/Security/Voter/ModList/DeleteModListVoter.php | 4 +--- src/Security/Voter/ModList/DownloadModListVoter.php | 4 +--- src/Security/Voter/ModList/ListModListsVoter.php | 4 +--- src/Security/Voter/ModList/UpdateModListVoter.php | 4 +--- src/Security/Voter/User/DeleteUserVoter.php | 4 +--- src/Security/Voter/User/ListUsersVoter.php | 4 +--- .../Voter/User/ManageUserPermissionsVoter.php | 4 +--- .../Voter/UserGroup/CreateUserGroupVoter.php | 4 +--- .../Voter/UserGroup/DeleteUserGroupVoter.php | 4 +--- src/Security/Voter/UserGroup/ListUserGroupsVoter.php | 4 +--- .../Voter/UserGroup/UpdateUserGroupVoter.php | 4 +--- src/Service/Mission/MissionClient.php | 12 ++---------- 34 files changed, 42 insertions(+), 105 deletions(-) diff --git a/.php_cs.dist b/.php_cs.dist index beff3457..08bf8054 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -23,12 +23,15 @@ return PhpCsFixer\Config::create() '@PHP71Migration' => true, '@PHP71Migration:risky' => true, '@PHP73Migration' => true, + '@PHP74Migration:risky' => true, + '@PHP74Migration' => true, 'php_unit_test_annotation' => [ 'style' => 'annotation', ], 'php_unit_method_casing' => false, 'phpdoc_to_comment' => false, + 'ordered_traits' => false, 'ordered_class_elements' => [ 'order' => [ 'use_trait', // traits diff --git a/Makefile b/Makefile index e4817e20..6eee9879 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,8 @@ ifeq ($(ci),true) endif cs: - docker run --rm -v $(CURDIR):/project -w /project jakzal/phpqa:1.42-php7.4-alpine php-cs-fixer fix ${dryrun} - docker run --rm -v $(CURDIR):/project -w /project jakzal/phpqa:1.42-php7.4-alpine phpstan analyse + docker run --rm -v $(CURDIR):/project -w /project jakzal/phpqa:1.50.1-php7.4-alpine php-cs-fixer fix ${dryrun} + docker run --rm -v $(CURDIR):/project -w /project jakzal/phpqa:1.50.1-php7.4-alpine phpstan analyse docker-compose exec -T php php bin/console lint:twig templates/ docker-compose exec -T php php bin/console lint:yaml --parse-tags config/ diff --git a/composer.json b/composer.json index 67e45d1b..8f7386ca 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "minimum-stability": "dev", "prefer-stable": true, "require": { - "php": ">=7.2.5", + "php": ">=7.4", "ext-ctype": "*", "ext-iconv": "*", "api-platform/api-pack": "^1.2", diff --git a/composer.lock b/composer.lock index a93ffb3d..1fa700b6 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": "491b6bf909e7c15d8deb5bacf56afcab", + "content-hash": "5651240791d0c2cfc2dd1c97b94ebdb8", "packages": [ { "name": "api-platform/api-pack", @@ -10311,7 +10311,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=7.2.5", + "php": ">=7.4", "ext-ctype": "*", "ext-iconv": "*" }, diff --git a/src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php b/src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php index e57ab4e3..dc9a8adb 100644 --- a/src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php +++ b/src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php @@ -43,9 +43,7 @@ protected function findImagesToCache(): array { $imagesIterator = (Finder::create())->in($this->backgroundImagesDirectory)->files()->getIterator(); - $images = array_map(static function (\SplFileInfo $imageFile) { - return $imageFile->getFilename(); - }, iterator_to_array($imagesIterator)); + $images = array_map(static fn (\SplFileInfo $imageFile) => $imageFile->getFilename(), iterator_to_array($imagesIterator)); return array_values($images); } diff --git a/src/Command/PermissionsMakeAdminCommand.php b/src/Command/PermissionsMakeAdminCommand.php index a34021dc..9c95c2db 100644 --- a/src/Command/PermissionsMakeAdminCommand.php +++ b/src/Command/PermissionsMakeAdminCommand.php @@ -64,9 +64,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int return 1; } - $allUsersNames = array_map(static function (User $user) { - return sprintf('%d (%s)', $user->getExternalId(), $user->getUsername()); - }, $allUsers); + $allUsersNames = array_map(static fn (User $user) => sprintf('%d (%s)', $user->getExternalId(), $user->getUsername()), $allUsers); $helper = $this->getHelper('question'); $question = new ChoiceQuestion('Please select user from the list', $allUsersNames); diff --git a/src/Form/Mod/ModFormType.php b/src/Form/Mod/ModFormType.php index 0b48da1b..233f7f0b 100644 --- a/src/Form/Mod/ModFormType.php +++ b/src/Form/Mod/ModFormType.php @@ -107,9 +107,7 @@ protected function addChangeStatusType(FormBuilderInterface $builder): void $canChangeStatus = AbstractVoter::userHasPermissions( $currentUser, - static function (PermissionsInterface $permissions) { - return $permissions->getModManagementPermissions()->canChangeStatus(); - } + static fn (PermissionsInterface $permissions) => $permissions->getModManagementPermissions()->canChangeStatus() ); if (!$canChangeStatus) { diff --git a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php index 9db1db4a..336444a1 100644 --- a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php +++ b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php @@ -45,9 +45,7 @@ public function transformToEntity(FormDtoInterface $formDto, EntityInterface $en $canUpdate = AbstractVoter::userHasPermissions( $currentUser, - static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canUpdate(); - } + static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canUpdate() ); // If user has permissions set selected user as owner. Otherwise assign current user. diff --git a/src/Form/ModList/ModListFormType.php b/src/Form/ModList/ModListFormType.php index 93532336..a7e4c290 100644 --- a/src/Form/ModList/ModListFormType.php +++ b/src/Form/ModList/ModListFormType.php @@ -103,9 +103,7 @@ protected function addOwnerType(FormBuilderInterface $builder): void $canUpdate = AbstractVoter::userHasPermissions( $currentUser, - static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canUpdate(); - } + static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canUpdate() ); // User cannot change Mod List owner if he doesn't have full update permissions granted @@ -127,9 +125,7 @@ static function (PermissionsInterface $permissions) { ->orderBy('u.username', 'ASC') ; }, - 'choice_label' => static function (UserInterface $user) { - return $user->getUsername(); - }, + 'choice_label' => static fn (UserInterface $user) => $user->getUsername(), ]; if (!$modListExists) { @@ -147,9 +143,7 @@ protected function addApprovedType(FormBuilderInterface $builder): void $canApprove = AbstractVoter::userHasPermissions( $currentUser, - static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canApprove(); - } + static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canApprove() ); if (!$canApprove) { diff --git a/src/Security/DiscordAuthenticator.php b/src/Security/DiscordAuthenticator.php index d1efe09b..da79d97d 100644 --- a/src/Security/DiscordAuthenticator.php +++ b/src/Security/DiscordAuthenticator.php @@ -215,8 +215,10 @@ protected function getRoleByName(array $roles, string $roleName): Role switch (\count($rolesFound)) { case 0: throw new RoleNotFoundException(sprintf('Role "%s" was not found!', $roleName)); + case 1: return $rolesFound[0]; + default: throw new MultipleRolesFound(sprintf('Multiple roles found by given name "%s"!', $roleName)); } diff --git a/src/Security/Voter/AbstractVoter.php b/src/Security/Voter/AbstractVoter.php index a3dbc0a4..3390d71c 100644 --- a/src/Security/Voter/AbstractVoter.php +++ b/src/Security/Voter/AbstractVoter.php @@ -15,9 +15,7 @@ public static function userHasPermissions(UserInterface $user, callable $permiss { return $permissionsCheck($user->getPermissions()) || (new ArrayCollection($user->getUserGroups()))->exists( - static function (int $index, UserGroupInterface $userGroup) use ($permissionsCheck) { - return $permissionsCheck($userGroup->getPermissions()); - } + static fn (int $index, UserGroupInterface $userGroup) => $permissionsCheck($userGroup->getPermissions()) ); } } diff --git a/src/Security/Voter/Mod/CreateModVoter.php b/src/Security/Voter/Mod/CreateModVoter.php index 0f5606e3..1879b5a9 100644 --- a/src/Security/Voter/Mod/CreateModVoter.php +++ b/src/Security/Voter/Mod/CreateModVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModManagementPermissions()->canCreate(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModManagementPermissions()->canCreate()); } } diff --git a/src/Security/Voter/Mod/DeleteModVoter.php b/src/Security/Voter/Mod/DeleteModVoter.php index d688d605..b3f77abd 100644 --- a/src/Security/Voter/Mod/DeleteModVoter.php +++ b/src/Security/Voter/Mod/DeleteModVoter.php @@ -32,8 +32,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModManagementPermissions()->canDelete(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModManagementPermissions()->canDelete()); } } diff --git a/src/Security/Voter/Mod/ListModsVoter.php b/src/Security/Voter/Mod/ListModsVoter.php index dd2815cd..893bbc41 100644 --- a/src/Security/Voter/Mod/ListModsVoter.php +++ b/src/Security/Voter/Mod/ListModsVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModManagementPermissions()->canList(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModManagementPermissions()->canList()); } } diff --git a/src/Security/Voter/Mod/UpdateModVoter.php b/src/Security/Voter/Mod/UpdateModVoter.php index 3ef4e222..820cb759 100644 --- a/src/Security/Voter/Mod/UpdateModVoter.php +++ b/src/Security/Voter/Mod/UpdateModVoter.php @@ -32,8 +32,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModManagementPermissions()->canUpdate(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModManagementPermissions()->canUpdate()); } } diff --git a/src/Security/Voter/ModGroup/CreateModGroupVoter.php b/src/Security/Voter/ModGroup/CreateModGroupVoter.php index 33aeaa9d..a124d08f 100644 --- a/src/Security/Voter/ModGroup/CreateModGroupVoter.php +++ b/src/Security/Voter/ModGroup/CreateModGroupVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModGroupManagementPermissions()->canCreate(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModGroupManagementPermissions()->canCreate()); } } diff --git a/src/Security/Voter/ModGroup/DeleteModGroupVoter.php b/src/Security/Voter/ModGroup/DeleteModGroupVoter.php index 2d6efc06..eb711482 100644 --- a/src/Security/Voter/ModGroup/DeleteModGroupVoter.php +++ b/src/Security/Voter/ModGroup/DeleteModGroupVoter.php @@ -32,8 +32,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModGroupManagementPermissions()->canDelete(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModGroupManagementPermissions()->canDelete()); } } diff --git a/src/Security/Voter/ModGroup/ListModGroupsVoter.php b/src/Security/Voter/ModGroup/ListModGroupsVoter.php index e9dd0dbe..23887bb2 100644 --- a/src/Security/Voter/ModGroup/ListModGroupsVoter.php +++ b/src/Security/Voter/ModGroup/ListModGroupsVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModGroupManagementPermissions()->canList(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModGroupManagementPermissions()->canList()); } } diff --git a/src/Security/Voter/ModGroup/UpdateModGroupVoter.php b/src/Security/Voter/ModGroup/UpdateModGroupVoter.php index 1187ecc5..aa79eb7a 100644 --- a/src/Security/Voter/ModGroup/UpdateModGroupVoter.php +++ b/src/Security/Voter/ModGroup/UpdateModGroupVoter.php @@ -32,8 +32,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModGroupManagementPermissions()->canUpdate(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModGroupManagementPermissions()->canUpdate()); } } diff --git a/src/Security/Voter/ModList/ApproveModListVoter.php b/src/Security/Voter/ModList/ApproveModListVoter.php index 25bbcfb3..a7adc08b 100644 --- a/src/Security/Voter/ModList/ApproveModListVoter.php +++ b/src/Security/Voter/ModList/ApproveModListVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canApprove(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canApprove()); } } diff --git a/src/Security/Voter/ModList/CopyModListVoter.php b/src/Security/Voter/ModList/CopyModListVoter.php index 6159466d..aa9c90b6 100644 --- a/src/Security/Voter/ModList/CopyModListVoter.php +++ b/src/Security/Voter/ModList/CopyModListVoter.php @@ -32,8 +32,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canCopy(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canCopy()); } } diff --git a/src/Security/Voter/ModList/CreateModListVoter.php b/src/Security/Voter/ModList/CreateModListVoter.php index cef8d602..e6b957ac 100644 --- a/src/Security/Voter/ModList/CreateModListVoter.php +++ b/src/Security/Voter/ModList/CreateModListVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canCreate(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canCreate()); } } diff --git a/src/Security/Voter/ModList/DeleteModListVoter.php b/src/Security/Voter/ModList/DeleteModListVoter.php index eff2599a..133abd66 100644 --- a/src/Security/Voter/ModList/DeleteModListVoter.php +++ b/src/Security/Voter/ModList/DeleteModListVoter.php @@ -37,9 +37,7 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ $modList = $subject; return $modList->getOwner() === $currentUser - || $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canDelete(); - }) + || $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canDelete()) ; } } diff --git a/src/Security/Voter/ModList/DownloadModListVoter.php b/src/Security/Voter/ModList/DownloadModListVoter.php index 17e695ee..6e379d00 100644 --- a/src/Security/Voter/ModList/DownloadModListVoter.php +++ b/src/Security/Voter/ModList/DownloadModListVoter.php @@ -40,9 +40,7 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ // Otherwise user needs to be logged-in and have "List" permission granted return $currentUser instanceof UserInterface - && $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canList(); - }) + && $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canList()) ; } } diff --git a/src/Security/Voter/ModList/ListModListsVoter.php b/src/Security/Voter/ModList/ListModListsVoter.php index 0a5cd748..d44815e0 100644 --- a/src/Security/Voter/ModList/ListModListsVoter.php +++ b/src/Security/Voter/ModList/ListModListsVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canList(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canList()); } } diff --git a/src/Security/Voter/ModList/UpdateModListVoter.php b/src/Security/Voter/ModList/UpdateModListVoter.php index 3a0a16fe..23762caf 100644 --- a/src/Security/Voter/ModList/UpdateModListVoter.php +++ b/src/Security/Voter/ModList/UpdateModListVoter.php @@ -37,9 +37,7 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ $modList = $subject; return $modList->getOwner() === $currentUser - || $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getModListManagementPermissions()->canUpdate(); - }) + || $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getModListManagementPermissions()->canUpdate()) ; } } diff --git a/src/Security/Voter/User/DeleteUserVoter.php b/src/Security/Voter/User/DeleteUserVoter.php index 101a1621..a26c0cc8 100644 --- a/src/Security/Voter/User/DeleteUserVoter.php +++ b/src/Security/Voter/User/DeleteUserVoter.php @@ -35,9 +35,7 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ $user = $subject; return $currentUser !== $user - && $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getUserManagementPermissions()->canDelete(); - }) + && $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getUserManagementPermissions()->canDelete()) ; } } diff --git a/src/Security/Voter/User/ListUsersVoter.php b/src/Security/Voter/User/ListUsersVoter.php index 49940f08..e31ddd6c 100644 --- a/src/Security/Voter/User/ListUsersVoter.php +++ b/src/Security/Voter/User/ListUsersVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getUserManagementPermissions()->canList(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getUserManagementPermissions()->canList()); } } diff --git a/src/Security/Voter/User/ManageUserPermissionsVoter.php b/src/Security/Voter/User/ManageUserPermissionsVoter.php index 7a9f9195..bad8faa2 100644 --- a/src/Security/Voter/User/ManageUserPermissionsVoter.php +++ b/src/Security/Voter/User/ManageUserPermissionsVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getUserManagementPermissions()->canManagePermissions(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getUserManagementPermissions()->canManagePermissions()); } } diff --git a/src/Security/Voter/UserGroup/CreateUserGroupVoter.php b/src/Security/Voter/UserGroup/CreateUserGroupVoter.php index 504b5fa9..8c77ef26 100644 --- a/src/Security/Voter/UserGroup/CreateUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/CreateUserGroupVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getUserGroupManagementPermissions()->canCreate(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getUserGroupManagementPermissions()->canCreate()); } } diff --git a/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php b/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php index 93942006..e9e52293 100644 --- a/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php @@ -32,8 +32,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getUserGroupManagementPermissions()->canDelete(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getUserGroupManagementPermissions()->canDelete()); } } diff --git a/src/Security/Voter/UserGroup/ListUserGroupsVoter.php b/src/Security/Voter/UserGroup/ListUserGroupsVoter.php index d8ff8e40..2afbc643 100644 --- a/src/Security/Voter/UserGroup/ListUserGroupsVoter.php +++ b/src/Security/Voter/UserGroup/ListUserGroupsVoter.php @@ -31,8 +31,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getUserGroupManagementPermissions()->canList(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getUserGroupManagementPermissions()->canList()); } } diff --git a/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php b/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php index 2a9f974d..fe4d26ec 100644 --- a/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php @@ -32,8 +32,6 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ return false; } - return $this->userHasPermissions($currentUser, static function (PermissionsInterface $permissions) { - return $permissions->getUserGroupManagementPermissions()->canUpdate(); - }); + return $this->userHasPermissions($currentUser, static fn (PermissionsInterface $permissions) => $permissions->getUserGroupManagementPermissions()->canUpdate()); } } diff --git a/src/Service/Mission/MissionClient.php b/src/Service/Mission/MissionClient.php index 6ed0e779..513c7977 100644 --- a/src/Service/Mission/MissionClient.php +++ b/src/Service/Mission/MissionClient.php @@ -60,11 +60,7 @@ public function getArchivedMissions(): array /** @var MissionDto[] $allMissions */ $allMissions = iterator_to_array($this->getMissions(true)); - return array_filter($allMissions, static function (MissionDto $mission) { - if (MissionStateEnum::ARCHIVED === $mission->getState()) { - return $mission; - } - }); + return array_filter($allMissions, static fn (MissionDto $mission) => MissionStateEnum::ARCHIVED === $mission->getState()); } /** @@ -75,10 +71,6 @@ public function getUpcomingMissions(): array /** @var MissionDto[] $allMissions */ $allMissions = iterator_to_array($this->getMissions(true)); - return array_filter($allMissions, static function (MissionDto $mission) { - if (MissionStateEnum::ARCHIVED !== $mission->getState()) { - return $mission; - } - }); + return array_filter($allMissions, static fn (MissionDto $mission) => MissionStateEnum::ARCHIVED !== $mission->getState()); } } From 86da04292cef13220d1a182408d8b393e0c6776c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Mon, 1 Mar 2021 22:49:05 +0100 Subject: [PATCH 10/12] Fix BC break for migrations --- config/packages/doctrine_migrations.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml index 61e66124..752065e4 100644 --- a/config/packages/doctrine_migrations.yaml +++ b/config/packages/doctrine_migrations.yaml @@ -3,3 +3,8 @@ doctrine_migrations: # namespace is arbitrary but should be different from App\Migrations # as migrations classes should NOT be autoloaded 'DoctrineMigrations': '%kernel.project_dir%/migrations' + + # https://github.com/doctrine/migrations/blob/3.0.x/UPGRADE.md + storage: + table_storage: + table_name: migration_versions From 396d2794ee779255a760270fc0469fb8e461a9a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Mon, 1 Mar 2021 23:57:33 +0100 Subject: [PATCH 11/12] Fix CI --- phpstan.neon.dist | 2 +- .../ModList/DataTransformer/ModListFormDtoDataTransformer.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 1c1dce8c..fd86b9b1 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -9,7 +9,7 @@ parameters: paths: - src symfony: - container_xml_path: '/project/var/cache/dev/srcApp_KernelDevDebugContainer.xml' + container_xml_path: '/project/var/cache/dev/App_KernelDevDebugContainer.xml' checkGenericClassInNonGenericObjectType: false checkMissingIterableValueType: false ignoreErrors: diff --git a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php index 336444a1..d368d9f5 100644 --- a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php +++ b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php @@ -15,7 +15,6 @@ use App\Form\RegisteredDataTransformerInterface; use App\Security\Voter\AbstractVoter; use Ramsey\Uuid\Uuid; -use RestCord\Interfaces\Permissions; use Symfony\Component\Security\Core\Security; class ModListFormDtoDataTransformer implements RegisteredDataTransformerInterface From c1fcaf897b077285e38cff166cdfa0986810696c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Mon, 1 Mar 2021 22:49:35 +0100 Subject: [PATCH 12/12] Add strong typing --- src/Api/Controller/GetModListByNameAction.php | 3 +- .../ModListDetailsOutputDataTransformer.php | 7 +-- src/Api/Dto/ModListDetailsOutput.php | 5 +- src/Api/Dto/ModListOutput.php | 23 ++------ src/Api/Dto/ModOutput.php | 53 ++++--------------- .../BackgroundImageCacheWarmer.php | 3 +- src/Command/ImportModListsCommand.php | 22 ++++---- src/Command/PermissionsMakeAdminCommand.php | 18 ++----- src/Controller/HomeController.php | 7 +-- src/Controller/ModController.php | 19 ++----- src/Controller/ModGroupController.php | 15 ++---- src/Controller/ModListController.php | 11 ++-- src/Controller/ModListPublicController.php | 7 +-- src/Controller/UserController.php | 7 +-- src/Controller/UserGroupController.php | 11 ++-- src/Entity/AbstractDescribedEntity.php | 3 +- src/Entity/AbstractEntity.php | 19 ++----- src/Entity/AbstractNamedEntity.php | 3 +- src/Entity/Mod/AbstractMod.php | 7 +-- src/Entity/Mod/DirectoryMod.php | 3 +- src/Entity/Mod/SteamWorkshopMod.php | 7 ++- src/Entity/ModGroup/ModGroup.php | 3 +- src/Entity/ModList/ModList.php | 19 ++----- .../Permissions/AbstractPermissions.php | 19 ++----- .../Mod/ModManagementPermissions.php | 3 +- .../ModList/ModListManagementPermissions.php | 7 +-- .../Traits/CreatePermissionTrait.php | 3 +- .../Traits/DeletePermissionTrait.php | 3 +- .../Traits/ListPermissionTrait.php | 3 +- .../Traits/UpdatePermissionTrait.php | 3 +- .../User/UserManagementPermissions.php | 3 +- src/Entity/User/User.php | 23 +++----- src/Entity/UserGroup/UserGroup.php | 7 +-- .../Doctrine/EntityBlameableSubscriber.php | 3 +- .../Doctrine/ModGroupUpdatedSubscriber.php | 7 +-- .../UserLocaleRequestSubscriber.php | 7 +-- src/Form/DataTransformerRegistry.php | 2 +- .../ModFormDtoDataTransformer.php | 3 +- src/Form/Mod/Dto/ModFormDto.php | 32 +++-------- src/Form/Mod/ModFormType.php | 3 +- src/Form/ModGroup/Dto/ModGroupFormDto.php | 13 ++--- .../ModListFormDtoDataTransformer.php | 3 +- src/Form/ModList/Dto/ModListFormDto.php | 30 +++-------- src/Form/ModList/ModListFormType.php | 3 +- .../User/UserManagementPermissionsType.php | 3 +- src/Form/UserGroup/Dto/UserGroupFormDto.php | 21 ++------ src/Security/DiscordAuthenticator.php | 25 +++------ .../Dto/ModCsvEntryDto.php | 19 ++----- .../LegacyModListImport/ModListImport.php | 19 ++----- src/Service/Mission/Dto/MissionDto.php | 35 ++++-------- src/Service/Mission/MissionClient.php | 3 +- src/Service/Mission/MissionStore.php | 3 +- .../Dto/SteamWorkshopItemInfoDto.php | 11 ++-- .../SteamWorkshop/SteamWorkshopClient.php | 3 +- src/Service/Version/VersionProvider.php | 7 +-- src/Twig/BackgroundImageExtension.php | 3 +- src/Twig/ImgproxyExtension.php | 11 ++-- src/Twig/UserExtension.php | 17 +++--- src/Twig/UtilsExtension.php | 7 +-- src/Twig/VersionExtension.php | 3 +- src/Validator/AbstractValidator.php | 3 +- .../Mod/SteamWorkshopArma3ModUrl.php | 11 ++-- .../Mod/SteamWorkshopArma3ModUrlValidator.php | 3 +- src/Validator/Mod/UniqueDirectoryMod.php | 7 +-- src/Validator/Mod/UniqueSteamWorkshopMod.php | 7 +-- src/Validator/ModGroup/UniqueModGroupName.php | 7 +-- src/Validator/ModList/UniqueModListName.php | 7 +-- .../UserGroup/UniqueUserGroupName.php | 7 +-- 68 files changed, 194 insertions(+), 503 deletions(-) diff --git a/src/Api/Controller/GetModListByNameAction.php b/src/Api/Controller/GetModListByNameAction.php index 87d02b9e..44d3934a 100644 --- a/src/Api/Controller/GetModListByNameAction.php +++ b/src/Api/Controller/GetModListByNameAction.php @@ -9,8 +9,7 @@ class GetModListByNameAction { - /** @var ModListRepository */ - protected $modListRepository; + protected ModListRepository $modListRepository; public function __construct(ModListRepository $modListRepository) { diff --git a/src/Api/DataTransformer/ModListDetailsOutputDataTransformer.php b/src/Api/DataTransformer/ModListDetailsOutputDataTransformer.php index ec3e4425..225bdfd4 100644 --- a/src/Api/DataTransformer/ModListDetailsOutputDataTransformer.php +++ b/src/Api/DataTransformer/ModListDetailsOutputDataTransformer.php @@ -14,11 +14,8 @@ class ModListDetailsOutputDataTransformer implements DataTransformerInterface { - /** @var ModOutputDataTransformer */ - protected $modDataTransformer; - - /** @var ModRepository */ - protected $modRepository; + protected ModOutputDataTransformer $modDataTransformer; + protected ModRepository $modRepository; public function __construct( ModOutputDataTransformer $modDataTransformer, diff --git a/src/Api/Dto/ModListDetailsOutput.php b/src/Api/Dto/ModListDetailsOutput.php index c4cf6231..c4415615 100644 --- a/src/Api/Dto/ModListDetailsOutput.php +++ b/src/Api/Dto/ModListDetailsOutput.php @@ -6,10 +6,7 @@ class ModListDetailsOutput extends ModListOutput { - /** - * @var ModOutput[] - */ - protected $mods = []; + protected array $mods = []; /** * @return ModOutput[] diff --git a/src/Api/Dto/ModListOutput.php b/src/Api/Dto/ModListOutput.php index c7e88556..a2acb01e 100644 --- a/src/Api/Dto/ModListOutput.php +++ b/src/Api/Dto/ModListOutput.php @@ -6,25 +6,10 @@ class ModListOutput { - /** - * @var null|string - */ - protected $id; - - /** - * @var null|string - */ - protected $name; - - /** - * @var null|\DateTimeInterface - */ - protected $createdAt; - - /** - * @var null|\DateTimeInterface - */ - protected $lastUpdatedAt; + protected ?string $id = null; + protected ?string $name = null; + protected ?\DateTimeInterface $createdAt = null; + protected ?\DateTimeInterface $lastUpdatedAt = null; public function getId(): ?string { diff --git a/src/Api/Dto/ModOutput.php b/src/Api/Dto/ModOutput.php index 3fffd23b..4d04b33c 100644 --- a/src/Api/Dto/ModOutput.php +++ b/src/Api/Dto/ModOutput.php @@ -6,50 +6,15 @@ class ModOutput { - /** - * @var null|string - */ - protected $id; - - /** - * @var null|string - */ - protected $name; - - /** - * @var null|\DateTimeInterface - */ - protected $createdAt; - - /** - * @var null|\DateTimeInterface - */ - protected $lastUpdatedAt; - - /** - * @var null|string - */ - protected $source; - - /** - * @var null|string - */ - protected $status; - - /** - * @var null|string - */ - protected $type; - - /** - * @var null|int - */ - protected $itemId; - - /** - * @var null|string - */ - protected $directory; + protected ?string $id = null; + protected ?string $name = null; + protected ?\DateTimeInterface $createdAt = null; + protected ?\DateTimeInterface $lastUpdatedAt = null; + protected ?string $source = null; + protected ?string $status = null; + protected ?string $type = null; + protected ?int $itemId = null; + protected ?string $directory = null; public function getId(): ?string { diff --git a/src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php b/src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php index dc9a8adb..63412bfc 100644 --- a/src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php +++ b/src/Cache/CacheWarmer/BackgroundImageCacheWarmer.php @@ -9,8 +9,7 @@ class BackgroundImageCacheWarmer extends CacheWarmer { - /** @var string */ - protected $backgroundImagesDirectory; + protected string $backgroundImagesDirectory; public function __construct(string $backgroundImagesDirectory) { diff --git a/src/Command/ImportModListsCommand.php b/src/Command/ImportModListsCommand.php index 5f7b9e04..90ae65c4 100644 --- a/src/Command/ImportModListsCommand.php +++ b/src/Command/ImportModListsCommand.php @@ -14,15 +14,8 @@ class ImportModListsCommand extends Command { public const DEFAULT_IMPORT_DIRECTORY = __DIR__.'/../../var/import'; - /** @var string */ - protected static $defaultName = 'app:import:modlists'; + protected ModListImport $modListImport; - /** @var ModListImport */ - protected $modListImport; - - /** - * @{@inheritdoc} - */ public function __construct(ModListImport $modListImport) { parent::__construct(); @@ -31,18 +24,25 @@ public function __construct(ModListImport $modListImport) } /** - * @{@inheritdoc} + * {@inheritdoc} */ protected function configure(): void { $this + ->setName('app:import:modlists') ->setDescription('Imports mods') - ->addOption('path', 'p', InputOption::VALUE_OPTIONAL, 'Path to directory with CSV files', self::DEFAULT_IMPORT_DIRECTORY) + ->addOption( + 'path', + 'p', + InputOption::VALUE_OPTIONAL, + 'Path to directory with CSV files', + self::DEFAULT_IMPORT_DIRECTORY + ) ; } /** - * @{@inheritdoc} + * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output): int { diff --git a/src/Command/PermissionsMakeAdminCommand.php b/src/Command/PermissionsMakeAdminCommand.php index 9c95c2db..72b76980 100644 --- a/src/Command/PermissionsMakeAdminCommand.php +++ b/src/Command/PermissionsMakeAdminCommand.php @@ -16,18 +16,9 @@ class PermissionsMakeAdminCommand extends Command { - /** @var string */ - protected static $defaultName = 'app:permissions:make-admin'; + protected EntityManagerInterface $entityManager; + protected UserRepository $userRepository; - /** @var EntityManagerInterface */ - protected $entityManager; - - /** @var UserRepository */ - protected $userRepository; - - /** - * @{@inheritdoc} - */ public function __construct(EntityManagerInterface $entityManager, UserRepository $userRepository) { parent::__construct(); @@ -37,18 +28,19 @@ public function __construct(EntityManagerInterface $entityManager, UserRepositor } /** - * @{@inheritdoc} + * {@inheritdoc} */ protected function configure(): void { $this + ->setName('app:permissions:make-admin') ->setDescription('Grants permissions to manage permissions to given user identified by Discord user id.') ->addArgument('discord_user_id', InputArgument::OPTIONAL, 'Discord user id (18-digits integer)') ; } /** - * @{@inheritdoc} + * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output): int { diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index a576f32a..2c7d6f1a 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -15,11 +15,8 @@ */ class HomeController extends AbstractController { - /** @var MissionClient */ - protected $missionClient; - - /** @var LoggerInterface */ - protected $logger; + protected MissionClient $missionClient; + protected LoggerInterface $logger; public function __construct(MissionClient $missionClient, LoggerInterface $logger) { diff --git a/src/Controller/ModController.php b/src/Controller/ModController.php index 068a4371..128b2d40 100644 --- a/src/Controller/ModController.php +++ b/src/Controller/ModController.php @@ -26,20 +26,11 @@ */ class ModController extends AbstractController { - /** @var EntityManagerInterface */ - protected $entityManager; - - /** @var ModRepository */ - protected $modRepository; - - /** @var ModGroupRepository */ - protected $modGroupRepository; - - /** @var ModListRepository */ - protected $modListRepository; - - /** @var DataTransformerRegistry */ - protected $dataTransformerRegistry; + protected EntityManagerInterface $entityManager; + protected ModRepository $modRepository; + protected ModGroupRepository $modGroupRepository; + protected ModListRepository $modListRepository; + protected DataTransformerRegistry $dataTransformerRegistry; public function __construct( EntityManagerInterface $entityManager, diff --git a/src/Controller/ModGroupController.php b/src/Controller/ModGroupController.php index 9e049a0c..af8013f9 100644 --- a/src/Controller/ModGroupController.php +++ b/src/Controller/ModGroupController.php @@ -25,17 +25,10 @@ */ class ModGroupController extends AbstractController { - /** @var EntityManagerInterface */ - protected $entityManager; - - /** @var ModGroupRepository */ - protected $modGroupRepository; - - /** @var ModListRepository */ - protected $modListRepository; - - /** @var DataTransformerRegistry */ - protected $dataTransformerRegistry; + protected EntityManagerInterface $entityManager; + protected ModGroupRepository $modGroupRepository; + protected ModListRepository $modListRepository; + protected DataTransformerRegistry $dataTransformerRegistry; public function __construct( EntityManagerInterface $entityManager, diff --git a/src/Controller/ModListController.php b/src/Controller/ModListController.php index 6347ba23..491124cb 100644 --- a/src/Controller/ModListController.php +++ b/src/Controller/ModListController.php @@ -24,14 +24,9 @@ */ class ModListController extends AbstractController { - /** @var EntityManagerInterface */ - protected $entityManager; - - /** @var ModListRepository */ - protected $modListRepository; - - /** @var DataTransformerRegistry */ - protected $dataTransformerRegistry; + protected EntityManagerInterface $entityManager; + protected ModListRepository $modListRepository; + protected DataTransformerRegistry $dataTransformerRegistry; public function __construct( EntityManagerInterface $entityManager, diff --git a/src/Controller/ModListPublicController.php b/src/Controller/ModListPublicController.php index 11757b47..46bf695c 100644 --- a/src/Controller/ModListPublicController.php +++ b/src/Controller/ModListPublicController.php @@ -19,11 +19,8 @@ */ class ModListPublicController extends AbstractController { - /** @var ModRepository */ - protected $modRepository; - - /** @var ModListRepository */ - protected $modListRepository; + protected ModRepository $modRepository; + protected ModListRepository $modListRepository; public function __construct(ModRepository $modRepository, ModListRepository $modListRepository) { diff --git a/src/Controller/UserController.php b/src/Controller/UserController.php index c63f4b82..574aa406 100644 --- a/src/Controller/UserController.php +++ b/src/Controller/UserController.php @@ -22,11 +22,8 @@ */ class UserController extends AbstractController { - /** @var EntityManagerInterface */ - protected $entityManager; - - /** @var UserRepository */ - protected $userRepository; + protected EntityManagerInterface $entityManager; + protected UserRepository $userRepository; public function __construct(EntityManagerInterface $entityManager, UserRepository $userRepository) { diff --git a/src/Controller/UserGroupController.php b/src/Controller/UserGroupController.php index 340ca1b7..486c5ff7 100644 --- a/src/Controller/UserGroupController.php +++ b/src/Controller/UserGroupController.php @@ -24,14 +24,9 @@ */ class UserGroupController extends AbstractController { - /** @var EntityManagerInterface */ - protected $entityManager; - - /** @var UserGroupRepository */ - protected $userGroupRepository; - - /** @var DataTransformerRegistry */ - protected $dataTransformerRegistry; + protected EntityManagerInterface $entityManager; + protected UserGroupRepository $userGroupRepository; + protected DataTransformerRegistry $dataTransformerRegistry; public function __construct( EntityManagerInterface $entityManager, diff --git a/src/Entity/AbstractDescribedEntity.php b/src/Entity/AbstractDescribedEntity.php index 182e36e6..f2aec6b4 100644 --- a/src/Entity/AbstractDescribedEntity.php +++ b/src/Entity/AbstractDescribedEntity.php @@ -6,8 +6,7 @@ abstract class AbstractDescribedEntity extends AbstractNamedEntity implements DescribedEntityInterface { - /** @var null|string */ - protected $description; + protected ?string $description = null; public function getDescription(): ?string { diff --git a/src/Entity/AbstractEntity.php b/src/Entity/AbstractEntity.php index 03cc1f2e..d707069a 100644 --- a/src/Entity/AbstractEntity.php +++ b/src/Entity/AbstractEntity.php @@ -9,20 +9,11 @@ abstract class AbstractEntity implements EntityInterface { - /** @var UuidInterface */ - protected $id; - - /** @var \DateTimeInterface */ - protected $createdAt; - - /** @var null|UserInterface */ - protected $createdBy; - - /** @var null|\DateTimeInterface */ - protected $lastUpdatedAt; - - /** @var null|UserInterface */ - protected $lastUpdatedBy; + protected UuidInterface $id; + protected \DateTimeInterface $createdAt; + protected ?UserInterface $createdBy = null; + protected ?\DateTimeInterface $lastUpdatedAt = null; + protected ?UserInterface $lastUpdatedBy = null; public function __construct(UuidInterface $id) { diff --git a/src/Entity/AbstractNamedEntity.php b/src/Entity/AbstractNamedEntity.php index 2776b0b5..ee341bb1 100644 --- a/src/Entity/AbstractNamedEntity.php +++ b/src/Entity/AbstractNamedEntity.php @@ -8,8 +8,7 @@ abstract class AbstractNamedEntity extends AbstractEntity implements NamedEntityInterface { - /** @var string */ - protected $name; + protected string $name; public function __construct(UuidInterface $id, string $name) { diff --git a/src/Entity/Mod/AbstractMod.php b/src/Entity/Mod/AbstractMod.php index ad5e77af..af242773 100644 --- a/src/Entity/Mod/AbstractMod.php +++ b/src/Entity/Mod/AbstractMod.php @@ -11,11 +11,8 @@ abstract class AbstractMod extends AbstractDescribedEntity implements ModInterface { - /** @var ModTypeEnum */ - protected $type; - - /** @var ?ModStatusEnum */ - protected $status; + protected ModTypeEnum $type; + protected ?ModStatusEnum $status = null; public function __construct(UuidInterface $id, string $name, ModTypeEnum $type) { diff --git a/src/Entity/Mod/DirectoryMod.php b/src/Entity/Mod/DirectoryMod.php index 97b85019..b875a6ce 100644 --- a/src/Entity/Mod/DirectoryMod.php +++ b/src/Entity/Mod/DirectoryMod.php @@ -9,8 +9,7 @@ class DirectoryMod extends AbstractMod implements DirectoryModInterface { - /** @var string */ - protected $directory; + protected string $directory; public function __construct(UuidInterface $id, string $name, ModTypeEnum $type, string $directory) { diff --git a/src/Entity/Mod/SteamWorkshopMod.php b/src/Entity/Mod/SteamWorkshopMod.php index 3e8d4f8f..dfc499f4 100644 --- a/src/Entity/Mod/SteamWorkshopMod.php +++ b/src/Entity/Mod/SteamWorkshopMod.php @@ -9,14 +9,13 @@ class SteamWorkshopMod extends AbstractMod implements SteamWorkshopModInterface { - /** @var int|string */ - protected $itemId; + protected string $itemId; public function __construct(UuidInterface $id, string $name, ModTypeEnum $type, int $itemId) { parent::__construct($id, $name, $type); - $this->itemId = $itemId; + $this->itemId = (string) $itemId; } public function getItemId(): int @@ -26,6 +25,6 @@ public function getItemId(): int public function setItemId(int $itemId): void { - $this->itemId = $itemId; + $this->itemId = (string) $itemId; } } diff --git a/src/Entity/ModGroup/ModGroup.php b/src/Entity/ModGroup/ModGroup.php index e3ec093a..c4080ae7 100644 --- a/src/Entity/ModGroup/ModGroup.php +++ b/src/Entity/ModGroup/ModGroup.php @@ -12,8 +12,7 @@ class ModGroup extends AbstractDescribedEntity implements ModGroupInterface { - /** @var Collection|ModInterface[] */ - protected $mods; + protected Collection $mods; public function __construct(UuidInterface $id, string $name) { diff --git a/src/Entity/ModList/ModList.php b/src/Entity/ModList/ModList.php index 2fb23081..8b930c22 100644 --- a/src/Entity/ModList/ModList.php +++ b/src/Entity/ModList/ModList.php @@ -14,20 +14,11 @@ class ModList extends AbstractDescribedEntity implements ModListInterface { - /** @var Collection|ModInterface[] */ - protected $mods; - - /** @var Collection|ModGroupInterface[] */ - protected $modGroups; - - /** @var null|UserInterface */ - protected $owner; - - /** @var bool */ - protected $active = true; - - /** @var bool */ - protected $approved = false; + protected Collection$mods; + protected Collection $modGroups; + protected ?UserInterface $owner = null; + protected bool $active = true; + protected bool $approved = false; public function __construct(UuidInterface $id, string $name) { diff --git a/src/Entity/Permissions/AbstractPermissions.php b/src/Entity/Permissions/AbstractPermissions.php index a46f5555..a7c8a7b3 100644 --- a/src/Entity/Permissions/AbstractPermissions.php +++ b/src/Entity/Permissions/AbstractPermissions.php @@ -14,20 +14,11 @@ abstract class AbstractPermissions extends AbstractEntity implements PermissionsInterface { - /** @var UserManagementPermissions */ - protected $userManagementPermissions; - - /** @var UserGroupManagementPermissions */ - protected $userGroupManagementPermissions; - - /** @var ModManagementPermissions */ - protected $modManagementPermissions; - - /** @var ModGroupManagementPermissions */ - protected $modGroupManagementPermissions; - - /** @var ModListManagementPermissions */ - protected $modListManagementPermissions; + protected UserManagementPermissions $userManagementPermissions; + protected UserGroupManagementPermissions $userGroupManagementPermissions; + protected ModManagementPermissions $modManagementPermissions; + protected ModGroupManagementPermissions $modGroupManagementPermissions; + protected ModListManagementPermissions $modListManagementPermissions; public function __construct(UuidInterface $id) { diff --git a/src/Entity/Permissions/Mod/ModManagementPermissions.php b/src/Entity/Permissions/Mod/ModManagementPermissions.php index f9fa3e83..941721b0 100644 --- a/src/Entity/Permissions/Mod/ModManagementPermissions.php +++ b/src/Entity/Permissions/Mod/ModManagementPermissions.php @@ -8,8 +8,7 @@ class ModManagementPermissions extends AbstractManagementPermissions { - /** @var bool */ - protected $changeStatus = false; + protected bool $changeStatus = false; public function canChangeStatus(): bool { diff --git a/src/Entity/Permissions/ModList/ModListManagementPermissions.php b/src/Entity/Permissions/ModList/ModListManagementPermissions.php index 5af70807..5bea7701 100644 --- a/src/Entity/Permissions/ModList/ModListManagementPermissions.php +++ b/src/Entity/Permissions/ModList/ModListManagementPermissions.php @@ -8,11 +8,8 @@ class ModListManagementPermissions extends AbstractManagementPermissions { - /** @var bool */ - protected $copy = false; - - /** @var bool */ - protected $approve = false; + protected bool $copy = false; + protected bool $approve = false; public function canCopy(): bool { diff --git a/src/Entity/Permissions/Traits/CreatePermissionTrait.php b/src/Entity/Permissions/Traits/CreatePermissionTrait.php index 51b0b8c2..e623e43c 100644 --- a/src/Entity/Permissions/Traits/CreatePermissionTrait.php +++ b/src/Entity/Permissions/Traits/CreatePermissionTrait.php @@ -6,8 +6,7 @@ trait CreatePermissionTrait { - /** @var bool */ - protected $create = false; + protected bool $create = false; public function canCreate(): bool { diff --git a/src/Entity/Permissions/Traits/DeletePermissionTrait.php b/src/Entity/Permissions/Traits/DeletePermissionTrait.php index 0f9888dc..ed8835e6 100644 --- a/src/Entity/Permissions/Traits/DeletePermissionTrait.php +++ b/src/Entity/Permissions/Traits/DeletePermissionTrait.php @@ -6,8 +6,7 @@ trait DeletePermissionTrait { - /** @var bool */ - protected $delete = false; + protected bool $delete = false; public function canDelete(): bool { diff --git a/src/Entity/Permissions/Traits/ListPermissionTrait.php b/src/Entity/Permissions/Traits/ListPermissionTrait.php index 5ef13b9c..b382a0c4 100644 --- a/src/Entity/Permissions/Traits/ListPermissionTrait.php +++ b/src/Entity/Permissions/Traits/ListPermissionTrait.php @@ -6,8 +6,7 @@ trait ListPermissionTrait { - /** @var bool */ - protected $list = false; + protected bool $list = false; public function canList(): bool { diff --git a/src/Entity/Permissions/Traits/UpdatePermissionTrait.php b/src/Entity/Permissions/Traits/UpdatePermissionTrait.php index 0d5a5f0f..d21f8e0a 100644 --- a/src/Entity/Permissions/Traits/UpdatePermissionTrait.php +++ b/src/Entity/Permissions/Traits/UpdatePermissionTrait.php @@ -6,8 +6,7 @@ trait UpdatePermissionTrait { - /** @var bool */ - protected $update = false; + protected bool $update = false; public function canUpdate(): bool { diff --git a/src/Entity/Permissions/User/UserManagementPermissions.php b/src/Entity/Permissions/User/UserManagementPermissions.php index da8d459d..b769e118 100644 --- a/src/Entity/Permissions/User/UserManagementPermissions.php +++ b/src/Entity/Permissions/User/UserManagementPermissions.php @@ -12,8 +12,7 @@ class UserManagementPermissions use ListPermissionTrait; use DeletePermissionTrait; - /** @var bool */ - protected $managePermissions = false; + protected bool $managePermissions = false; public function canManagePermissions(): bool { diff --git a/src/Entity/User/User.php b/src/Entity/User/User.php index 43c1745d..44f95a45 100644 --- a/src/Entity/User/User.php +++ b/src/Entity/User/User.php @@ -16,23 +16,12 @@ class User extends AbstractEntity implements UserInterface { use UserInterfaceTrait; - /** @var string */ - protected $username; - - /** @var string */ - protected $email; - - /** @var string */ - protected $externalId; - - /** @var UserPermissions */ - protected $permissions; - - /** @var Collection|UserGroupInterface[] */ - protected $userGroups; - - /** @var null|string */ - protected $avatarHash; + protected string $username; + protected string $email; + protected string $externalId; + protected UserPermissions $permissions; + protected Collection $userGroups; + protected ?string $avatarHash = null; public function __construct( UuidInterface $id, diff --git a/src/Entity/UserGroup/UserGroup.php b/src/Entity/UserGroup/UserGroup.php index 1c6435eb..3c55e440 100644 --- a/src/Entity/UserGroup/UserGroup.php +++ b/src/Entity/UserGroup/UserGroup.php @@ -13,11 +13,8 @@ class UserGroup extends AbstractDescribedEntity implements UserGroupInterface { - /** @var UserGroupPermissions */ - protected $permissions; - - /** @var Collection|UserInterface[] */ - protected $users; + protected UserGroupPermissions $permissions; + protected Collection $users; public function __construct(UuidInterface $id, string $name, UserGroupPermissions $permissions) { diff --git a/src/EventSubscriber/Doctrine/EntityBlameableSubscriber.php b/src/EventSubscriber/Doctrine/EntityBlameableSubscriber.php index d1f480f8..7ee29b19 100644 --- a/src/EventSubscriber/Doctrine/EntityBlameableSubscriber.php +++ b/src/EventSubscriber/Doctrine/EntityBlameableSubscriber.php @@ -13,8 +13,7 @@ class EntityBlameableSubscriber implements EventSubscriber { - /** @var Security */ - protected $security; + protected Security $security; public function __construct(Security $security) { diff --git a/src/EventSubscriber/Doctrine/ModGroupUpdatedSubscriber.php b/src/EventSubscriber/Doctrine/ModGroupUpdatedSubscriber.php index 7c4fe68f..f291bedb 100644 --- a/src/EventSubscriber/Doctrine/ModGroupUpdatedSubscriber.php +++ b/src/EventSubscriber/Doctrine/ModGroupUpdatedSubscriber.php @@ -16,11 +16,8 @@ class ModGroupUpdatedSubscriber implements EventSubscriber { - /** @var Security */ - protected $security; - - /** @var null|ModGroupInterface */ - protected $updatedModGroup; + protected Security $security; + protected ?ModGroupInterface $updatedModGroup = null; public function __construct(Security $security) { diff --git a/src/EventSubscriber/UserLocaleRequestSubscriber.php b/src/EventSubscriber/UserLocaleRequestSubscriber.php index cae16c1c..2ea9826f 100644 --- a/src/EventSubscriber/UserLocaleRequestSubscriber.php +++ b/src/EventSubscriber/UserLocaleRequestSubscriber.php @@ -20,11 +20,8 @@ class UserLocaleRequestSubscriber implements EventSubscriberInterface 'pl', ]; - /** @var SessionInterface */ - protected $session; - - /** @var LoggerInterface */ - protected $logger; + protected SessionInterface $session; + protected LoggerInterface $logger; public function __construct(SessionInterface $session, LoggerInterface $logger) { diff --git a/src/Form/DataTransformerRegistry.php b/src/Form/DataTransformerRegistry.php index 9e403318..4ee7d3b7 100644 --- a/src/Form/DataTransformerRegistry.php +++ b/src/Form/DataTransformerRegistry.php @@ -9,7 +9,7 @@ class DataTransformerRegistry implements DataTransformerInterface { /** @var RegisteredDataTransformerInterface[] */ - protected $registeredDataTransformers; + protected iterable $registeredDataTransformers; public function __construct(iterable $registeredDataTransformers) { diff --git a/src/Form/Mod/DataTransformer/ModFormDtoDataTransformer.php b/src/Form/Mod/DataTransformer/ModFormDtoDataTransformer.php index 99107883..c6087b66 100644 --- a/src/Form/Mod/DataTransformer/ModFormDtoDataTransformer.php +++ b/src/Form/Mod/DataTransformer/ModFormDtoDataTransformer.php @@ -20,8 +20,7 @@ class ModFormDtoDataTransformer implements RegisteredDataTransformerInterface { - /** @var SteamWorkshopClient */ - protected $steamWorkshopClient; + protected SteamWorkshopClient $steamWorkshopClient; public function __construct(SteamWorkshopClient $steamWorkshopClient) { diff --git a/src/Form/Mod/Dto/ModFormDto.php b/src/Form/Mod/Dto/ModFormDto.php index 45c0d736..0de56058 100644 --- a/src/Form/Mod/Dto/ModFormDto.php +++ b/src/Form/Mod/Dto/ModFormDto.php @@ -19,63 +19,47 @@ */ class ModFormDto extends AbstractFormDto { - /** @var null|UuidInterface */ - protected $id; + protected ?UuidInterface $id = null; /** - * @var null|string - * * @Assert\NotBlank(groups={ModSourceEnum::DIRECTORY}) * @Assert\Length(min=1, max=255) */ - protected $name; + protected ?string $name = null; /** - * @var null|string - * * @Assert\Length(min=1, max=255) */ - protected $description; + protected ?string $description = null; /** - * @var null|string - * * @Assert\Expression( * "!(this.getType() != constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::SERVER_SIDE') && this.getSource() == constant('App\\Entity\\Mod\\Enum\\ModSourceEnum::DIRECTORY'))", * ) */ - protected $type; + protected ?string $type = null; - /** - * @var null|string - */ - protected $status; + protected ?string $status = null; /** - * @var null|string - * * @Assert\Expression( * "!(this.getSource() == constant('App\\Entity\\Mod\\Enum\\ModSourceEnum::DIRECTORY') && this.getType() != constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::SERVER_SIDE'))", * ) */ - protected $source; + protected ?string $source = null; /** - * @var null|string - * * @Assert\NotBlank(groups={ModSourceEnum::STEAM_WORKSHOP}) * @Assert\Length(min=1, max=255, groups={ModSourceEnum::STEAM_WORKSHOP}) * @SteamWorkshopArma3ModUrl(groups={ModSourceEnum::STEAM_WORKSHOP})) */ - protected $url; + protected ?string $url = null; /** - * @var null|string - * * @Assert\NotBlank(groups={ModSourceEnum::DIRECTORY}) * @WindowsDirectoryName(groups={ModSourceEnum::DIRECTORY}) */ - protected $directory; + protected ?string $directory = null; /** * {@inheritdoc} diff --git a/src/Form/Mod/ModFormType.php b/src/Form/Mod/ModFormType.php index 233f7f0b..e688d82d 100644 --- a/src/Form/Mod/ModFormType.php +++ b/src/Form/Mod/ModFormType.php @@ -21,8 +21,7 @@ class ModFormType extends AbstractType { - /** @var Security */ - protected $security; + protected Security $security; public function __construct(Security $security) { diff --git a/src/Form/ModGroup/Dto/ModGroupFormDto.php b/src/Form/ModGroup/Dto/ModGroupFormDto.php index ae33bf6c..4f9b5a63 100644 --- a/src/Form/ModGroup/Dto/ModGroupFormDto.php +++ b/src/Form/ModGroup/Dto/ModGroupFormDto.php @@ -17,28 +17,23 @@ */ class ModGroupFormDto extends AbstractFormDto { - /** @var null|UuidInterface */ - protected $id; + protected ?UuidInterface $id = null; /** - * @var null|string - * * @Assert\NotBlank * @Assert\Length(max=255) */ - protected $name; + protected ?string $name = null; /** - * @var null|string - * * @Assert\Length(min=1, max=255) */ - protected $description; + protected ?string $description = null; /** * @var Collection|ModInterface[] */ - protected $mods; + protected Collection $mods; public function __construct() { diff --git a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php index d368d9f5..055802f7 100644 --- a/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php +++ b/src/Form/ModList/DataTransformer/ModListFormDtoDataTransformer.php @@ -19,8 +19,7 @@ class ModListFormDtoDataTransformer implements RegisteredDataTransformerInterface { - /** @var Security */ - protected $security; + protected Security $security; public function __construct(Security $security) { diff --git a/src/Form/ModList/Dto/ModListFormDto.php b/src/Form/ModList/Dto/ModListFormDto.php index 70987f1c..9dcbc128 100644 --- a/src/Form/ModList/Dto/ModListFormDto.php +++ b/src/Form/ModList/Dto/ModListFormDto.php @@ -19,48 +19,34 @@ */ class ModListFormDto extends AbstractFormDto { - /** @var null|UuidInterface */ - protected $id; + protected ?UuidInterface $id = null; /** - * @var null|string - * * @Assert\NotBlank * @Assert\Length(max=255) */ - protected $name; + protected ?string $name = null; /** - * @var null|string - * * @Assert\Length(min=1, max=255) */ - protected $description; + protected ?string $description = null; /** * @var Collection|ModInterface[] */ - protected $mods; + protected Collection $mods; /** * @var Collection|ModGroupInterface[] */ - protected $modGroups; + protected Collection $modGroups; - /** - * @var null|UserInterface - */ - protected $owner; + protected ?UserInterface $owner = null; - /** - * @var bool - */ - protected $active = true; + protected bool $active = true; - /** - * @var bool - */ - protected $approved = false; + protected bool $approved = false; public function __construct() { diff --git a/src/Form/ModList/ModListFormType.php b/src/Form/ModList/ModListFormType.php index a7e4c290..de20b291 100644 --- a/src/Form/ModList/ModListFormType.php +++ b/src/Form/ModList/ModListFormType.php @@ -22,8 +22,7 @@ class ModListFormType extends AbstractType { - /** @var Security */ - protected $security; + protected Security $security; public function __construct(Security $security) { diff --git a/src/Form/Permissions/User/UserManagementPermissionsType.php b/src/Form/Permissions/User/UserManagementPermissionsType.php index 226a499e..68d272f2 100644 --- a/src/Form/Permissions/User/UserManagementPermissionsType.php +++ b/src/Form/Permissions/User/UserManagementPermissionsType.php @@ -14,8 +14,7 @@ class UserManagementPermissionsType extends AbstractType { - /** @var Security */ - protected $security; + protected Security $security; public function __construct(Security $security) { diff --git a/src/Form/UserGroup/Dto/UserGroupFormDto.php b/src/Form/UserGroup/Dto/UserGroupFormDto.php index 0d8119f2..33a904c3 100644 --- a/src/Form/UserGroup/Dto/UserGroupFormDto.php +++ b/src/Form/UserGroup/Dto/UserGroupFormDto.php @@ -19,33 +19,22 @@ */ class UserGroupFormDto extends AbstractFormDto { - /** @var null|UuidInterface */ - protected $id; + protected ?UuidInterface $id = null; /** - * @var null|string - * * @Assert\NotBlank * @Assert\Length(max=255) */ - protected $name; + protected ?string $name = null; /** - * @var null|string - * * @Assert\Length(min=1, max=255) */ - protected $description; + protected ?string $description = null; - /** - * @var null|UserGroupPermissions - */ - protected $permissions; + protected ?UserGroupPermissions $permissions = null; - /** - * @var Collection|UserInterface[] - */ - protected $users; + protected Collection $users; public function __construct() { diff --git a/src/Security/DiscordAuthenticator.php b/src/Security/DiscordAuthenticator.php index da79d97d..fcb5de96 100644 --- a/src/Security/DiscordAuthenticator.php +++ b/src/Security/DiscordAuthenticator.php @@ -42,26 +42,15 @@ class DiscordAuthenticator extends SocialAuthenticator protected const LOGIN_PAGE_ROUTE_NAME = 'app_security_connect_discord'; protected const SUPPORTED_ROUTE_NAME = 'app_security_connect_discord_check'; - /** @var ClientRegistry */ - protected $clientRegistry; - - /** @var EntityManagerInterface */ - protected $em; - - /** @var RouterInterface */ - protected $router; - - /** @var DiscordClientFactory */ - protected $discordClientFactory; - - /** @var int */ - protected $discordServerId; - - /** @var string */ - protected $botToken; + protected ClientRegistry $clientRegistry; + protected EntityManagerInterface $em; + protected RouterInterface $router; + protected DiscordClientFactory $discordClientFactory; + protected int $discordServerId; + protected string $botToken; /** @var string[] */ - protected $requiredServerRoleNames; + protected array $requiredServerRoleNames; public function __construct( ClientRegistry $clientRegistry, diff --git a/src/Service/LegacyModListImport/Dto/ModCsvEntryDto.php b/src/Service/LegacyModListImport/Dto/ModCsvEntryDto.php index 8d12f96c..d77efaa1 100644 --- a/src/Service/LegacyModListImport/Dto/ModCsvEntryDto.php +++ b/src/Service/LegacyModListImport/Dto/ModCsvEntryDto.php @@ -6,20 +6,11 @@ class ModCsvEntryDto { - /** @var string */ - protected $id; - - /** @var string */ - protected $name; - - /** @var null|string */ - protected $isServerSide; - - /** @var null|string */ - protected $isOptional; - - /** @var null|string */ - protected $isMap; + protected string $id; + protected string $name; + protected ?string $isServerSide; + protected ?string $isOptional; + protected ?string $isMap; public function __construct(string $id, string $name, ?string $isServerSide, ?string $isOptional, ?string $isMap) { diff --git a/src/Service/LegacyModListImport/ModListImport.php b/src/Service/LegacyModListImport/ModListImport.php index 82081c82..2268c21f 100644 --- a/src/Service/LegacyModListImport/ModListImport.php +++ b/src/Service/LegacyModListImport/ModListImport.php @@ -15,20 +15,11 @@ class ModListImport { - /** @var EntityManagerInterface */ - protected $entityManager; - - /** @var ModListCsvReader */ - protected $modListCsvReader; - - /** @var DtoToEntityConverter */ - protected $dtoToEntityConverter; - - /** @var SteamWorkshopModRepository */ - protected $steamWorkshopModRepository; - - /** @var DirectoryModRepository */ - protected $directoryModRepository; + protected EntityManagerInterface $entityManager; + protected ModListCsvReader $modListCsvReader; + protected DtoToEntityConverter $dtoToEntityConverter; + protected SteamWorkshopModRepository $steamWorkshopModRepository; + protected DirectoryModRepository $directoryModRepository; public function __construct( EntityManagerInterface $entityManager, diff --git a/src/Service/Mission/Dto/MissionDto.php b/src/Service/Mission/Dto/MissionDto.php index c161b9f2..8eed976c 100644 --- a/src/Service/Mission/Dto/MissionDto.php +++ b/src/Service/Mission/Dto/MissionDto.php @@ -6,32 +6,15 @@ class MissionDto { - /** @var null|int */ - protected $id; - - /** @var string */ - protected $title; - - /** @var \DateTimeImmutable */ - protected $date; - - /** @var \DateTimeImmutable */ - protected $closeDate; - - /** @var string */ - protected $description; - - /** @var int */ - protected $freeSlots; - - /** @var int */ - protected $allSlots; - - /** @var null|string */ - protected $image; - - /** @var string */ - protected $state; + protected ?int $id; + protected string $title; + protected \DateTimeImmutable $date; + protected \DateTimeImmutable $closeDate; + protected string $description; + protected int $freeSlots; + protected int $allSlots; + protected ?string $image; + protected string $state; public function __construct( ?int $id, diff --git a/src/Service/Mission/MissionClient.php b/src/Service/Mission/MissionClient.php index 513c7977..9708f118 100644 --- a/src/Service/Mission/MissionClient.php +++ b/src/Service/Mission/MissionClient.php @@ -12,8 +12,7 @@ class MissionClient { - /** @var HttpClientInterface */ - protected $client; + protected HttpClientInterface $client; public function __construct(HttpClientInterface $client, MissionStore $store, string $missionApiUrl) { diff --git a/src/Service/Mission/MissionStore.php b/src/Service/Mission/MissionStore.php index a44e16f2..96672956 100644 --- a/src/Service/Mission/MissionStore.php +++ b/src/Service/Mission/MissionStore.php @@ -11,8 +11,7 @@ class MissionStore implements StoreInterface { - /** @var Store */ - protected $store; + protected Store $store; public function __construct(string $storagePath) { diff --git a/src/Service/SteamWorkshop/Dto/SteamWorkshopItemInfoDto.php b/src/Service/SteamWorkshop/Dto/SteamWorkshopItemInfoDto.php index ebe13a30..8ef576ac 100644 --- a/src/Service/SteamWorkshop/Dto/SteamWorkshopItemInfoDto.php +++ b/src/Service/SteamWorkshop/Dto/SteamWorkshopItemInfoDto.php @@ -6,14 +6,9 @@ class SteamWorkshopItemInfoDto { - /** @var int */ - protected $id; - - /** @var string */ - protected $name; - - /** @var int */ - protected $gameId; + protected int $id; + protected string $name; + protected int $gameId; public function __construct(int $id, string $name, int $gameId) { diff --git a/src/Service/SteamWorkshop/SteamWorkshopClient.php b/src/Service/SteamWorkshop/SteamWorkshopClient.php index 092150a0..592d74f9 100644 --- a/src/Service/SteamWorkshop/SteamWorkshopClient.php +++ b/src/Service/SteamWorkshop/SteamWorkshopClient.php @@ -11,8 +11,7 @@ class SteamWorkshopClient { - /** @var HttpClientInterface */ - protected $httpClient; + protected HttpClientInterface $httpClient; public function __construct(HttpClientInterface $httpClient) { diff --git a/src/Service/Version/VersionProvider.php b/src/Service/Version/VersionProvider.php index f678cd95..5bad1d2a 100644 --- a/src/Service/Version/VersionProvider.php +++ b/src/Service/Version/VersionProvider.php @@ -6,11 +6,8 @@ class VersionProvider { - /** @var string */ - protected $filePath; - - /** @var string */ - protected $defaultVersion; + protected string $filePath; + protected string $defaultVersion; public function __construct(string $projectDir, string $fileName = 'VERSION', string $defaultVersion = 'dev') { diff --git a/src/Twig/BackgroundImageExtension.php b/src/Twig/BackgroundImageExtension.php index 0fb4f1c0..2eee5302 100644 --- a/src/Twig/BackgroundImageExtension.php +++ b/src/Twig/BackgroundImageExtension.php @@ -10,8 +10,7 @@ class BackgroundImageExtension extends AbstractExtension { - /** @var string */ - protected $cacheDir; + protected string $cacheDir; public function __construct(string $cacheDir) { diff --git a/src/Twig/ImgproxyExtension.php b/src/Twig/ImgproxyExtension.php index d3dad9d6..6aa4cc6c 100644 --- a/src/Twig/ImgproxyExtension.php +++ b/src/Twig/ImgproxyExtension.php @@ -9,14 +9,9 @@ class ImgproxyExtension extends AbstractExtension { - /** @var string */ - protected $baseProxyUrl; - - /** @var string */ - protected $proxyKey; - - /** @var string */ - protected $proxySalt; + protected string $baseProxyUrl; + protected string $proxyKey; + protected string $proxySalt; public function __construct(string $baseProxyUrl, string $proxyKey, string $proxySalt) { diff --git a/src/Twig/UserExtension.php b/src/Twig/UserExtension.php index a1e659e4..96282e13 100644 --- a/src/Twig/UserExtension.php +++ b/src/Twig/UserExtension.php @@ -5,7 +5,7 @@ namespace App\Twig; use App\Entity\User\User; -use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; +use Symfony\Component\Security\Core\Security; use Twig\Extension\AbstractExtension; use Twig\TwigFunction; @@ -14,12 +14,11 @@ class UserExtension extends AbstractExtension public const AVATAR_CDN = 'https://cdn.discordapp.com'; public const DEFAULT_AVATAR_URL = '/embed/avatars/3.png'; - /** @var TokenStorageInterface */ - protected $tokenStorage; + protected Security $security; - public function __construct(TokenStorageInterface $tokenStorage) + public function __construct(Security $security) { - $this->tokenStorage = $tokenStorage; + $this->security = $security; } public function getFunctions(): array @@ -33,14 +32,12 @@ public function getFunctions(): array public function getCurrentUserAvatarUrl(): string { - $token = $this->tokenStorage->getToken(); - if (null === $token) { + /** @var null|User $user */ + $user = $this->security->getUser(); + if (!$user) { throw new \LogicException('Can\'t get user avatar url without user token!'); } - /** @var User $user */ - $user = $token->getUser(); - return $this->getUserAvatarUrl($user); } diff --git a/src/Twig/UtilsExtension.php b/src/Twig/UtilsExtension.php index 9b7193aa..eda24247 100644 --- a/src/Twig/UtilsExtension.php +++ b/src/Twig/UtilsExtension.php @@ -12,11 +12,8 @@ class UtilsExtension extends AbstractExtension { - /** @var ParameterBagInterface */ - protected $parameterBag; - - /** @var RequestStack */ - protected $requestStack; + protected ParameterBagInterface $parameterBag; + protected RequestStack $requestStack; public function __construct(ParameterBagInterface $parameterBag, RequestStack $requestStack) { diff --git a/src/Twig/VersionExtension.php b/src/Twig/VersionExtension.php index 32525d90..81c7359f 100644 --- a/src/Twig/VersionExtension.php +++ b/src/Twig/VersionExtension.php @@ -10,8 +10,7 @@ class VersionExtension extends AbstractExtension { - /** @var VersionProvider */ - protected $version; + protected VersionProvider $version; public function __construct(VersionProvider $version) { diff --git a/src/Validator/AbstractValidator.php b/src/Validator/AbstractValidator.php index 23fcc078..af857973 100644 --- a/src/Validator/AbstractValidator.php +++ b/src/Validator/AbstractValidator.php @@ -11,8 +11,7 @@ abstract class AbstractValidator extends ConstraintValidator { - /** @var EntityManagerInterface */ - protected $entityManager; + protected EntityManagerInterface $entityManager; public function __construct(EntityManagerInterface $entityManager) { diff --git a/src/Validator/Mod/SteamWorkshopArma3ModUrl.php b/src/Validator/Mod/SteamWorkshopArma3ModUrl.php index 6744e866..24a791e3 100644 --- a/src/Validator/Mod/SteamWorkshopArma3ModUrl.php +++ b/src/Validator/Mod/SteamWorkshopArma3ModUrl.php @@ -11,14 +11,9 @@ */ class SteamWorkshopArma3ModUrl extends Constraint { - /** @var string */ - public $invalidModUrlMessage = 'Invalid Steam Workshop mod URL'; - - /** @var string */ - public $modNotFoundMessage = 'Mod not found'; - - /** @var string */ - public $notAnArma3ModMessage = 'Mod is not an Arma 3 mod'; + public string $invalidModUrlMessage = 'Invalid Steam Workshop mod URL'; + public string $modNotFoundMessage = 'Mod not found'; + public string $notAnArma3ModMessage = 'Mod is not an Arma 3 mod'; /** * @return string[] diff --git a/src/Validator/Mod/SteamWorkshopArma3ModUrlValidator.php b/src/Validator/Mod/SteamWorkshopArma3ModUrlValidator.php index b1689674..173cb812 100644 --- a/src/Validator/Mod/SteamWorkshopArma3ModUrlValidator.php +++ b/src/Validator/Mod/SteamWorkshopArma3ModUrlValidator.php @@ -17,8 +17,7 @@ class SteamWorkshopArma3ModUrlValidator extends ConstraintValidator { protected const ARMA_3_GAME_ID = 107410; - /** @var SteamWorkshopClient */ - protected $steamWorkshopClient; + protected SteamWorkshopClient $steamWorkshopClient; public function __construct(SteamWorkshopClient $steamWorkshopClient) { diff --git a/src/Validator/Mod/UniqueDirectoryMod.php b/src/Validator/Mod/UniqueDirectoryMod.php index 2ad1137d..0558fc11 100644 --- a/src/Validator/Mod/UniqueDirectoryMod.php +++ b/src/Validator/Mod/UniqueDirectoryMod.php @@ -11,11 +11,8 @@ */ class UniqueDirectoryMod extends Constraint { - /** @var string */ - public $message = 'Mod associated with directory "{{ directoryName }}" already exist'; - - /** @var null|string */ - public $errorPath; + public string $message = 'Mod associated with directory "{{ directoryName }}" already exist'; + public ?string $errorPath; public function getTargets() { diff --git a/src/Validator/Mod/UniqueSteamWorkshopMod.php b/src/Validator/Mod/UniqueSteamWorkshopMod.php index 24690e57..8f072054 100644 --- a/src/Validator/Mod/UniqueSteamWorkshopMod.php +++ b/src/Validator/Mod/UniqueSteamWorkshopMod.php @@ -11,11 +11,8 @@ */ class UniqueSteamWorkshopMod extends Constraint { - /** @var string */ - public $message = 'Mod associated with url "{{ modUrl }}" already exist'; - - /** @var null|string */ - public $errorPath; + public string $message = 'Mod associated with url "{{ modUrl }}" already exist'; + public ?string $errorPath; public function getTargets() { diff --git a/src/Validator/ModGroup/UniqueModGroupName.php b/src/Validator/ModGroup/UniqueModGroupName.php index 9344fa93..80fec7ec 100644 --- a/src/Validator/ModGroup/UniqueModGroupName.php +++ b/src/Validator/ModGroup/UniqueModGroupName.php @@ -11,11 +11,8 @@ */ class UniqueModGroupName extends Constraint { - /** @var string */ - public $message = 'Mod group with the same name "{{ modGroupName }}" already exist'; - - /** @var null|string */ - public $errorPath; + public string $message = 'Mod group with the same name "{{ modGroupName }}" already exist'; + public ?string $errorPath; public function getTargets() { diff --git a/src/Validator/ModList/UniqueModListName.php b/src/Validator/ModList/UniqueModListName.php index fa6d00e0..7c962e24 100644 --- a/src/Validator/ModList/UniqueModListName.php +++ b/src/Validator/ModList/UniqueModListName.php @@ -11,11 +11,8 @@ */ class UniqueModListName extends Constraint { - /** @var string */ - public $message = 'Mod list with the same name "{{ modListName }}" already exist'; - - /** @var null|string */ - public $errorPath; + public string $message = 'Mod list with the same name "{{ modListName }}" already exist'; + public ?string $errorPath = null; public function getTargets() { diff --git a/src/Validator/UserGroup/UniqueUserGroupName.php b/src/Validator/UserGroup/UniqueUserGroupName.php index 5e26e937..14c4d6dd 100644 --- a/src/Validator/UserGroup/UniqueUserGroupName.php +++ b/src/Validator/UserGroup/UniqueUserGroupName.php @@ -11,11 +11,8 @@ */ class UniqueUserGroupName extends Constraint { - /** @var string */ - public $message = 'User group with the same name "{{ userGroupName }}" already exist'; - - /** @var null|string */ - public $errorPath; + public string $message = 'User group with the same name "{{ userGroupName }}" already exist'; + public ?string $errorPath = null; public function getTargets() {