diff --git a/composer.lock b/composer.lock index 55823f5..0782e57 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "composer/package-versions-deprecated", - "version": "1.11.99", + "version": "1.11.99.1", "source": { "type": "git", "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855" + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", - "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", "shasum": "" }, "require": { @@ -73,32 +73,33 @@ "type": "tidelift" } ], - "time": "2020-08-25T05:50:16+00:00" + "time": "2020-11-11T10:22:58+00:00" }, { "name": "composer/semver", - "version": "1.7.1", + "version": "3.2.4", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "38276325bd896f90dfcfe30029aa5db40df387a7" + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/38276325bd896f90dfcfe30029aa5db40df387a7", - "reference": "38276325bd896f90dfcfe30029aa5db40df387a7", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5" + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -148,20 +149,20 @@ "type": "tidelift" } ], - "time": "2020-09-27T13:13:07+00:00" + "time": "2020-11-13T08:59:24+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.4.3", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ebd27a9866ae8254e873866f795491f02418c5a5" + "reference": "f28d44c286812c714741478d968104c5e604a1d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ebd27a9866ae8254e873866f795491f02418c5a5", - "reference": "ebd27a9866ae8254e873866f795491f02418c5a5", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", "shasum": "" }, "require": { @@ -206,20 +207,20 @@ "type": "tidelift" } ], - "time": "2020-08-19T10:27:58+00:00" + "time": "2020-11-13T08:04:11+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": { @@ -229,13 +230,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": { @@ -270,13 +272,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", @@ -441,16 +443,16 @@ }, { "name": "doctrine/common", - "version": "3.0.2", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "a3c6479858989e242a2465972b4f7a8642baf0d4" + "reference": "9f3e3f3cc5399604c0325d5ffa92609d694d950d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/a3c6479858989e242a2465972b4f7a8642baf0d4", - "reference": "a3c6479858989e242a2465972b4f7a8642baf0d4", + "url": "https://api.github.com/repos/doctrine/common/zipball/9f3e3f3cc5399604c0325d5ffa92609d694d950d", + "reference": "9f3e3f3cc5399604c0325d5ffa92609d694d950d", "shasum": "" }, "require": { @@ -458,19 +460,14 @@ "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": "3.0.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common" @@ -506,7 +503,7 @@ "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", @@ -527,37 +524,36 @@ "type": "tidelift" } ], - "time": "2020-06-05T16:59:53+00:00" + "time": "2020-12-03T21:02:31+00:00" }, { "name": "doctrine/dbal", - "version": "2.11.1", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "6e6903cd5e3a5be60a79439e3ee8fe126f78fe86" + "reference": "adce7a954a1c2f14f85e94aed90c8489af204086" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/6e6903cd5e3a5be60a79439e3ee8fe126f78fe86", - "reference": "6e6903cd5e3a5be60a79439e3ee8fe126f78fe86", + "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.3" + "php": "^7.3 || ^8" }, "require-dev": { "doctrine/coding-standard": "^8.1", "jetbrains/phpstorm-stubs": "^2019.1", - "nikic/php-parser": "^4.4", "phpstan/phpstan": "^0.12.40", - "phpunit/phpunit": "^9.3", + "phpunit/phpunit": "^9.4", "psalm/plugin-phpunit": "^0.10.0", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "^3.14.2" + "vimeo/psalm": "^3.17.2" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -635,20 +631,20 @@ "type": "tidelift" } ], - "time": "2020-09-27T04:09:41+00:00" + "time": "2020-11-14T20:26:58+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "2.1.2", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "f5153089993e1230f5d8acbd8e126014d5a63e17" + "reference": "044d33eeffdb236d5013b6b4af99f87519e10751" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/f5153089993e1230f5d8acbd8e126014d5a63e17", - "reference": "f5153089993e1230f5d8acbd8e126014d5a63e17", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/044d33eeffdb236d5013b6b4af99f87519e10751", + "reference": "044d33eeffdb236d5013b6b4af99f87519e10751", "shasum": "" }, "require": { @@ -669,10 +665,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", + "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", @@ -680,7 +676,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.", @@ -689,7 +685,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "2.3.x-dev" } }, "autoload": { @@ -741,7 +737,7 @@ "type": "tidelift" } ], - "time": "2020-08-25T10:57:15+00:00" + "time": "2020-12-05T15:07:10+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", @@ -919,16 +915,16 @@ }, { "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": { @@ -949,7 +945,6 @@ }, "autoload": { "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, @@ -1007,40 +1002,35 @@ "type": "tidelift" } ], - "time": "2020-05-29T07:19:59+00:00" + "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/" @@ -1054,7 +1044,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", @@ -1077,7 +1067,7 @@ "type": "tidelift" } ], - "time": "2020-05-29T17:27:14+00:00" + "time": "2020-11-10T18:47:58+00:00" }, { "name": "doctrine/lexer", @@ -1256,40 +1246,40 @@ }, { "name": "doctrine/orm", - "version": "2.7.4", + "version": "2.8.1", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "7d84a4998091ece4d645253ac65de9f879eeed2f" + "reference": "242cf1a33df1b8bc5e1b86c3ebd01db07851c833" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/7d84a4998091ece4d645253ac65de9f879eeed2f", - "reference": "7d84a4998091ece4d645253ac65de9f879eeed2f", + "url": "https://api.github.com/repos/doctrine/orm/zipball/242cf1a33df1b8bc5e1b86c3ebd01db07851c833", + "reference": "242cf1a33df1b8bc5e1b86c3ebd01db07851c833", "shasum": "" }, "require": { "composer/package-versions-deprecated": "^1.8", - "doctrine/annotations": "^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", + "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": "*", - "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" @@ -1340,20 +1330,20 @@ "database", "orm" ], - "time": "2020-10-10T17:11:26+00:00" + "time": "2020-12-04T19:53:07+00:00" }, { "name": "doctrine/persistence", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "1dee036f22cd5dc0bc12132f1d1c38415907be55" + "reference": "9899c16934053880876b920a3b8b02ed2337ac1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/1dee036f22cd5dc0bc12132f1d1c38415907be55", - "reference": "1dee036f22cd5dc0bc12132f1d1c38415907be55", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/9899c16934053880876b920a3b8b02ed2337ac1d", + "reference": "9899c16934053880876b920a3b8b02ed2337ac1d", "shasum": "" }, "require": { @@ -1361,24 +1351,20 @@ "doctrine/cache": "^1.0", "doctrine/collections": "^1.0", "doctrine/event-manager": "^1.0", - "doctrine/reflection": "^1.2", - "php": "^7.1" + "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", + "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": "2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common", @@ -1424,99 +1410,7 @@ "orm", "persistence" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", - "type": "tidelift" - } - ], - "time": "2020-05-12T19:32:44+00:00" - }, - { - "name": "doctrine/reflection", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/reflection.git", - "reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/55e71912dfcd824b2fdd16f2d9afe15684cfce79", - "reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "ext-tokenizer": "*", - "php": "^7.1" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "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" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.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" - ], - "time": "2020-03-27T11:06:43+00:00" + "time": "2020-10-24T22:13:54+00:00" }, { "name": "doctrine/sql-formatter", @@ -1573,16 +1467,16 @@ }, { "name": "egulias/email-validator", - "version": "2.1.22", + "version": "2.1.24", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5" + "reference": "ca90a3291eee1538cd48ff25163240695bd95448" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5", - "reference": "68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ca90a3291eee1538cd48ff25163240695bd95448", + "reference": "ca90a3291eee1538cd48ff25163240695bd95448", "shasum": "" }, "require": { @@ -1627,31 +1521,37 @@ "validation", "validator" ], - "time": "2020-09-26T15:48:38+00:00" + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2020-11-14T15:56:27+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.16.4", + "version": "v2.17.1", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "1023c3458137ab052f6ff1e09621a721bfdeca13" + "reference": "5198b7308ed63f26799387fd7f3901c3db6bd7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/1023c3458137ab052f6ff1e09621a721bfdeca13", - "reference": "1023c3458137ab052f6ff1e09621a721bfdeca13", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/5198b7308ed63f26799387fd7f3901c3db6bd7fd", + "reference": "5198b7308ed63f26799387fd7f3901c3db6bd7fd", "shasum": "" }, "require": { - "composer/semver": "^1.4", + "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^1.2", "doctrine/annotations": "^1.2", "ext-json": "*", "ext-tokenizer": "*", - "php": "^5.6 || ^7.0", + "php": "^5.6 || ^7.0 || ^8.0", "php-cs-fixer/diff": "^1.3", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", + "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", "symfony/finder": "^3.0 || ^4.0 || ^5.0", @@ -1664,14 +1564,15 @@ "require-dev": { "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", "justinrainbow/json-schema": "^5.0", - "keradus/cli-executor": "^1.2", + "keradus/cli-executor": "^1.4", "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.1", + "php-coveralls/php-coveralls": "^2.4.1", "php-cs-fixer/accessible-object": "^1.0", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1", - "phpunitgoodpractices/traits": "^1.8", + "phpunitgoodpractices/polyfill": "^1.5", + "phpunitgoodpractices/traits": "^1.9.1", "symfony/phpunit-bridge": "^5.1", "symfony/yaml": "^3.0 || ^4.0 || ^5.0" }, @@ -1724,20 +1625,20 @@ "type": "github" } ], - "time": "2020-06-27T23:57:46+00:00" + "time": "2020-12-08T13:47:02+00:00" }, { "name": "monolog/monolog", - "version": "2.1.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5" + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f9eee5cec93dfb313a38b6b288741e84e53f02d5", - "reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084", "shasum": "" }, "require": { @@ -1750,16 +1651,17 @@ "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^6.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", "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 <3.0", + "ruflin/elastica": ">=0.90 <7.0.1", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { @@ -1779,7 +1681,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -1795,11 +1697,11 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "homepage": "https://github.com/Seldaek/monolog", "keywords": [ "log", "logging", @@ -1815,7 +1717,7 @@ "type": "tidelift" } ], - "time": "2020-07-23T08:41:23+00:00" + "time": "2020-12-14T13:15:25+00:00" }, { "name": "ocramius/proxy-manager", @@ -2323,16 +2225,16 @@ }, { "name": "sabre/dav", - "version": "4.1.2", + "version": "4.1.3", "source": { "type": "git", "url": "https://github.com/sabre-io/dav.git", - "reference": "e1f617a4112da461bfc31aa4e87e0e6ac0bd6ed0" + "reference": "b903eeedfbdcd6cab7935661ec6dc2d90cdf8a1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sabre-io/dav/zipball/e1f617a4112da461bfc31aa4e87e0e6ac0bd6ed0", - "reference": "e1f617a4112da461bfc31aa4e87e0e6ac0bd6ed0", + "url": "https://api.github.com/repos/sabre-io/dav/zipball/b903eeedfbdcd6cab7935661ec6dc2d90cdf8a1e", + "reference": "b903eeedfbdcd6cab7935661ec6dc2d90cdf8a1e", "shasum": "" }, "require": { @@ -2356,7 +2258,7 @@ }, "require-dev": { "evert/phpdoc-md": "~0.1.0", - "friendsofphp/php-cs-fixer": "^2.16.3", + "friendsofphp/php-cs-fixer": "^2.16.7", "monolog/monolog": "^1.18", "phpstan/phpstan": "^0.12", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0" @@ -2400,7 +2302,7 @@ "framework", "iCalendar" ], - "time": "2020-10-04T07:21:47+00:00" + "time": "2020-11-09T07:48:35+00:00" }, { "name": "sabre/event", @@ -2575,16 +2477,16 @@ }, { "name": "sabre/vobject", - "version": "4.3.2", + "version": "4.3.3", "source": { "type": "git", "url": "https://github.com/sabre-io/vobject.git", - "reference": "e17daaf92a12d39e93ab404929673573e3bb85bf" + "reference": "58f9f9b46a1080c0130bd86f4df9a568aacb9c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sabre-io/vobject/zipball/e17daaf92a12d39e93ab404929673573e3bb85bf", - "reference": "e17daaf92a12d39e93ab404929673573e3bb85bf", + "url": "https://api.github.com/repos/sabre-io/vobject/zipball/58f9f9b46a1080c0130bd86f4df9a568aacb9c79", + "reference": "58f9f9b46a1080c0130bd86f4df9a568aacb9c79", "shasum": "" }, "require": { @@ -2593,7 +2495,7 @@ "sabre/xml": "^2.1" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~2.16.1", + "friendsofphp/php-cs-fixer": "~2.16.7", "phpstan/phpstan": "^0.12", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0" }, @@ -2669,7 +2571,7 @@ "xCal", "xCard" ], - "time": "2020-10-03T11:15:54+00:00" + "time": "2020-11-09T04:31:38+00:00" }, { "name": "sabre/xml", @@ -2813,32 +2715,31 @@ }, { "name": "swiftmailer/swiftmailer", - "version": "v6.2.3", + "version": "v6.2.4", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9" + "reference": "56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9", - "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e", + "reference": "56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e", "shasum": "" }, "require": { - "egulias/email-validator": "~2.0", + "egulias/email-validator": "^2.0", "php": ">=7.0.0", "symfony/polyfill-iconv": "^1.0", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "^3.4.19|^4.1.8" + "mockery/mockery": "^1.0", + "symfony/phpunit-bridge": "^4.4|^5.0" }, "suggest": { - "ext-intl": "Needed to support internationalized email addresses", - "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" + "ext-intl": "Needed to support internationalized email addresses" }, "type": "library", "extra": { @@ -2871,20 +2772,30 @@ "mail", "mailer" ], - "time": "2019-11-12T09:31:26+00:00" + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", + "type": "tidelift" + } + ], + "time": "2020-12-08T18:02:06+00:00" }, { "name": "symfony/asset", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "ef0bcafce1c14bbf49838b01e990a8bfafd071eb" + "reference": "19c59713f750642206b21a1edec5c18dea80f979" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/ef0bcafce1c14bbf49838b01e990a8bfafd071eb", - "reference": "ef0bcafce1c14bbf49838b01e990a8bfafd071eb", + "url": "https://api.github.com/repos/symfony/asset/zipball/19c59713f750642206b21a1edec5c18dea80f979", + "reference": "19c59713f750642206b21a1edec5c18dea80f979", "shasum": "" }, "require": { @@ -2899,11 +2810,6 @@ "symfony/http-foundation": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Asset\\": "" @@ -2942,20 +2848,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/cache", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "292cd57b7c2e3c37aa2f0a2fa42dacae567dd5cd" + "reference": "f81360f9acb25aa356bc662d8b32bfaa70d264a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/292cd57b7c2e3c37aa2f0a2fa42dacae567dd5cd", - "reference": "292cd57b7c2e3c37aa2f0a2fa42dacae567dd5cd", + "url": "https://api.github.com/repos/symfony/cache/zipball/f81360f9acb25aa356bc662d8b32bfaa70d264a9", + "reference": "f81360f9acb25aa356bc662d8b32bfaa70d264a9", "shasum": "" }, "require": { @@ -2986,14 +2892,11 @@ "psr/simple-cache": "^1.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/var-dumper": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Cache\\": "" @@ -3036,7 +2939,7 @@ "type": "tidelift" } ], - "time": "2020-09-27T14:02:37+00:00" + "time": "2020-11-20T22:06:42+00:00" }, { "name": "symfony/cache-contracts", @@ -3116,16 +3019,16 @@ }, { "name": "symfony/config", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "6ad8be6e1280f6734150d8a04a9160dd34ceb191" + "reference": "25fe2a2d023c38ade5dbc2d80679462592284ed5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/6ad8be6e1280f6734150d8a04a9160dd34ceb191", - "reference": "6ad8be6e1280f6734150d8a04a9160dd34ceb191", + "url": "https://api.github.com/repos/symfony/config/zipball/25fe2a2d023c38ade5dbc2d80679462592284ed5", + "reference": "25fe2a2d023c38ade5dbc2d80679462592284ed5", "shasum": "" }, "require": { @@ -3149,11 +3052,6 @@ "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Config\\": "" @@ -3192,20 +3090,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-11-16T15:58:32+00:00" }, { "name": "symfony/console", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "ae789a8a2ad189ce7e8216942cdb9b77319f5eb8" + "reference": "037b57ac42cafb64b7b55273fe1786f35d623077" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/ae789a8a2ad189ce7e8216942cdb9b77319f5eb8", - "reference": "ae789a8a2ad189ce7e8216942cdb9b77319f5eb8", + "url": "https://api.github.com/repos/symfony/console/zipball/037b57ac42cafb64b7b55273fe1786f35d623077", + "reference": "037b57ac42cafb64b7b55273fe1786f35d623077", "shasum": "" }, "require": { @@ -3242,11 +3140,6 @@ "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -3285,20 +3178,20 @@ "type": "tidelift" } ], - "time": "2020-10-07T15:23:00+00:00" + "time": "2020-11-28T10:57:20+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "2dea4a3ef2eb79138354c1d49e9372cc921af20b" + "reference": "8b2ec9f453430252379aea343d02ed3579b18b44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2dea4a3ef2eb79138354c1d49e9372cc921af20b", - "reference": "2dea4a3ef2eb79138354c1d49e9372cc921af20b", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8b2ec9f453430252379aea343d02ed3579b18b44", + "reference": "8b2ec9f453430252379aea343d02ed3579b18b44", "shasum": "" }, "require": { @@ -3331,11 +3224,6 @@ "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" @@ -3374,7 +3262,7 @@ "type": "tidelift" } ], - "time": "2020-10-01T12:14:45+00:00" + "time": "2020-11-28T10:57:20+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3442,16 +3330,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "b7369a435a64d06e9036e69ed1cd6ce240338583" + "reference": "f8824e9c5adf3040fd64254e4d453fbc1bacf30c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/b7369a435a64d06e9036e69ed1cd6ce240338583", - "reference": "b7369a435a64d06e9036e69ed1cd6ce240338583", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/f8824e9c5adf3040fd64254e4d453fbc1bacf30c", + "reference": "f8824e9c5adf3040fd64254e4d453fbc1bacf30c", "shasum": "" }, "require": { @@ -3482,7 +3370,6 @@ "doctrine/data-fixtures": "^1.1", "doctrine/dbal": "~2.4|^3.0", "doctrine/orm": "^2.6.3", - "doctrine/reflection": "~1.0", "symfony/cache": "^5.1", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", @@ -3509,11 +3396,6 @@ "symfony/validator": "" }, "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\Doctrine\\": "" @@ -3552,20 +3434,20 @@ "type": "tidelift" } ], - "time": "2020-09-27T14:14:57+00:00" + "time": "2020-11-09T19:27:47+00:00" }, { "name": "symfony/dotenv", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "f406eaad1231415bf753fbef5aef267a787af4e5" + "reference": "264ca18dd6e4ab3cfa525ee52cceff9540a1019e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/f406eaad1231415bf753fbef5aef267a787af4e5", - "reference": "f406eaad1231415bf753fbef5aef267a787af4e5", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/264ca18dd6e4ab3cfa525ee52cceff9540a1019e", + "reference": "264ca18dd6e4ab3cfa525ee52cceff9540a1019e", "shasum": "" }, "require": { @@ -3576,11 +3458,6 @@ "symfony/process": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Dotenv\\": "" @@ -3624,20 +3501,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-11-18T09:42:36+00:00" }, { "name": "symfony/error-handler", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "5e4d8ef8d71822922d1eebd130219ae3491a5ca9" + "reference": "4be32277488607e38ad1108b08ca200882ef6077" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/5e4d8ef8d71822922d1eebd130219ae3491a5ca9", - "reference": "5e4d8ef8d71822922d1eebd130219ae3491a5ca9", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/4be32277488607e38ad1108b08ca200882ef6077", + "reference": "4be32277488607e38ad1108b08ca200882ef6077", "shasum": "" }, "require": { @@ -3652,11 +3529,6 @@ "symfony/serializer": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\ErrorHandler\\": "" @@ -3695,20 +3567,20 @@ "type": "tidelift" } ], - "time": "2020-10-02T08:49:02+00:00" + "time": "2020-10-28T21:31:18+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d5de97d6af175a9e8131c546db054ca32842dd0f" + "reference": "2c660884ec9413455af753515140ce696913693c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d5de97d6af175a9e8131c546db054ca32842dd0f", - "reference": "d5de97d6af175a9e8131c546db054ca32842dd0f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2c660884ec9413455af753515140ce696913693c", + "reference": "2c660884ec9413455af753515140ce696913693c", "shasum": "" }, "require": { @@ -3739,11 +3611,6 @@ "symfony/http-kernel": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" @@ -3782,7 +3649,7 @@ "type": "tidelift" } ], - "time": "2020-09-18T14:27:32+00:00" + "time": "2020-11-01T15:43:26+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3862,16 +3729,16 @@ }, { "name": "symfony/expression-language", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "e16e66c309214143cc01dae6d1ff1ee13e7be4fa" + "reference": "54a17a1dbaef38408000daa9423cb1d3a5201900" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/e16e66c309214143cc01dae6d1ff1ee13e7be4fa", - "reference": "e16e66c309214143cc01dae6d1ff1ee13e7be4fa", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/54a17a1dbaef38408000daa9423cb1d3a5201900", + "reference": "54a17a1dbaef38408000daa9423cb1d3a5201900", "shasum": "" }, "require": { @@ -3881,11 +3748,6 @@ "symfony/service-contracts": "^1.1|^2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\ExpressionLanguage\\": "" @@ -3924,20 +3786,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-10-28T21:31:18+00:00" }, { "name": "symfony/filesystem", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "1a8697545a8d87b9f2f6b1d32414199cc5e20aae" + "reference": "bb92ba7f38b037e531908590a858a04d85c0e238" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/1a8697545a8d87b9f2f6b1d32414199cc5e20aae", - "reference": "1a8697545a8d87b9f2f6b1d32414199cc5e20aae", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/bb92ba7f38b037e531908590a858a04d85c0e238", + "reference": "bb92ba7f38b037e531908590a858a04d85c0e238", "shasum": "" }, "require": { @@ -3945,11 +3807,6 @@ "symfony/polyfill-ctype": "~1.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" @@ -3988,31 +3845,26 @@ "type": "tidelift" } ], - "time": "2020-09-27T14:02:37+00:00" + "time": "2020-11-12T09:58:18+00:00" }, { "name": "symfony/finder", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2c3ba7ad6884e6c4451ce2340e2dc23f6fa3e0d8" + "reference": "fd8305521692f27eae3263895d1ef1571c71a78d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2c3ba7ad6884e6c4451ce2340e2dc23f6fa3e0d8", - "reference": "2c3ba7ad6884e6c4451ce2340e2dc23f6fa3e0d8", + "url": "https://api.github.com/repos/symfony/finder/zipball/fd8305521692f27eae3263895d1ef1571c71a78d", + "reference": "fd8305521692f27eae3263895d1ef1571c71a78d", "shasum": "" }, "require": { "php": ">=7.2.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" @@ -4051,20 +3903,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-11-18T09:42:36+00:00" }, { "name": "symfony/flex", - "version": "v1.9.10", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "7335ec033995aa34133e621627333368f260b626" + "reference": "ceb2b4e612bd0b4bb36a4d7fb2e800c861652f48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/7335ec033995aa34133e621627333368f260b626", - "reference": "7335ec033995aa34133e621627333368f260b626", + "url": "https://api.github.com/repos/symfony/flex/zipball/ceb2b4e612bd0b4bb36a4d7fb2e800c861652f48", + "reference": "ceb2b4e612bd0b4bb36a4d7fb2e800c861652f48", "shasum": "" }, "require": { @@ -4074,6 +3926,7 @@ "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" }, @@ -4114,20 +3967,20 @@ "type": "tidelift" } ], - "time": "2020-10-14T17:41:54+00:00" + "time": "2020-12-03T10:57:35+00:00" }, { "name": "symfony/form", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "f3a49105e472fd168b743acdb5e0524c66aeb287" + "reference": "56847a7c9df55341b6e99ec8ba8a097e9f66be73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/f3a49105e472fd168b743acdb5e0524c66aeb287", - "reference": "f3a49105e472fd168b743acdb5e0524c66aeb287", + "url": "https://api.github.com/repos/symfony/form/zipball/56847a7c9df55341b6e99ec8ba8a097e9f66be73", + "reference": "56847a7c9df55341b6e99ec8ba8a097e9f66be73", "shasum": "" }, "require": { @@ -4165,7 +4018,7 @@ "symfony/http-kernel": "^4.4|^5.0", "symfony/security-csrf": "^4.4|^5.0", "symfony/translation": "^4.4|^5.0", - "symfony/validator": "^4.4.12|^5.1.6", + "symfony/validator": "^4.4.17|^5.1.9", "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { @@ -4174,11 +4027,6 @@ "symfony/validator": "For form validation." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Form\\": "" @@ -4217,20 +4065,20 @@ "type": "tidelift" } ], - "time": "2020-10-02T12:58:01+00:00" + "time": "2020-11-28T10:57:20+00:00" }, { "name": "symfony/framework-bundle", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "023ca658526278c0e74542079f1984e042aa6c1d" + "reference": "d070863c197c6eb72ed3a54611b0a1bc5749ecc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/023ca658526278c0e74542079f1984e042aa6c1d", - "reference": "023ca658526278c0e74542079f1984e042aa6c1d", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/d070863c197c6eb72ed3a54611b0a1bc5749ecc2", + "reference": "d070863c197c6eb72ed3a54611b0a1bc5749ecc2", "shasum": "" }, "require": { @@ -4321,11 +4169,6 @@ "symfony/yaml": "For using the debug:config and lint:yaml commands" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\FrameworkBundle\\": "" @@ -4364,20 +4207,20 @@ "type": "tidelift" } ], - "time": "2020-09-30T05:27:28+00:00" + "time": "2020-11-27T14:08:52+00:00" }, { "name": "symfony/http-client", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "df757997ee95101c0ca94c7ea2b76e16a758e0ca" + "reference": "8b236277f97be2f56f79330910ce372293fdc5b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/df757997ee95101c0ca94c7ea2b76e16a758e0ca", - "reference": "df757997ee95101c0ca94c7ea2b76e16a758e0ca", + "url": "https://api.github.com/repos/symfony/http-client/zipball/8b236277f97be2f56f79330910ce372293fdc5b4", + "reference": "8b236277f97be2f56f79330910ce372293fdc5b4", "shasum": "" }, "require": { @@ -4407,11 +4250,6 @@ "symfony/process": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\HttpClient\\": "" @@ -4450,7 +4288,7 @@ "type": "tidelift" } ], - "time": "2020-10-02T14:24:03+00:00" + "time": "2020-11-28T13:45:11+00:00" }, { "name": "symfony/http-client-contracts", @@ -4530,16 +4368,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "353b42e7b4fd1c898aab09a059466c9cea74039b" + "reference": "1e6e9e28369ddd3fd66ca14a469c21ae9b51969a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/353b42e7b4fd1c898aab09a059466c9cea74039b", - "reference": "353b42e7b4fd1c898aab09a059466c9cea74039b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/1e6e9e28369ddd3fd66ca14a469c21ae9b51969a", + "reference": "1e6e9e28369ddd3fd66ca14a469c21ae9b51969a", "shasum": "" }, "require": { @@ -4558,11 +4396,6 @@ "symfony/mime": "To use the file extension guesser" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" @@ -4601,20 +4434,20 @@ "type": "tidelift" } ], - "time": "2020-09-27T14:14:57+00:00" + "time": "2020-11-15T22:55:04+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1764b87d2f10d5c9ce6e4850fe27934116d89708" + "reference": "2d0daaf17c9fe14eb3519b94b83d746554ecfd9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1764b87d2f10d5c9ce6e4850fe27934116d89708", - "reference": "1764b87d2f10d5c9ce6e4850fe27934116d89708", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2d0daaf17c9fe14eb3519b94b83d746554ecfd9c", + "reference": "2d0daaf17c9fe14eb3519b94b83d746554ecfd9c", "shasum": "" }, "require": { @@ -4672,11 +4505,6 @@ "symfony/dependency-injection": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\HttpKernel\\": "" @@ -4715,20 +4543,20 @@ "type": "tidelift" } ], - "time": "2020-10-04T07:57:28+00:00" + "time": "2020-11-29T09:27:52+00:00" }, { "name": "symfony/intl", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "9381fd69ce6407041185aa6f1bafbf7d65f0e66a" + "reference": "eaac169bf64d307d48daef7e349729d670df6659" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/9381fd69ce6407041185aa6f1bafbf7d65f0e66a", - "reference": "9381fd69ce6407041185aa6f1bafbf7d65f0e66a", + "url": "https://api.github.com/repos/symfony/intl/zipball/eaac169bf64d307d48daef7e349729d670df6659", + "reference": "eaac169bf64d307d48daef7e349729d670df6659", "shasum": "" }, "require": { @@ -4743,11 +4571,6 @@ "ext-intl": "to use the component with locales other than \"en\"" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Intl\\": "" @@ -4805,20 +4628,20 @@ "type": "tidelift" } ], - "time": "2020-09-27T03:44:28+00:00" + "time": "2020-11-03T11:59:17+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "37255bdafc2f94155a90154b1f9878eae020106d" + "reference": "763f8d9ca7e1e1a5be5cdda8a6702291825aff67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/37255bdafc2f94155a90154b1f9878eae020106d", - "reference": "37255bdafc2f94155a90154b1f9878eae020106d", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/763f8d9ca7e1e1a5be5cdda8a6702291825aff67", + "reference": "763f8d9ca7e1e1a5be5cdda8a6702291825aff67", "shasum": "" }, "require": { @@ -4845,11 +4668,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": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\Monolog\\": "" @@ -4888,7 +4706,7 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-10-28T21:31:18+00:00" }, { "name": "symfony/monolog-bundle", @@ -4969,16 +4787,16 @@ }, { "name": "symfony/options-resolver", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd" + "reference": "c6a02905e4ffc7a1498e8ee019db2b477cd1cc02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4c7e155bf7d93ea4ba3824d5a14476694a5278dd", - "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/c6a02905e4ffc7a1498e8ee019db2b477cd1cc02", + "reference": "c6a02905e4ffc7a1498e8ee019db2b477cd1cc02", "shasum": "" }, "require": { @@ -4987,11 +4805,6 @@ "symfony/polyfill-php80": "^1.15" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\OptionsResolver\\": "" @@ -5035,7 +4848,7 @@ "type": "tidelift" } ], - "time": "2020-09-27T03:44:28+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/orm-pack", @@ -5081,20 +4894,20 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b740103edbdcc39602239ee8860f0f45a8eb9aa5" + "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c" }, "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/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", + "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-intl": "For best performance" @@ -5102,7 +4915,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5155,24 +4968,24 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "4e45a6e39041a9cc78835b11abc47874ae302a55" + "reference": "c44d5bf6a75eed79555c6bf37505c6d39559353e" }, "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/c44d5bf6a75eed79555c6bf37505c6d39559353e", + "reference": "c44d5bf6a75eed79555c6bf37505c6d39559353e", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=7.1", "symfony/intl": "~2.3|~3.0|~4.0|~5.0" }, "suggest": { @@ -5181,7 +4994,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5231,26 +5044,25 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251" + "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117" }, "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/3b75acd829741c768bc8b1f84eb33265e7cc5117", + "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117", "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": { @@ -5259,7 +5071,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5316,24 +5128,24 @@ "type": "tidelift" } ], - "time": "2020-08-04T06:02:08+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e" + "reference": "727d1096295d807c309fb01a851577302394c897" }, "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/727d1096295d807c309fb01a851577302394c897", + "reference": "727d1096295d807c309fb01a851577302394c897", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-intl": "For best performance" @@ -5341,7 +5153,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5397,24 +5209,24 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a" + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a", - "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-mbstring": "For best performance" @@ -5422,7 +5234,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5474,29 +5286,29 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "639447d008615574653fb3bc60d1986d7172eaae" + "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae", - "reference": "639447d008615574653fb3bc60d1986d7172eaae", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", + "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5547,29 +5359,29 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca" + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca", - "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5623,29 +5435,29 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.18.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981" + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981", - "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", "shasum": "" }, "require": { - "php": ">=7.0.8" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.20-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5703,20 +5515,20 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/process", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d3a2e64866169586502f0cd9cab69135ad12cee9" + "reference": "b25b468538c82f6594058aabaa9bac48d7ef2170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d3a2e64866169586502f0cd9cab69135ad12cee9", - "reference": "d3a2e64866169586502f0cd9cab69135ad12cee9", + "url": "https://api.github.com/repos/symfony/process/zipball/b25b468538c82f6594058aabaa9bac48d7ef2170", + "reference": "b25b468538c82f6594058aabaa9bac48d7ef2170", "shasum": "" }, "require": { @@ -5724,11 +5536,6 @@ "symfony/polyfill-php80": "^1.15" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -5767,20 +5574,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-11-02T15:45:32+00:00" }, { "name": "symfony/property-access", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "4c43f7ff784e1e3ee1c96e15f76b342af6617b39" + "reference": "d979b802a230cce0e7ff0d60e643c5d74edb2daf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/4c43f7ff784e1e3ee1c96e15f76b342af6617b39", - "reference": "4c43f7ff784e1e3ee1c96e15f76b342af6617b39", + "url": "https://api.github.com/repos/symfony/property-access/zipball/d979b802a230cce0e7ff0d60e643c5d74edb2daf", + "reference": "d979b802a230cce0e7ff0d60e643c5d74edb2daf", "shasum": "" }, "require": { @@ -5795,11 +5602,6 @@ "psr/cache-implementation": "To cache access methods." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\PropertyAccess\\": "" @@ -5849,20 +5651,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-11-01T15:43:26+00:00" }, { "name": "symfony/property-info", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "22518930091e0bdb249694efc509e3697f7e325e" + "reference": "5bc012adfe3d365db3cec3b050513950b19966b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/22518930091e0bdb249694efc509e3697f7e325e", - "reference": "22518930091e0bdb249694efc509e3697f7e325e", + "url": "https://api.github.com/repos/symfony/property-info/zipball/5bc012adfe3d365db3cec3b050513950b19966b3", + "reference": "5bc012adfe3d365db3cec3b050513950b19966b3", "shasum": "" }, "require": { @@ -5889,11 +5691,6 @@ "symfony/serializer": "To use Serializer metadata" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\PropertyInfo\\": "" @@ -5940,20 +5737,20 @@ "type": "tidelift" } ], - "time": "2020-09-07T05:10:28+00:00" + "time": "2020-10-28T21:31:18+00:00" }, { "name": "symfony/routing", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "720348c2ae011f8c56964c0fc3e992840cb60ccf" + "reference": "461b184cfe5c2e677bbd67761aa377914ab48a16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/720348c2ae011f8c56964c0fc3e992840cb60ccf", - "reference": "720348c2ae011f8c56964c0fc3e992840cb60ccf", + "url": "https://api.github.com/repos/symfony/routing/zipball/461b184cfe5c2e677bbd67761aa377914ab48a16", + "reference": "461b184cfe5c2e677bbd67761aa377914ab48a16", "shasum": "" }, "require": { @@ -5983,11 +5780,6 @@ "symfony/yaml": "For using the YAML loader" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Routing\\": "" @@ -6032,20 +5824,20 @@ "type": "tidelift" } ], - "time": "2020-10-02T13:05:43+00:00" + "time": "2020-11-26T23:46:31+00:00" }, { "name": "symfony/security-bundle", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "c9cbe7d78d734062365e2af6d8d475d8888a7bcc" + "reference": "1060810a1dc7361304c50d4aa2569fe5b4da60c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/c9cbe7d78d734062365e2af6d8d475d8888a7bcc", - "reference": "c9cbe7d78d734062365e2af6d8d475d8888a7bcc", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/1060810a1dc7361304c50d4aa2569fe5b4da60c6", + "reference": "1060810a1dc7361304c50d4aa2569fe5b4da60c6", "shasum": "" }, "require": { @@ -6088,11 +5880,6 @@ "twig/twig": "^2.10|^3.0" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\SecurityBundle\\": "" @@ -6131,20 +5918,20 @@ "type": "tidelift" } ], - "time": "2020-09-20T07:33:50+00:00" + "time": "2020-11-01T15:43:26+00:00" }, { "name": "symfony/security-core", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "6c5d337d9549c1ab4c2edcee50bbb0bc509ebb17" + "reference": "a6d771e97bf3886e3ff5bdcf93f358e81bd873b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/6c5d337d9549c1ab4c2edcee50bbb0bc509ebb17", - "reference": "6c5d337d9549c1ab4c2edcee50bbb0bc509ebb17", + "url": "https://api.github.com/repos/symfony/security-core/zipball/a6d771e97bf3886e3ff5bdcf93f358e81bd873b4", + "reference": "a6d771e97bf3886e3ff5bdcf93f358e81bd873b4", "shasum": "" }, "require": { @@ -6166,6 +5953,7 @@ "symfony/expression-language": "^4.4|^5.0", "symfony/http-foundation": "^4.4|^5.0", "symfony/ldap": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", "symfony/validator": "^4.4|^5.0" }, "suggest": { @@ -6177,11 +5965,6 @@ "symfony/validator": "For using the user password constraint" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Core\\": "" @@ -6220,20 +6003,20 @@ "type": "tidelift" } ], - "time": "2020-10-04T07:09:21+00:00" + "time": "2020-11-28T10:57:20+00:00" }, { "name": "symfony/security-csrf", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "f1659a16028a50766dbffa73160fb94599131014" + "reference": "d98a521e3c7ffa15c142e8b1e68a55fdeb58d4b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/f1659a16028a50766dbffa73160fb94599131014", - "reference": "f1659a16028a50766dbffa73160fb94599131014", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/d98a521e3c7ffa15c142e8b1e68a55fdeb58d4b7", + "reference": "d98a521e3c7ffa15c142e8b1e68a55fdeb58d4b7", "shasum": "" }, "require": { @@ -6250,11 +6033,6 @@ "symfony/http-foundation": "For using the class SessionTokenStorage." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Csrf\\": "" @@ -6293,20 +6071,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-11-01T15:43:26+00:00" }, { "name": "symfony/security-guard", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/security-guard.git", - "reference": "85c368be963e9f0df9e93d830f966fc0af531703" + "reference": "e9d11fd6fcdb27ca5b83db44093289a1d6a3b771" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-guard/zipball/85c368be963e9f0df9e93d830f966fc0af531703", - "reference": "85c368be963e9f0df9e93d830f966fc0af531703", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/e9d11fd6fcdb27ca5b83db44093289a1d6a3b771", + "reference": "e9d11fd6fcdb27ca5b83db44093289a1d6a3b771", "shasum": "" }, "require": { @@ -6319,11 +6097,6 @@ "psr/log": "~1.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Guard\\": "" @@ -6362,20 +6135,20 @@ "type": "tidelift" } ], - "time": "2020-05-20T17:43:50+00:00" + "time": "2020-11-01T15:43:26+00:00" }, { "name": "symfony/security-http", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "22d653f2b407794f6a81cc1a76aa617e65ad6d86" + "reference": "a3a65306b8bf48611bd85deec8acccd4e8bcae0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/22d653f2b407794f6a81cc1a76aa617e65ad6d86", - "reference": "22d653f2b407794f6a81cc1a76aa617e65ad6d86", + "url": "https://api.github.com/repos/symfony/security-http/zipball/a3a65306b8bf48611bd85deec8acccd4e8bcae0b", + "reference": "a3a65306b8bf48611bd85deec8acccd4e8bcae0b", "shasum": "" }, "require": { @@ -6401,11 +6174,6 @@ "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Http\\": "" @@ -6444,20 +6212,20 @@ "type": "tidelift" } ], - "time": "2020-10-03T13:02:03+00:00" + "time": "2020-10-28T21:33:29+00:00" }, { "name": "symfony/serializer", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "6b673b802dabd2bcf7cab05d04d2d8ef8891b952" + "reference": "5bc62ff6cd4678363ae19a633667fd318b1a72f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/6b673b802dabd2bcf7cab05d04d2d8ef8891b952", - "reference": "6b673b802dabd2bcf7cab05d04d2d8ef8891b952", + "url": "https://api.github.com/repos/symfony/serializer/zipball/5bc62ff6cd4678363ae19a633667fd318b1a72f7", + "reference": "5bc62ff6cd4678363ae19a633667fd318b1a72f7", "shasum": "" }, "require": { @@ -6498,11 +6266,6 @@ "symfony/yaml": "For using the default YAML mapping loader." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Serializer\\": "" @@ -6541,25 +6304,24 @@ "type": "tidelift" } ], - "time": "2020-10-03T13:58:17+00:00" + "time": "2020-11-27T05:53:16+00:00" }, { "name": "symfony/serializer-pack", - "version": "v1.0.3", + "version": "v1.0.4", "source": { "type": "git", "url": "https://github.com/symfony/serializer-pack.git", - "reference": "9bbce72dcad0cca797b678d3bfb764cf923ab28a" + "reference": "61173947057d5e1bf1c79e2a6ab6a8430be0602e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer-pack/zipball/9bbce72dcad0cca797b678d3bfb764cf923ab28a", - "reference": "9bbce72dcad0cca797b678d3bfb764cf923ab28a", + "url": "https://api.github.com/repos/symfony/serializer-pack/zipball/61173947057d5e1bf1c79e2a6ab6a8430be0602e", + "reference": "61173947057d5e1bf1c79e2a6ab6a8430be0602e", "shasum": "" }, "require": { "doctrine/annotations": "^1.0", - "php": "^7.0", "phpdocumentor/reflection-docblock": "*", "symfony/property-access": "*", "symfony/property-info": "*", @@ -6571,7 +6333,21 @@ "MIT" ], "description": "A pack for the Symfony serializer", - "time": "2020-03-28T16: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": "2020-10-19T08:52:16+00:00" }, { "name": "symfony/service-contracts", @@ -6651,16 +6427,16 @@ }, { "name": "symfony/stopwatch", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "0f7c58cf81dbb5dd67d423a89d577524a2ec0323" + "reference": "fcda7f14c3b39d33f9c788aea9afb1b5f5c288c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0f7c58cf81dbb5dd67d423a89d577524a2ec0323", - "reference": "0f7c58cf81dbb5dd67d423a89d577524a2ec0323", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fcda7f14c3b39d33f9c788aea9afb1b5f5c288c6", + "reference": "fcda7f14c3b39d33f9c788aea9afb1b5f5c288c6", "shasum": "" }, "require": { @@ -6668,11 +6444,6 @@ "symfony/service-contracts": "^1.0|^2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Stopwatch\\": "" @@ -6711,20 +6482,20 @@ "type": "tidelift" } ], - "time": "2020-05-20T17:43:50+00:00" + "time": "2020-11-01T15:43:26+00:00" }, { "name": "symfony/string", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "4a9afe9d07bac506f75bcee8ed3ce76da5a9343e" + "reference": "a97573e960303db71be0dd8fda9be3bca5e0feea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4a9afe9d07bac506f75bcee8ed3ce76da5a9343e", - "reference": "4a9afe9d07bac506f75bcee8ed3ce76da5a9343e", + "url": "https://api.github.com/repos/symfony/string/zipball/a97573e960303db71be0dd8fda9be3bca5e0feea", + "reference": "a97573e960303db71be0dd8fda9be3bca5e0feea", "shasum": "" }, "require": { @@ -6742,11 +6513,6 @@ "symfony/var-exporter": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\String\\": "" @@ -6796,7 +6562,7 @@ "type": "tidelift" } ], - "time": "2020-09-15T12:23:47+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/swiftmailer-bundle", @@ -6876,16 +6642,16 @@ }, { "name": "symfony/translation", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "e3cdd5119b1b5bf0698c351b8ee20fb5a4ea248b" + "reference": "b52e4184a38b69148a2b129c77cf47b8ce61d23f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/e3cdd5119b1b5bf0698c351b8ee20fb5a4ea248b", - "reference": "e3cdd5119b1b5bf0698c351b8ee20fb5a4ea248b", + "url": "https://api.github.com/repos/symfony/translation/zipball/b52e4184a38b69148a2b129c77cf47b8ce61d23f", + "reference": "b52e4184a38b69148a2b129c77cf47b8ce61d23f", "shasum": "" }, "require": { @@ -6921,11 +6687,6 @@ "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Translation\\": "" @@ -6964,7 +6725,7 @@ "type": "tidelift" } ], - "time": "2020-09-27T03:44:28+00:00" + "time": "2020-11-28T10:57:20+00:00" }, { "name": "symfony/translation-contracts", @@ -7043,16 +6804,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "ad3c3e89353749dcead9ee25388177ebbb4569a1" + "reference": "49a58af9f34ffcb11ef47d1ba1f8425396a6eac4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/ad3c3e89353749dcead9ee25388177ebbb4569a1", - "reference": "ad3c3e89353749dcead9ee25388177ebbb4569a1", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/49a58af9f34ffcb11ef47d1ba1f8425396a6eac4", + "reference": "49a58af9f34ffcb11ef47d1ba1f8425396a6eac4", "shasum": "" }, "require": { @@ -7076,7 +6837,7 @@ "symfony/dependency-injection": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/finder": "^4.4|^5.0", - "symfony/form": "^5.1", + "symfony/form": "^5.1.9", "symfony/http-foundation": "^4.4|^5.0", "symfony/http-kernel": "^4.4|^5.0", "symfony/mime": "^4.4|^5.0", @@ -7112,11 +6873,6 @@ "symfony/yaml": "For using the YamlExtension" }, "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\Twig\\": "" @@ -7155,20 +6911,20 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-11-28T10:57:20+00:00" }, { "name": "symfony/twig-bundle", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "8898ef8aea8fa48638e15ce00c7c6318ce570ce1" + "reference": "370bb30a9e8dc2b0c29791eec300b0b529bd783f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/8898ef8aea8fa48638e15ce00c7c6318ce570ce1", - "reference": "8898ef8aea8fa48638e15ce00c7c6318ce570ce1", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/370bb30a9e8dc2b0c29791eec300b0b529bd783f", + "reference": "370bb30a9e8dc2b0c29791eec300b0b529bd783f", "shasum": "" }, "require": { @@ -7201,11 +6957,6 @@ "symfony/yaml": "^4.4|^5.0" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\TwigBundle\\": "" @@ -7244,20 +6995,20 @@ "type": "tidelift" } ], - "time": "2020-05-20T17:43:50+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/validator", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "30f946a6d12518b806a785a4ba83c820f6f807ec" + "reference": "acf84937b932fe575e4e4892eecee5a6c5ca8b78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/30f946a6d12518b806a785a4ba83c820f6f807ec", - "reference": "30f946a6d12518b806a785a4ba83c820f6f807ec", + "url": "https://api.github.com/repos/symfony/validator/zipball/acf84937b932fe575e4e4892eecee5a6c5ca8b78", + "reference": "acf84937b932fe575e4e4892eecee5a6c5ca8b78", "shasum": "" }, "require": { @@ -7291,7 +7042,6 @@ "symfony/http-kernel": "^4.4|^5.0", "symfony/intl": "^4.4|^5.0", "symfony/mime": "^4.4|^5.0", - "symfony/phpunit-bridge": "^5.1.1", "symfony/property-access": "^4.4|^5.0", "symfony/property-info": "^4.4|^5.0", "symfony/translation": "^4.4|^5.0", @@ -7312,11 +7062,6 @@ "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Validator\\": "" @@ -7355,20 +7100,20 @@ "type": "tidelift" } ], - "time": "2020-09-27T03:44:28+00:00" + "time": "2020-11-28T10:57:20+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c976c115a0d788808f7e71834c8eb0844f678d02" + "reference": "006fc2312ee014e1ba46c01185423c010310d00f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c976c115a0d788808f7e71834c8eb0844f678d02", - "reference": "c976c115a0d788808f7e71834c8eb0844f678d02", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/006fc2312ee014e1ba46c01185423c010310d00f", + "reference": "006fc2312ee014e1ba46c01185423c010310d00f", "shasum": "" }, "require": { @@ -7395,11 +7140,6 @@ "Resources/bin/var-dump-server" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "files": [ "Resources/functions/dump.php" @@ -7445,20 +7185,20 @@ "type": "tidelift" } ], - "time": "2020-09-18T14:27:32+00:00" + "time": "2020-11-26T23:46:31+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "8b858508e49beb257fd635104c3d449a8113e8fe" + "reference": "fbc3507f23d263d75417e09a12d77c009f39676c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8b858508e49beb257fd635104c3d449a8113e8fe", - "reference": "8b858508e49beb257fd635104c3d449a8113e8fe", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/fbc3507f23d263d75417e09a12d77c009f39676c", + "reference": "fbc3507f23d263d75417e09a12d77c009f39676c", "shasum": "" }, "require": { @@ -7469,11 +7209,6 @@ "symfony/var-dumper": "^4.4.9|^5.0.9" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\VarExporter\\": "" @@ -7520,20 +7255,20 @@ "type": "tidelift" } ], - "time": "2020-09-08T14:19:54+00:00" + "time": "2020-10-28T21:31:18+00:00" }, { "name": "symfony/web-link", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/web-link.git", - "reference": "ba2554887e34e693e3888f23f83c72d5ce04bfb2" + "reference": "e805314ad8c4298d9bfc75335e35f83d6db2f43f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-link/zipball/ba2554887e34e693e3888f23f83c72d5ce04bfb2", - "reference": "ba2554887e34e693e3888f23f83c72d5ce04bfb2", + "url": "https://api.github.com/repos/symfony/web-link/zipball/e805314ad8c4298d9bfc75335e35f83d6db2f43f", + "reference": "e805314ad8c4298d9bfc75335e35f83d6db2f43f", "shasum": "" }, "require": { @@ -7554,11 +7289,6 @@ "symfony/http-kernel": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\WebLink\\": "" @@ -7609,20 +7339,20 @@ "type": "tidelift" } ], - "time": "2020-05-28T08:20:44+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/yaml", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e147a68cb66a8b510f4b7481fe4da5b2ab65ec6a" + "reference": "bb73619b2ae5121bbbcd9f191dfd53ded17ae598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e147a68cb66a8b510f4b7481fe4da5b2ab65ec6a", - "reference": "e147a68cb66a8b510f4b7481fe4da5b2ab65ec6a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/bb73619b2ae5121bbbcd9f191dfd53ded17ae598", + "reference": "bb73619b2ae5121bbbcd9f191dfd53ded17ae598", "shasum": "" }, "require": { @@ -7643,11 +7373,6 @@ "Resources/bin/yaml-lint" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -7686,20 +7411,20 @@ "type": "tidelift" } ], - "time": "2020-09-27T03:44:28+00:00" + "time": "2020-11-28T10:57:20+00:00" }, { "name": "twig/twig", - "version": "v3.0.5", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9b76b1535483cdf4edf01bb787b0217b62bd68a5" + "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9b76b1535483cdf4edf01bb787b0217b62bd68a5", - "reference": "9b76b1535483cdf4edf01bb787b0217b62bd68a5", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/b02fa41f3783a2616eccef7b92fbc2343ffed737", + "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737", "shasum": "" }, "require": { @@ -7714,7 +7439,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -7758,7 +7483,7 @@ "type": "tidelift" } ], - "time": "2020-08-05T15:13:19+00:00" + "time": "2020-10-27T19:28:23+00:00" }, { "name": "webmozart/assert", @@ -7926,16 +7651,16 @@ "packages-dev": [ { "name": "nikic/php-parser", - "version": "v4.10.2", + "version": "v4.10.3", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "658f1be311a230e0907f5dfe0213742aff0596de" + "reference": "dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/658f1be311a230e0907f5dfe0213742aff0596de", - "reference": "658f1be311a230e0907f5dfe0213742aff0596de", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984", + "reference": "dbe56d23de8fcb157bbc0cfb3ad7c7de0cfb0984", "shasum": "" }, "require": { @@ -7974,20 +7699,20 @@ "parser", "php" ], - "time": "2020-09-26T10:30:38+00:00" + "time": "2020-12-03T17:45:45+00:00" }, { "name": "symfony/browser-kit", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "8944cc83bb18f83f577225c695d999044e7c62b0" + "reference": "86aed11abd2a70f7f5694f639743ac9c1dbb8512" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/8944cc83bb18f83f577225c695d999044e7c62b0", - "reference": "8944cc83bb18f83f577225c695d999044e7c62b0", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/86aed11abd2a70f7f5694f639743ac9c1dbb8512", + "reference": "86aed11abd2a70f7f5694f639743ac9c1dbb8512", "shasum": "" }, "require": { @@ -8004,11 +7729,6 @@ "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\BrowserKit\\": "" @@ -8047,31 +7767,26 @@ "type": "tidelift" } ], - "time": "2020-10-02T08:49:02+00:00" + "time": "2020-10-28T21:31:18+00:00" }, { "name": "symfony/css-selector", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "e544e24472d4c97b2d11ade7caacd446727c6bf9" + "reference": "b8d8eb06b0942e84a69e7acebc3e9c1e6e6e7256" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/e544e24472d4c97b2d11ade7caacd446727c6bf9", - "reference": "e544e24472d4c97b2d11ade7caacd446727c6bf9", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/b8d8eb06b0942e84a69e7acebc3e9c1e6e6e7256", + "reference": "b8d8eb06b0942e84a69e7acebc3e9c1e6e6e7256", "shasum": "" }, "require": { "php": ">=7.2.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\CssSelector\\": "" @@ -8114,20 +7829,20 @@ "type": "tidelift" } ], - "time": "2020-05-20T17:43:50+00:00" + "time": "2020-10-28T21:31:18+00:00" }, { "name": "symfony/debug-bundle", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/debug-bundle.git", - "reference": "3f4bcea52678eedf19260973217f5ae7b835edf5" + "reference": "183a36bdb251eeeeff640ffbceea3403ac5c8d40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/3f4bcea52678eedf19260973217f5ae7b835edf5", - "reference": "3f4bcea52678eedf19260973217f5ae7b835edf5", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/183a36bdb251eeeeff640ffbceea3403ac5c8d40", + "reference": "183a36bdb251eeeeff640ffbceea3403ac5c8d40", "shasum": "" }, "require": { @@ -8151,11 +7866,6 @@ "symfony/dependency-injection": "For using as a service from the container" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\DebugBundle\\": "" @@ -8194,24 +7904,23 @@ "type": "tidelift" } ], - "time": "2020-05-20T17:43:50+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/debug-pack", - "version": "v1.0.8", + "version": "v1.0.9", "source": { "type": "git", "url": "https://github.com/symfony/debug-pack.git", - "reference": "7310a66f9f81c9f292ff9089f0b0062386cb83fb" + "reference": "cfd5093378e9cafe500f05c777a22fe8a64a9342" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-pack/zipball/7310a66f9f81c9f292ff9089f0b0062386cb83fb", - "reference": "7310a66f9f81c9f292ff9089f0b0062386cb83fb", + "url": "https://api.github.com/repos/symfony/debug-pack/zipball/cfd5093378e9cafe500f05c777a22fe8a64a9342", + "reference": "cfd5093378e9cafe500f05c777a22fe8a64a9342", "shasum": "" }, "require": { - "php": "^7.0", "symfony/debug-bundle": "*", "symfony/monolog-bundle": "^3.0", "symfony/profiler-pack": "*", @@ -8223,20 +7932,34 @@ "MIT" ], "description": "A debug pack for Symfony projects", - "time": "2020-04-07T10:08:51+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-19T08:51:51+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "6d6885e167aad0af4128b392f22d8f2a33dd88ec" + "reference": "0969122fe144dd8ab2e8c98c7e03eedc621b368c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/6d6885e167aad0af4128b392f22d8f2a33dd88ec", - "reference": "6d6885e167aad0af4128b392f22d8f2a33dd88ec", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/0969122fe144dd8ab2e8c98c7e03eedc621b368c", + "reference": "0969122fe144dd8ab2e8c98c7e03eedc621b368c", "shasum": "" }, "require": { @@ -8256,11 +7979,6 @@ "symfony/css-selector": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\DomCrawler\\": "" @@ -8299,29 +8017,30 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-10-24T12:01:57+00:00" }, { "name": "symfony/maker-bundle", - "version": "v1.21.1", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "da629093c7bf9abd9a6a0f232a43bbb1b88de68d" + "reference": "6d2da12632f5c8b9aa7b159f0bb46f245289434a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/da629093c7bf9abd9a6a0f232a43bbb1b88de68d", - "reference": "da629093c7bf9abd9a6a0f232a43bbb1b88de68d", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/6d2da12632f5c8b9aa7b159f0bb46f245289434a", + "reference": "6d2da12632f5c8b9aa7b159f0bb46f245289434a", "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", @@ -8342,7 +8061,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "1.0-dev" } }, "autoload": { @@ -8382,20 +8101,20 @@ "type": "tidelift" } ], - "time": "2020-08-29T18:05:46+00:00" + "time": "2020-12-07T14:47:57+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v5.1.7", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "150aeb91dd9dafe13ec8416abd62e435330ca12d" + "reference": "92a76ca5e64effd41ce111b8f476144dfa29f1f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/150aeb91dd9dafe13ec8416abd62e435330ca12d", - "reference": "150aeb91dd9dafe13ec8416abd62e435330ca12d", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/92a76ca5e64effd41ce111b8f476144dfa29f1f0", + "reference": "92a76ca5e64effd41ce111b8f476144dfa29f1f0", "shasum": "" }, "require": { @@ -8405,7 +8124,8 @@ "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/deprecation-contracts": "^2.1", + "symfony/error-handler": "^4.4|^5.0" }, "suggest": { "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" @@ -8415,9 +8135,6 @@ ], "type": "symfony-bridge", "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - }, "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" @@ -8464,7 +8181,7 @@ "type": "tidelift" } ], - "time": "2020-10-02T12:57:56+00:00" + "time": "2020-11-27T00:39:34+00:00" }, { "name": "symfony/profiler-pack", @@ -8509,20 +8226,19 @@ }, { "name": "symfony/test-pack", - "version": "v1.0.6", + "version": "v1.0.7", "source": { "type": "git", "url": "https://github.com/symfony/test-pack.git", - "reference": "ff87e800a67d06c423389f77b8209bc9dc469def" + "reference": "e61756c97cbedae00b7cf43b87abcfadfeb2746c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/test-pack/zipball/ff87e800a67d06c423389f77b8209bc9dc469def", - "reference": "ff87e800a67d06c423389f77b8209bc9dc469def", + "url": "https://api.github.com/repos/symfony/test-pack/zipball/e61756c97cbedae00b7cf43b87abcfadfeb2746c", + "reference": "e61756c97cbedae00b7cf43b87abcfadfeb2746c", "shasum": "" }, "require": { - "php": "^7.0", "symfony/browser-kit": "*", "symfony/css-selector": "*", "symfony/phpunit-bridge": "*" @@ -8533,20 +8249,34 @@ "MIT" ], "description": "A pack for functional and end-to-end testing within a Symfony app", - "time": "2019-06-21T06:27: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": "2020-10-19T08:52:28+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v5.1.7", + "version": "v5.1.9", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "4b02edb4c4c2d57b94e62904e45f3484b29d36eb" + "reference": "2e18206d542245c8abbdad3270067aae9995dba7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/4b02edb4c4c2d57b94e62904e45f3484b29d36eb", - "reference": "4b02edb4c4c2d57b94e62904e45f3484b29d36eb", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/2e18206d542245c8abbdad3270067aae9995dba7", + "reference": "2e18206d542245c8abbdad3270067aae9995dba7", "shasum": "" }, "require": { @@ -8569,11 +8299,6 @@ "symfony/stopwatch": "^4.4|^5.0" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bundle\\WebProfilerBundle\\": "" @@ -8612,7 +8337,7 @@ "type": "tidelift" } ], - "time": "2020-09-07T05:10:28+00:00" + "time": "2020-10-28T21:31:18+00:00" } ], "aliases": [], diff --git a/public/js/app.js b/public/js/app.js index 4e0884f..e9abe2f 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -8,12 +8,47 @@ $(document).ready(function() { $('a.delete-modal').click(function() { // Grab real target url for deletion let targetUrl = $(this).attr('data-href'); + let modalFlavour = $(this).attr('data-flavour'); // Put it into the modal's OK button - $('#delete .target-url').attr('href', targetUrl); + $('#delete-' + modalFlavour + ' .target-url').attr('href', targetUrl); // Show the modal - $('#delete').modal('show'); + $('#delete-' + modalFlavour).modal('show'); + }) + + // "Sharing settings" modals + $('a.share-modal').click(function() { + // Grab calendar shares url and add url + let shareesUrl = $(this).attr('data-sharees-href'); + let targetUrl = $(this).attr('data-href'); + + // Put it into the modal's OK button + $('#share .add-sharee').attr('data-href', targetUrl); + + // Get calendar shares + $.get(shareesUrl, function(data) { + // Catch error TODO + $('#shares').empty() + if (data.length === 0) { + $('.none').removeClass('d-none') + } else { + $('.none').addClass('d-none') + data.forEach(element => { + const newShare = $($('#template-share').html()) + newShare.find('span.name').text(element.displayName) + newShare.find('span.badge').text(element.accessText) + newShare.find('a.revoke').attr('href', element.revokeUrl) + if (element.isWriteAccess) { + newShare.find('span.badge').addClass('badge-success').removeClass('badge-info') + } + newShare.appendTo($('#shares')); + }); + } + }) + + // Show the modal + $('#share').modal('show'); }) // Color swatch : update it live (not working in IE ¯\_(ツ)_/¯ but it's just a nice to have) @@ -22,6 +57,12 @@ $(document).ready(function() { }) document.body.style.setProperty('--calendar-color', $('#calendar_instance_calendarColor').val()); + // Modal to add a sharee on a calendar, catch the click to add the query parameter + $('a.add-sharee').click(function(e) { + e.preventDefault() + window.location = $(this).attr('data-href') + "?principalId=" + $("#member").val() + "&write=" + ($("#write").is(':checked') ? 'true' : 'false') + }) + // Modal to add delegate, catch the click to add the query parameter $('a.add-delegate').click(function(e) { e.preventDefault() diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index eb44db2..d730936 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -16,6 +16,7 @@ use App\Form\UserType; use App\Services\Utils; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; use Symfony\Contracts\Translation\TranslatorInterface; @@ -204,18 +205,153 @@ public function userDelete(string $username, TranslatorInterface $trans) return $this->redirectToRoute('users'); } + /** + * @Route("/users/delegates/{username}", name="delegates") + */ + public function userDelegates(string $username) + { + $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username); + + $allPrincipalsExcept = $this->get('doctrine')->getRepository(Principal::class)->findAllExceptPrincipal(Principal::PREFIX.$username); + + // Get delegates. They are not linked to the principal in itself, but to its proxies + $principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::READ_PROXY_SUFFIX); + $principalProxyWrite = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX); + + return $this->render('users/delegates.html.twig', [ + 'principal' => $principal, + 'delegation' => $principalProxyRead && $principalProxyWrite, + 'principalProxyRead' => $principalProxyRead, + 'principalProxyWrite' => $principalProxyWrite, + 'allPrincipals' => $allPrincipalsExcept, + ]); + } + + /** + * @Route("/users/delegation/{username}/{toggle}", name="user_delegation_toggle", requirements={"toggle":"(on|off)"}) + */ + public function userToggleDelegation(string $username, string $toggle) + { + $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username); + + if (!$principal) { + throw $this->createNotFoundException('Principal not found'); + } + + $entityManager = $this->get('doctrine')->getManager(); + + if ('on' === $toggle) { + $principalProxyRead = new Principal(); + $principalProxyRead->setUri($principal->getUri().Principal::READ_PROXY_SUFFIX) + ->setIsMain(false); + $entityManager->persist($principalProxyRead); + + $principalProxyWrite = new Principal(); + $principalProxyWrite->setUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX) + ->setIsMain(false); + $entityManager->persist($principalProxyWrite); + } else { + $principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::READ_PROXY_SUFFIX); + $principalProxyRead && $entityManager->remove($principalProxyRead); + + $principalProxyWrite = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX); + $principalProxyWrite && $entityManager->remove($principalProxyWrite); + + // Remove also delegates + $principal->removeAllDelegees(); + } + + $entityManager->flush(); + + return $this->redirectToRoute('delegates', ['username' => $username]); + } + + /** + * @Route("/users/delegates/{username}/add", name="user_delegate_add") + */ + public function userDelegateAdd(Request $request, string $username) + { + $newMemberToAdd = $this->get('doctrine')->getRepository(Principal::class)->findOneById($request->get('principalId')); + + if (!$newMemberToAdd) { + throw $this->createNotFoundException('Member not found'); + } + + // Depending on write access or not, attach to the correct principal + if ('true' === $request->get('write')) { + // Let's check that there wasn't a read proxy first + $principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::READ_PROXY_SUFFIX); + if (!$principalProxyRead) { + throw $this->createNotFoundException('Principal linked to this calendar not found'); + } + $principalProxyRead->removeDelegee($newMemberToAdd); + // And then add the Write access + $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::WRITE_PROXY_SUFFIX); + } else { + $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username.Principal::READ_PROXY_SUFFIX); + } + + if (!$principal) { + throw $this->createNotFoundException('Principal linked to this calendar not found'); + } + + $principal->addDelegee($newMemberToAdd); + $entityManager = $this->get('doctrine')->getManager(); + $entityManager->flush(); + + return $this->redirectToRoute('delegates', ['username' => $username]); + } + + /** + * @Route("/users/delegates/{username}/remove/{principalProxyId}/{delegateId}", name="user_delegate_remove", requirements={"principalProxyId":"\d+", "delegateId":"\d+"}) + */ + public function userDelegateRemove(Request $request, string $username, int $principalProxyId, int $delegateId) + { + $principalProxy = $this->get('doctrine')->getRepository(Principal::class)->findOneById($principalProxyId); + if (!$principalProxy) { + throw $this->createNotFoundException('Principal linked to this calendar not found'); + } + + $memberToRemove = $this->get('doctrine')->getRepository(Principal::class)->findOneById($delegateId); + if (!$memberToRemove) { + throw $this->createNotFoundException('Member not found'); + } + + $principalProxy->removeDelegee($memberToRemove); + $entityManager = $this->get('doctrine')->getManager(); + $entityManager->flush(); + + return $this->redirectToRoute('delegates', ['username' => $username]); + } + /** * @Route("/calendars/{username}", name="calendars") */ public function calendars(string $username) { $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username); - $calendars = $this->get('doctrine')->getRepository(CalendarInstance::class)->findByPrincipalUri(Principal::PREFIX.$username); + $allCalendars = $this->get('doctrine')->getRepository(CalendarInstance::class)->findByPrincipalUri(Principal::PREFIX.$username); + + // Separate shared calendars + $calendars = []; + $shared = []; + foreach ($allCalendars as $calendar) { + if (CalendarInstance::ACCESS_OWNER === $calendar->getAccess()) { + $calendars[] = $calendar; + } else { + $shared[] = $calendar; + } + } + + // We need all the other users so we can propose to share calendars with them + $allPrincipalsExcept = $this->get('doctrine')->getRepository(Principal::class)->findAllExceptPrincipal(Principal::PREFIX.$username); return $this->render('calendars/index.html.twig', [ 'calendars' => $calendars, + 'shared' => $shared, 'principal' => $principal, 'username' => $username, + 'allPrincipals' => $allPrincipalsExcept, ]); } @@ -242,7 +378,10 @@ public function calendarEdit(Request $request, string $username, ?int $id, Trans $calendarInstance->setCalendar($calendar); } - $form = $this->createForm(CalendarInstanceType::class, $calendarInstance, ['new' => !$id]); + $form = $this->createForm(CalendarInstanceType::class, $calendarInstance, [ + 'new' => !$id, + 'shared' => CalendarInstance::ACCESS_OWNER !== $calendarInstance->getAccess(), + ]); $components = explode(',', $calendarInstance->getCalendar()->getComponents()); @@ -286,180 +425,125 @@ public function calendarEdit(Request $request, string $username, ?int $id, Trans } /** - * @Route("/calendars/{username}/delete/{id}", name="calendar_delete", requirements={"id":"\d+"}) + * @Route("/calendars/{username}/shares/{calendarid}", name="calendar_shares", requirements={"calendarid":"\d+"}) */ - public function calendarDelete(string $username, string $id, TranslatorInterface $trans) + public function calendarShares(string $username, string $calendarid, TranslatorInterface $trans) { - $instance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id); - if (!$instance) { - throw $this->createNotFoundException('Calendar not found'); + $instances = $this->get('doctrine')->getRepository(CalendarInstance::class)->findSharedInstancesOfInstance($calendarid); + + $response = []; + foreach ($instances as $instance) { + $response[] = [ + 'principalUri' => stream_get_contents($instance[0]['principalUri']), + 'displayName' => $instance['displayName'], + 'email' => stream_get_contents($instance['email']), + 'accessText' => $trans->trans('calendar.share_access.'.$instance[0]['access']), + 'isWriteAccess' => CalendarInstance::ACCESS_READWRITE === $instance[0]['access'], + 'revokeUrl' => $this->generateUrl('calendar_revoke', ['username' => $username, 'id' => $instance[0]['id']]), + ]; } - $entityManager = $this->get('doctrine')->getManager(); - - $calendarsSubscriptions = $this->get('doctrine')->getRepository(CalendarSubscription::class)->findByPrincipalUri($instance->getPrincipalUri()); - foreach ($calendarsSubscriptions ?? [] as $subscription) { - $entityManager->remove($subscription); - } - - $schedulingObjects = $this->get('doctrine')->getRepository(SchedulingObject::class)->findByPrincipalUri($instance->getPrincipalUri()); - foreach ($schedulingObjects ?? [] as $object) { - $entityManager->remove($object); - } - - foreach ($instance->getCalendar()->getObjects() ?? [] as $object) { - $entityManager->remove($object); - } - foreach ($instance->getCalendar()->getChanges() ?? [] as $change) { - $entityManager->remove($change); - } - $entityManager->remove($instance->getCalendar()); - $entityManager->remove($instance); - - $entityManager->flush(); - $this->addFlash('success', $trans->trans('calendar.deleted')); - - return $this->redirectToRoute('calendars', ['username' => $username]); + return new JsonResponse($response); } /** - * @Route("/calendars/delegates/{id}", name="calendar_delegates", requirements={"id":"\d+"}) + * @Route("/calendars/{username}/share/{instanceid}", name="calendar_share_add", requirements={"instanceid":"\d+"}) */ - public function calendarDelegates(int $id) + public function calendarShareAdd(Request $request, string $username, string $instanceid, TranslatorInterface $trans) { - $calendar = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id); - - if (!$calendar) { + $instance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($instanceid); + if (!$instance) { throw $this->createNotFoundException('Calendar not found'); } - $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($calendar->getPrincipalUri()); - - $allPrincipalsExcept = $this->get('doctrine')->getRepository(Principal::class)->findAllExceptPrincipal($calendar->getPrincipalUri()); - - // Get delegates. They are not linked to the principal in itself, but to its proxies - $principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::READ_PROXY_SUFFIX); - $principalProxyWrite = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX); - - return $this->render('calendars/delegates.html.twig', [ - 'calendar' => $calendar, - 'principal' => $principal, - 'delegation' => $principalProxyRead && $principalProxyWrite, - 'principalProxyRead' => $principalProxyRead, - 'principalProxyWrite' => $principalProxyWrite, - 'allPrincipals' => $allPrincipalsExcept, - ]); - } - - /** - * @Route("/calendars/delegates/{id}/add", name="calendar_delegate_add", requirements={"id":"\d+"}) - */ - public function calendarDelegateAdd(Request $request, int $id) - { - $calendar = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id); - - if (!$calendar) { - throw $this->createNotFoundException('Calendar not found'); + $newShareeToAdd = $this->get('doctrine')->getRepository(Principal::class)->findOneById($request->get('principalId')); + if (!$newShareeToAdd) { + throw $this->createNotFoundException('Member not found'); } - $newMemberToAdd = $this->get('doctrine')->getRepository(Principal::class)->findOneById($request->get('principalId')); + // Let's check that there wasn't another instance + // already existing first, so we can update it: + $existingSharedInstance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findSharedInstanceOfInstanceFor($instance->getCalendar()->getId(), $newShareeToAdd->getUri()); - if (!$newMemberToAdd) { - throw $this->createNotFoundException('Member not found'); - } + $writeAccess = ('true' === $request->get('write') ? CalendarInstance::ACCESS_READWRITE : CalendarInstance::ACCESS_READ); - // Depending on write access or not, attach to the correct principal - if ('true' === $request->get('write')) { - // Let's check that there wasn't a read proxy first - $principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($calendar->getPrincipalUri().Principal::READ_PROXY_SUFFIX); - if (!$principalProxyRead) { - throw $this->createNotFoundException('Principal linked to this calendar not found'); - } - $principalProxyRead->removeDelegee($newMemberToAdd); - // And then add the Write access - $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($calendar->getPrincipalUri().Principal::WRITE_PROXY_SUFFIX); - } else { - $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($calendar->getPrincipalUri().Principal::READ_PROXY_SUFFIX); - } + $entityManager = $this->get('doctrine')->getManager(); - if (!$principal) { - throw $this->createNotFoundException('Principal linked to this calendar not found'); + if ($existingSharedInstance) { + $existingSharedInstance->setAccess($writeAccess); + } else { + $sharedInstance = new CalendarInstance(); + $sharedInstance->setTransparent(1) + ->setCalendar($instance->getCalendar()) + ->setShareHref('mailto:'.$newShareeToAdd->getEmail()) + ->setDescription($instance->getDescription()) + ->setDisplayName($instance->getDisplayName()) + ->setUri(\Sabre\DAV\UUIDUtil::getUUID()) + ->setPrincipalUri($newShareeToAdd->getUri()) + ->setAccess($writeAccess); + $entityManager->persist($sharedInstance); } - $principal->addDelegee($newMemberToAdd); - $entityManager = $this->get('doctrine')->getManager(); $entityManager->flush(); + $this->addFlash('success', $trans->trans('calendar.shared')); - return $this->redirectToRoute('calendar_delegates', ['id' => $id]); + return $this->redirectToRoute('calendars', ['username' => $username]); } /** - * @Route("/calendars/delegates/{id}/remove/{principalProxyId}/{delegateId}", name="calendar_delegate_remove", requirements={"id":"\d+", "principalProxyId":"\d+", "delegateId":"\d+"}) + * @Route("/calendars/{username}/delete/{id}", name="calendar_delete", requirements={"id":"\d+"}) */ - public function calendarDelegateRemove(Request $request, int $id, int $principalProxyId, int $delegateId) + public function calendarDelete(string $username, string $id, TranslatorInterface $trans) { - $principalProxy = $this->get('doctrine')->getRepository(Principal::class)->findOneById($principalProxyId); + $instance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id); + if (!$instance) { + throw $this->createNotFoundException('Calendar not found'); + } - if (!$principalProxy) { - throw $this->createNotFoundException('Principal linked to this calendar not found'); + $entityManager = $this->get('doctrine')->getManager(); + + $calendarsSubscriptions = $this->get('doctrine')->getRepository(CalendarSubscription::class)->findByPrincipalUri($instance->getPrincipalUri()); + foreach ($calendarsSubscriptions ?? [] as $subscription) { + $entityManager->remove($subscription); } - $memberToRemove = $this->get('doctrine')->getRepository(Principal::class)->findOneById($delegateId); + $schedulingObjects = $this->get('doctrine')->getRepository(SchedulingObject::class)->findByPrincipalUri($instance->getPrincipalUri()); + foreach ($schedulingObjects ?? [] as $object) { + $entityManager->remove($object); + } - if (!$memberToRemove) { - throw $this->createNotFoundException('Member not found'); + foreach ($instance->getCalendar()->getObjects() ?? [] as $object) { + $entityManager->remove($object); + } + foreach ($instance->getCalendar()->getChanges() ?? [] as $change) { + $entityManager->remove($change); } + $entityManager->remove($instance->getCalendar()); + $entityManager->remove($instance); - $principalProxy->removeDelegee($memberToRemove); - $entityManager = $this->get('doctrine')->getManager(); $entityManager->flush(); + $this->addFlash('success', $trans->trans('calendar.deleted')); - return $this->redirectToRoute('calendar_delegates', ['id' => $id]); + return $this->redirectToRoute('calendars', ['username' => $username]); } /** - * @Route("/calendars/delegation/{id}/{toggle}", name="calendar_delegation_toggle", requirements={"id":"\d+", "toggle":"(on|off)"}) + * @Route("/calendars/{username}/revoke/{id}", name="calendar_revoke", requirements={"id":"\d+"}) */ - public function calendarToggleDelegation(int $id, string $toggle) + public function calendarRevoke(string $username, string $id, TranslatorInterface $trans) { - $calendar = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id); - - if (!$calendar) { + $instance = $this->get('doctrine')->getRepository(CalendarInstance::class)->findOneById($id); + if (!$instance) { throw $this->createNotFoundException('Calendar not found'); } - $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($calendar->getPrincipalUri()); - - if (!$principal) { - throw $this->createNotFoundException('Principal linked to this calendar not found'); - } - $entityManager = $this->get('doctrine')->getManager(); - - if ('on' === $toggle) { - $principalProxyRead = new Principal(); - $principalProxyRead->setUri($principal->getUri().Principal::READ_PROXY_SUFFIX) - ->setIsMain(false); - $entityManager->persist($principalProxyRead); - - $principalProxyWrite = new Principal(); - $principalProxyWrite->setUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX) - ->setIsMain(false); - $entityManager->persist($principalProxyWrite); - } else { - $principalProxyRead = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::READ_PROXY_SUFFIX); - $principalProxyRead && $entityManager->remove($principalProxyRead); - - $principalProxyWrite = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri($principal->getUri().Principal::WRITE_PROXY_SUFFIX); - $principalProxyWrite && $entityManager->remove($principalProxyWrite); - - // Remove also delegates - $principal->removeAllDelegees(); - } + $entityManager->remove($instance); $entityManager->flush(); + $this->addFlash('success', $trans->trans('calendar.revoked')); - return $this->redirectToRoute('calendar_delegates', ['id' => $id]); + return $this->redirectToRoute('calendars', ['username' => $username]); } /** diff --git a/src/Form/CalendarInstanceType.php b/src/Form/CalendarInstanceType.php index 321d44c..8ef161c 100644 --- a/src/Form/CalendarInstanceType.php +++ b/src/Form/CalendarInstanceType.php @@ -43,18 +43,21 @@ public function buildForm(FormBuilderInterface $builder, array $options) ->add('events', CheckboxType::class, [ 'label' => 'form.events', 'mapped' => false, + 'disabled' => $options['shared'], 'help' => 'form.events.help', 'required' => false, ]) ->add('todos', CheckboxType::class, [ 'label' => 'form.todos', 'mapped' => false, + 'disabled' => $options['shared'], 'help' => 'form.todos.help', 'required' => false, ]) ->add('notes', CheckboxType::class, [ 'label' => 'form.notes', 'mapped' => false, + 'disabled' => $options['shared'], 'help' => 'form.notes.help', 'required' => false, ]) @@ -67,6 +70,7 @@ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'new' => false, + 'shared' => false, 'data_class' => CalendarInstance::class, ]); } diff --git a/src/Repository/CalendarInstanceRepository.php b/src/Repository/CalendarInstanceRepository.php index e47163e..ef73bd4 100644 --- a/src/Repository/CalendarInstanceRepository.php +++ b/src/Repository/CalendarInstanceRepository.php @@ -3,6 +3,7 @@ namespace App\Repository; use App\Entity\CalendarInstance; +use App\Entity\Principal; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; @@ -19,32 +20,35 @@ public function __construct(ManagerRegistry $registry) parent::__construct($registry, CalendarInstance::class); } - // /** - // * @return CalendarInstance[] Returns an array of CalendarInstance objects - // */ - /* - public function findByExampleField($value) + /** + * @return CalendarInstance[] Returns an array of CalendarInstance objects + */ + public function findSharedInstancesOfInstance(int $calendarId) { return $this->createQueryBuilder('c') - ->andWhere('c.exampleField = :val') - ->setParameter('val', $value) - ->orderBy('c.id', 'ASC') - ->setMaxResults(10) + ->leftJoin(Principal::class, 'p', \Doctrine\ORM\Query\Expr\Join::WITH, 'c.principalUri = p.uri') + ->addSelect('p.displayName', 'p.email') + ->where('c.calendar = :id') + ->setParameter('id', $calendarId) + ->andWhere('c.access != :ownerAccess') + ->setParameter('ownerAccess', CalendarInstance::ACCESS_OWNER) ->getQuery() - ->getResult() - ; + ->getArrayResult(); } - */ - /* - public function findOneBySomeField($value): ?CalendarInstance + /** + * @return CalendarInstance Returns a CalendarInstance object + */ + public function findSharedInstanceOfInstanceFor(int $calendarId, string $principalUri) { return $this->createQueryBuilder('c') - ->andWhere('c.exampleField = :val') - ->setParameter('val', $value) + ->where('c.calendar = :id') + ->setParameter('id', $calendarId) + ->andWhere('c.access != :ownerAccess') + ->setParameter('ownerAccess', CalendarInstance::ACCESS_OWNER) + ->andWhere('c.principalUri = :principalUri') + ->setParameter('principalUri', $principalUri) ->getQuery() - ->getOneOrNullResult() - ; + ->getOneOrNullResult(); } - */ } diff --git a/symfony.lock b/symfony.lock index de2396e..f66afd5 100644 --- a/symfony.lock +++ b/symfony.lock @@ -81,9 +81,6 @@ "doctrine/persistence": { "version": "2.0.0" }, - "doctrine/reflection": { - "version": "1.2.1" - }, "doctrine/sql-formatter": { "version": "1.1.1" }, diff --git a/templates/_partials/add_delegate_modal.html.twig b/templates/_partials/add_delegate_modal.html.twig index 3a04c86..339de78 100644 --- a/templates/_partials/add_delegate_modal.html.twig +++ b/templates/_partials/add_delegate_modal.html.twig @@ -16,6 +16,7 @@ {% endfor %} + {{ "delegates.member.help"|trans }}
{{ "users.username"|trans }} : {{ delegate.username }}
{{ delegate.uri }}
\ No newline at end of file
diff --git a/templates/_partials/delete_modal.html.twig b/templates/_partials/delete_modal.html.twig
index b6970ea..e9d47d0 100644
--- a/templates/_partials/delete_modal.html.twig
+++ b/templates/_partials/delete_modal.html.twig
@@ -1,4 +1,4 @@
-{{ calendar.description }}
+ {{ "calendars.uri"|trans }} :{{ calendar.uri }}
+ {% if calendar.calendar.components|split(',')|length > 0 %}
+ {% if constant('\\App\\Entity\\Calendar::COMPONENT_EVENTS') in calendar.calendar.components %}{{ "calendars.component.events"|trans }}{% endif %}
+ {% if constant('\\App\\Entity\\Calendar::COMPONENT_NOTES') in calendar.calendar.components %}{{ "calendars.component.notes"|trans }}{% endif %}
+ {% if constant('\\App\\Entity\\Calendar::COMPONENT_TODOS') in calendar.calendar.components %}{{ "calendars.component.todos"|trans }}{% endif %}
+ {% endif %}
+ — {{ "calendars.entries"|trans({'%count%': calendar.calendar.objects|length}) }}
+
+
+ {{ "users.username"|trans }} : {{ principal.username }}
{{ principal.uri }}
{% if principal.isAdmin %} — {{ "users.administrator"|trans }}{% endif %}