From c85bc17c683359b20522c7300a92c6cb2d8d6b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Mon, 25 Dec 2023 18:21:55 +0100 Subject: [PATCH 1/9] updated vendor --- .gitignore | 1 + assets/app.js | 6 + composer.json | 97 +- composer.lock | 2922 +++++++++++++------------- config/packages/doctrine.yaml | 9 +- config/packages/framework.yaml | 2 - config/packages/nyholm_psr7.yaml | 10 - config/packages/translation.yaml | 2 + config/routes/security.yaml | 3 + importmap.php | 56 +- phpunit.xml.dist | 6 +- src/Security/GoogleAuthenticator.php | 4 +- symfony.lock | 64 +- templates/base.html.twig | 7 +- tests/bootstrap.php | 4 + 15 files changed, 1557 insertions(+), 1636 deletions(-) create mode 100644 config/routes/security.yaml diff --git a/.gitignore b/.gitignore index e22ef76..7d5bb7f 100644 --- a/.gitignore +++ b/.gitignore @@ -26,4 +26,5 @@ ###> symfony/asset-mapper ### /public/assets/ +/assets/vendor ###< symfony/asset-mapper ### diff --git a/assets/app.js b/assets/app.js index d2b348e..04b3620 100644 --- a/assets/app.js +++ b/assets/app.js @@ -1 +1,7 @@ +import 'bootstrap/dist/css/bootstrap.min.css'; +import 'bootstrap-icons/font/bootstrap-icons.css'; +import 'swiper/swiper-bundle.min.css'; +import './styles/app.css'; + + import './bootstrap.js'; diff --git a/composer.json b/composer.json index 1eef694..4a5c9cc 100644 --- a/composer.json +++ b/composer.json @@ -4,62 +4,61 @@ "license": "MIT", "prefer-stable": true, "require": { - "php": ">=8.1", + "php": ">=8.2", "ext-ctype": "*", "ext-iconv": "*", "ext-uuid": "*", - "doctrine/doctrine-bundle": "^2.9.1", - "doctrine/doctrine-migrations-bundle": "^3.2.2", - "doctrine/orm": "^2.15.1", - "knplabs/knp-paginator-bundle": "^6.2", - "knpuniversity/oauth2-client-bundle": "^2.15", - "league/commonmark": "^2.4", + "doctrine/doctrine-bundle": "^2.11.1", + "doctrine/doctrine-migrations-bundle": "^3.3.0", + "doctrine/orm": "^2.17.2", + "knplabs/knp-paginator-bundle": "^6.3", + "knpuniversity/oauth2-client-bundle": "^2.18", + "league/commonmark": "^2.4.1", "league/oauth2-google": "^4.0.1", - "nyholm/psr7": "^1.8", + "nyholm/psr7": "^1.8.1", "phpdocumentor/reflection-docblock": "^5.3", - "phpstan/phpdoc-parser": "^1.21.3", - "symfony/asset": "6.3.*", - "symfony/asset-mapper": "6.3.*", - "symfony/console": "6.3.*", - "symfony/dotenv": "6.3.*", - "symfony/expression-language": "6.3.*", - "symfony/flex": "^2.3.1", - "symfony/framework-bundle": "6.3.*", - "symfony/http-client": "6.3.*", - "symfony/intl": "6.3.*", - "symfony/mime": "6.3.*", - "symfony/monolog-bundle": "^3.8", - "symfony/process": "6.3.*", - "symfony/property-access": "6.3.*", - "symfony/property-info": "6.3.*", - "symfony/proxy-manager-bridge": "6.3.*", - "symfony/runtime": "6.3.*", - "symfony/security-bundle": "6.3.*", - "symfony/string": "6.3.*", - "symfony/twig-bundle": "6.3.*", + "phpstan/phpdoc-parser": "^1.24.5", + "symfony/asset": "7.0.*", + "symfony/asset-mapper": "7.0.*", + "symfony/console": "7.0.*", + "symfony/dotenv": "7.0.*", + "symfony/expression-language": "7.0.*", + "symfony/flex": "^2.4.2", + "symfony/framework-bundle": "7.0.*", + "symfony/http-client": "7.0.*", + "symfony/intl": "7.0.*", + "symfony/mime": "7.0.*", + "symfony/monolog-bundle": "^3.10", + "symfony/process": "7.0.*", + "symfony/property-access": "7.0.*", + "symfony/property-info": "7.0.*", + "symfony/runtime": "7.0.*", + "symfony/security-bundle": "7.0.*", + "symfony/string": "7.0.*", + "symfony/twig-bundle": "7.0.*", "symfony/ux-chartjs": "*", - "symfony/ux-live-component": "^2.9.0", - "symfony/ux-turbo": "^2.9.0", - "symfony/ux-twig-component": "^2.9.0", - "symfony/web-link": "6.3.*", - "symfony/yaml": "6.3.*", - "twig/cache-extra": "^3.6", - "twig/extra-bundle": "^3.6", - "twig/html-extra": "^3.6", - "twig/intl-extra": "^3.6", - "twig/markdown-extra": "^3.6", - "twig/twig": "^3.6" + "symfony/ux-live-component": "^2.13.3", + "symfony/ux-turbo": "^2.13.2", + "symfony/ux-twig-component": "^2.13.3", + "symfony/web-link": "7.0.*", + "symfony/yaml": "7.0.*", + "twig/cache-extra": "^3.8", + "twig/extra-bundle": "^3.8", + "twig/html-extra": "^3.8", + "twig/intl-extra": "^3.8", + "twig/markdown-extra": "^3.8", + "twig/twig": "^3.8" }, "require-dev": { - "doctrine/doctrine-fixtures-bundle": "^3.4.4", - "fakerphp/faker": "^1.22", - "symfony/browser-kit": "6.3.*", - "symfony/css-selector": "6.3.*", - "symfony/debug-bundle": "6.3.*", - "symfony/maker-bundle": "^1.48", - "symfony/phpunit-bridge": "^6.2.10", - "symfony/stopwatch": "6.3.*", - "symfony/web-profiler-bundle": "6.3.*" + "doctrine/doctrine-fixtures-bundle": "^3.5.1", + "fakerphp/faker": "^1.23", + "symfony/browser-kit": "7.0.*", + "symfony/css-selector": "7.0.*", + "symfony/debug-bundle": "7.0.*", + "symfony/maker-bundle": "^1.52", + "symfony/phpunit-bridge": "^7", + "symfony/stopwatch": "7.0.*", + "symfony/web-profiler-bundle": "7.0.*" }, "replace": { "symfony/polyfill-ctype": "*", @@ -108,7 +107,7 @@ "extra": { "symfony": { "allow-contrib": false, - "require": "6.3.*" + "require": "7.0.*" } } } diff --git a/composer.lock b/composer.lock index 0e73554..6263ff5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,89 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "243fec52020d50f79fe57ce1c68e51d0", + "content-hash": "e47b8fb37744e0d2b049ae4d400779f7", "packages": [ + { + "name": "composer/semver", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-08-31T09:50:34+00:00" + }, { "name": "dflydev/dot-access-data", "version": "v3.0.2", @@ -176,16 +257,16 @@ }, { "name": "doctrine/collections", - "version": "2.1.3", + "version": "2.1.4", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "3023e150f90a38843856147b58190aa8b46cc155" + "reference": "72328a11443a0de79967104ad36ba7b30bded134" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/3023e150f90a38843856147b58190aa8b46cc155", - "reference": "3023e150f90a38843856147b58190aa8b46cc155", + "url": "https://api.github.com/repos/doctrine/collections/zipball/72328a11443a0de79967104ad36ba7b30bded134", + "reference": "72328a11443a0de79967104ad36ba7b30bded134", "shasum": "" }, "require": { @@ -193,7 +274,7 @@ "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^10.0", + "doctrine/coding-standard": "^12", "ext-json": "*", "phpstan/phpstan": "^1.8", "phpstan/phpstan-phpunit": "^1.0", @@ -242,7 +323,7 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/2.1.3" + "source": "https://github.com/doctrine/collections/tree/2.1.4" }, "funding": [ { @@ -258,7 +339,7 @@ "type": "tidelift" } ], - "time": "2023-07-06T15:15:36+00:00" + "time": "2023-10-03T09:22:33+00:00" }, { "name": "doctrine/common", @@ -353,16 +434,16 @@ }, { "name": "doctrine/dbal", - "version": "3.6.5", + "version": "3.7.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "96d5a70fd91efdcec81fc46316efc5bf3da17ddf" + "reference": "0ac3c270590e54910715e9a1a044cc368df282b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/96d5a70fd91efdcec81fc46316efc5bf3da17ddf", - "reference": "96d5a70fd91efdcec81fc46316efc5bf3da17ddf", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/0ac3c270590e54910715e9a1a044cc368df282b2", + "reference": "0ac3c270590e54910715e9a1a044cc368df282b2", "shasum": "" }, "require": { @@ -378,10 +459,11 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.21", + "phpstan/phpstan": "1.10.42", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.9", + "phpunit/phpunit": "9.6.13", "psalm/plugin-phpunit": "0.18.4", + "slevomat/coding-standard": "8.13.1", "squizlabs/php_codesniffer": "3.7.2", "symfony/cache": "^5.4|^6.0", "symfony/console": "^4.4|^5.4|^6.0", @@ -445,7 +527,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.6.5" + "source": "https://github.com/doctrine/dbal/tree/3.7.2" }, "funding": [ { @@ -461,20 +543,20 @@ "type": "tidelift" } ], - "time": "2023-07-17T09:15:50+00:00" + "time": "2023-11-19T08:06:58+00:00" }, { "name": "doctrine/deprecations", - "version": "v1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", "shasum": "" }, "require": { @@ -506,62 +588,65 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" }, - "time": "2023-06-03T09:27:29+00:00" + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "2.10.2", + "version": "2.11.1", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "f28b1f78de3a2938ff05cfe751233097624cc756" + "reference": "4089f1424b724786c062aea50aae5f773449b94b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/f28b1f78de3a2938ff05cfe751233097624cc756", - "reference": "f28b1f78de3a2938ff05cfe751233097624cc756", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/4089f1424b724786c062aea50aae5f773449b94b", + "reference": "4089f1424b724786c062aea50aae5f773449b94b", "shasum": "" }, "require": { "doctrine/cache": "^1.11 || ^2.0", - "doctrine/dbal": "^3.6.0", + "doctrine/dbal": "^3.7.0 || ^4.0", "doctrine/persistence": "^2.2 || ^3", "doctrine/sql-formatter": "^1.0.1", "php": "^7.4 || ^8.0", - "symfony/cache": "^5.4 || ^6.0", - "symfony/config": "^5.4 || ^6.0", - "symfony/console": "^5.4 || ^6.0", - "symfony/dependency-injection": "^5.4 || ^6.0", + "symfony/cache": "^5.4 || ^6.0 || ^7.0", + "symfony/config": "^5.4 || ^6.0 || ^7.0", + "symfony/console": "^5.4 || ^6.0 || ^7.0", + "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0", "symfony/deprecation-contracts": "^2.1 || ^3", - "symfony/doctrine-bridge": "^5.4.19 || ^6.0.7", - "symfony/framework-bundle": "^5.4 || ^6.0", + "symfony/doctrine-bridge": "^5.4.19 || ^6.0.7 || ^7.0", + "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3" }, "conflict": { "doctrine/annotations": ">=3.0", - "doctrine/orm": "<2.11 || >=3.0", + "doctrine/orm": "<2.14 || >=4.0", "twig/twig": "<1.34 || >=2.0 <2.4" }, "require-dev": { "doctrine/annotations": "^1 || ^2", - "doctrine/coding-standard": "^9.0", + "doctrine/coding-standard": "^12", "doctrine/deprecations": "^1.0", - "doctrine/orm": "^2.11 || ^3.0", + "doctrine/orm": "^2.14 || ^3.0", "friendsofphp/proxy-manager-lts": "^1.0", "phpunit/phpunit": "^9.5.26 || ^10.0", "psalm/plugin-phpunit": "^0.18.4", "psalm/plugin-symfony": "^4", "psr/log": "^1.1.4 || ^2.0 || ^3.0", - "symfony/phpunit-bridge": "^6.1", - "symfony/property-info": "^5.4 || ^6.0", - "symfony/proxy-manager-bridge": "^5.4 || ^6.0", - "symfony/security-bundle": "^5.4 || ^6.0", - "symfony/twig-bridge": "^5.4 || ^6.0", - "symfony/validator": "^5.4 || ^6.0", - "symfony/web-profiler-bundle": "^5.4 || ^6.0", - "symfony/yaml": "^5.4 || ^6.0", + "symfony/phpunit-bridge": "^6.1 || ^7.0", + "symfony/property-info": "^5.4 || ^6.0 || ^7.0", + "symfony/proxy-manager-bridge": "^5.4 || ^6.0 || ^7.0", + "symfony/security-bundle": "^5.4 || ^6.0 || ^7.0", + "symfony/string": "^5.4 || ^6.0 || ^7.0", + "symfony/twig-bridge": "^5.4 || ^6.0 || ^7.0", + "symfony/validator": "^5.4 || ^6.0 || ^7.0", + "symfony/var-exporter": "^5.4 || ^6.2 || ^7.0", + "symfony/web-profiler-bundle": "^5.4 || ^6.0 || ^7.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0", "twig/twig": "^1.34 || ^2.12 || ^3.0", "vimeo/psalm": "^4.30" }, @@ -608,7 +693,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.10.2" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.11.1" }, "funding": [ { @@ -624,38 +709,44 @@ "type": "tidelift" } ], - "time": "2023-08-06T09:31:40+00:00" + "time": "2023-11-15T20:01:50+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", - "version": "3.2.4", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e" + "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e", - "reference": "94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/1dd42906a5fb9c5960723e2ebb45c68006493835", + "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835", "shasum": "" }, "require": { - "doctrine/doctrine-bundle": "~1.0|~2.0", + "doctrine/doctrine-bundle": "^2.4", "doctrine/migrations": "^3.2", "php": "^7.2|^8.0", - "symfony/framework-bundle": "~3.4|~4.0|~5.0|~6.0" + "symfony/deprecation-contracts": "^2.1 || ^3", + "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "doctrine/coding-standard": "^9", - "doctrine/orm": "^2.6", - "doctrine/persistence": "^1.3||^2.0", + "doctrine/coding-standard": "^12", + "doctrine/orm": "^2.6 || ^3", + "doctrine/persistence": "^2.0 || ^3 ", "phpstan/phpstan": "^1.4", "phpstan/phpstan-deprecation-rules": "^1", "phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan-symfony": "^1.3", "phpunit/phpunit": "^8.5|^9.5", - "vimeo/psalm": "^4.22" + "psalm/plugin-phpunit": "^0.18.4", + "psalm/plugin-symfony": "^3 || ^5", + "symfony/phpunit-bridge": "^6.3 || ^7", + "symfony/var-exporter": "^5.4 || ^6 || ^7", + "vimeo/psalm": "^4.30 || ^5.15" }, "type": "symfony-bundle", "autoload": { @@ -693,7 +784,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", - "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.2.4" + "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.3.0" }, "funding": [ { @@ -709,7 +800,7 @@ "type": "tidelift" } ], - "time": "2023-06-02T08:19:26+00:00" + "time": "2023-11-13T19:44:41+00:00" }, { "name": "doctrine/event-manager", @@ -1043,47 +1134,47 @@ }, { "name": "doctrine/migrations", - "version": "3.6.0", + "version": "3.7.2", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "e542ad8bcd606d7a18d0875babb8a6d963c9c059" + "reference": "47af29eef49f29ebee545947e8b2a4b3be318c8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/e542ad8bcd606d7a18d0875babb8a6d963c9c059", - "reference": "e542ad8bcd606d7a18d0875babb8a6d963c9c059", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/47af29eef49f29ebee545947e8b2a4b3be318c8a", + "reference": "47af29eef49f29ebee545947e8b2a4b3be318c8a", "shasum": "" }, "require": { "composer-runtime-api": "^2", - "doctrine/dbal": "^3.5.1", + "doctrine/dbal": "^3.5.1 || ^4", "doctrine/deprecations": "^0.5.3 || ^1", "doctrine/event-manager": "^1.2 || ^2.0", "php": "^8.1", "psr/log": "^1.1.3 || ^2 || ^3", - "symfony/console": "^4.4.16 || ^5.4 || ^6.0", - "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0", - "symfony/var-exporter": "^6.2" + "symfony/console": "^5.4 || ^6.0 || ^7.0", + "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0", + "symfony/var-exporter": "^6.2 || ^7.0" }, "conflict": { - "doctrine/orm": "<2.12" + "doctrine/orm": "<2.12 || >=4" }, "require-dev": { - "doctrine/coding-standard": "^9", - "doctrine/orm": "^2.13", + "doctrine/coding-standard": "^12", + "doctrine/orm": "^2.13 || ^3", "doctrine/persistence": "^2 || ^3", "doctrine/sql-formatter": "^1.0", "ext-pdo_sqlite": "*", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.1", - "phpstan/phpstan-symfony": "^1.1", - "phpunit/phpunit": "^9.5.24", - "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "symfony/process": "^4.4 || ^5.4 || ^6.0", - "symfony/yaml": "^4.4 || ^5.4 || ^6.0" + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-deprecation-rules": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpstan/phpstan-strict-rules": "^1.4", + "phpstan/phpstan-symfony": "^1.3", + "phpunit/phpunit": "^10.3", + "symfony/cache": "^5.4 || ^6.0 || ^7.0", + "symfony/process": "^5.4 || ^6.0 || ^7.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "suggest": { "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", @@ -1125,7 +1216,7 @@ ], "support": { "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.6.0" + "source": "https://github.com/doctrine/migrations/tree/3.7.2" }, "funding": [ { @@ -1141,20 +1232,20 @@ "type": "tidelift" } ], - "time": "2023-02-15T18:49:46+00:00" + "time": "2023-12-05T11:35:05+00:00" }, { "name": "doctrine/orm", - "version": "2.16.0", + "version": "2.17.2", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "495cd06b9a630f9c38a21ceb249ed008edbe8414" + "reference": "393679a4795e49b0b3ac317dce84d0f8888f2b77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/495cd06b9a630f9c38a21ceb249ed008edbe8414", - "reference": "495cd06b9a630f9c38a21ceb249ed008edbe8414", + "url": "https://api.github.com/repos/doctrine/orm/zipball/393679a4795e49b0b3ac317dce84d0f8888f2b77", + "reference": "393679a4795e49b0b3ac317dce84d0f8888f2b77", "shasum": "" }, "require": { @@ -1172,7 +1263,7 @@ "ext-ctype": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3", - "symfony/console": "^4.2 || ^5.0 || ^6.0", + "symfony/console": "^4.2 || ^5.0 || ^6.0 || ^7.0", "symfony/polyfill-php72": "^1.23", "symfony/polyfill-php80": "^1.16" }, @@ -1183,14 +1274,14 @@ "doctrine/annotations": "^1.13 || ^2", "doctrine/coding-standard": "^9.0.2 || ^12.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.10.25", + "phpstan/phpstan": "~1.4.10 || 1.10.35", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2", - "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.30.0 || 5.13.1" + "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0", + "vimeo/psalm": "4.30.0 || 5.16.0" }, "suggest": { "ext-dom": "Provides support for XSD validation for XML mapping files", @@ -1240,9 +1331,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.16.0" + "source": "https://github.com/doctrine/orm/tree/2.17.2" }, - "time": "2023-08-01T12:07:04+00:00" + "time": "2023-12-20T21:47:52+00:00" }, { "name": "doctrine/persistence", @@ -1394,106 +1485,24 @@ }, "time": "2022-05-23T21:33:49+00:00" }, - { - "name": "friendsofphp/proxy-manager-lts", - "version": "v1.0.16", - "source": { - "type": "git", - "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", - "reference": "ecadbdc9052e4ad08c60c8a02268712e50427f7c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/ecadbdc9052e4ad08c60c8a02268712e50427f7c", - "reference": "ecadbdc9052e4ad08c60c8a02268712e50427f7c", - "shasum": "" - }, - "require": { - "laminas/laminas-code": "~3.4.1|^4.0", - "php": ">=7.1", - "symfony/filesystem": "^4.4.17|^5.0|^6.0|^7.0" - }, - "conflict": { - "laminas/laminas-stdlib": "<3.2.1", - "zendframework/zend-stdlib": "<3.2.1" - }, - "replace": { - "ocramius/proxy-manager": "^2.1" - }, - "require-dev": { - "ext-phar": "*", - "symfony/phpunit-bridge": "^5.4|^6.0|^7.0" - }, - "type": "library", - "extra": { - "thanks": { - "name": "ocramius/proxy-manager", - "url": "https://github.com/Ocramius/ProxyManager" - } - }, - "autoload": { - "psr-4": { - "ProxyManager\\": "src/ProxyManager" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - } - ], - "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager", - "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts", - "keywords": [ - "aop", - "lazy loading", - "proxy", - "proxy pattern", - "service proxies" - ], - "support": { - "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", - "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.16" - }, - "funding": [ - { - "url": "https://github.com/Ocramius", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", - "type": "tidelift" - } - ], - "time": "2023-05-24T07:17:17+00:00" - }, { "name": "guzzlehttp/guzzle", - "version": "7.7.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5" + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -1502,11 +1511,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -1584,7 +1593,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.7.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { @@ -1600,28 +1609,28 @@ "type": "tidelift" } ], - "time": "2023-05-21T14:04:53+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", - "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "type": "library", "extra": { @@ -1667,7 +1676,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.1" + "source": "https://github.com/guzzle/promises/tree/2.0.2" }, "funding": [ { @@ -1683,20 +1692,20 @@ "type": "tidelift" } ], - "time": "2023-08-03T15:11:55+00:00" + "time": "2023-12-03T20:19:20+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.0", + "version": "2.6.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77" + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/8bd7c33a0734ae1c5d074360512beb716bef3f77", - "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", "shasum": "" }, "require": { @@ -1710,9 +1719,9 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -1783,7 +1792,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.0" + "source": "https://github.com/guzzle/psr7/tree/2.6.2" }, "funding": [ { @@ -1799,20 +1808,20 @@ "type": "tidelift" } ], - "time": "2023-08-03T15:06:02+00:00" + "time": "2023-12-03T20:05:35+00:00" }, { "name": "knplabs/knp-components", - "version": "v4.2.0", + "version": "v4.3.0", "source": { "type": "git", "url": "https://github.com/KnpLabs/knp-components.git", - "reference": "1f6560cc1247c8fe7ba75fe4f80f16ffcc9379a0" + "reference": "ac704489426b090ea0e7ff4d1dd06e26baa49ee7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/1f6560cc1247c8fe7ba75fe4f80f16ffcc9379a0", - "reference": "1f6560cc1247c8fe7ba75fe4f80f16ffcc9379a0", + "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/ac704489426b090ea0e7ff4d1dd06e26baa49ee7", + "reference": "ac704489426b090ea0e7ff4d1dd06e26baa49ee7", "shasum": "" }, "require": { @@ -1832,9 +1841,9 @@ "propel/propel1": "^1.7", "ruflin/elastica": "^7.0", "solarium/solarium": "^6.0", - "symfony/http-foundation": "^5.4 || ^6.0", - "symfony/http-kernel": "^5.4 || ^6.0", - "symfony/property-access": "^5.4 || ^6.0" + "symfony/http-foundation": "^5.4 || ^6.0 || ^7.0", + "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0", + "symfony/property-access": "^5.4 || ^6.0 || ^7.0" }, "suggest": { "doctrine/common": "to allow usage pagination with Doctrine ArrayCollection", @@ -1883,41 +1892,41 @@ ], "support": { "issues": "https://github.com/KnpLabs/knp-components/issues", - "source": "https://github.com/KnpLabs/knp-components/tree/v4.2.0" + "source": "https://github.com/KnpLabs/knp-components/tree/v4.3.0" }, - "time": "2023-05-09T10:21:13+00:00" + "time": "2023-10-16T09:30:16+00:00" }, { "name": "knplabs/knp-paginator-bundle", - "version": "v6.2.0", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/KnpLabs/KnpPaginatorBundle.git", - "reference": "8da698f0856b1d9c9c02dcacbfc382c5c9440c80" + "reference": "f51fe26df07a08c1b3f272474401ef8a008b190c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/8da698f0856b1d9c9c02dcacbfc382c5c9440c80", - "reference": "8da698f0856b1d9c9c02dcacbfc382c5c9440c80", + "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/f51fe26df07a08c1b3f272474401ef8a008b190c", + "reference": "f51fe26df07a08c1b3f272474401ef8a008b190c", "shasum": "" }, "require": { "knplabs/knp-components": "^4.1", - "php": "^8.0", - "symfony/config": "^6.0", - "symfony/dependency-injection": "^6.0", - "symfony/event-dispatcher": "^6.0", - "symfony/http-foundation": "^6.0", - "symfony/http-kernel": "^6.0", - "symfony/routing": "^6.0", - "symfony/translation": "^6.0", + "php": "^8.1", + "symfony/config": "^6.3 || ^7.0", + "symfony/dependency-injection": "^6.3 || ^7.0", + "symfony/event-dispatcher": "^6.3 || ^7.0", + "symfony/http-foundation": "^6.3 || ^7.0", + "symfony/http-kernel": "^6.3 || ^7.0", + "symfony/routing": "^6.3 || ^7.0", + "symfony/translation": "^6.3 || ^7.0", "twig/twig": "^3.0" }, "require-dev": { "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^9.5", - "symfony/expression-language": "^6.0", - "symfony/templating": "^6.0" + "symfony/expression-language": "^6.3 || ^7.0", + "symfony/templating": "^6.3 || ^7.0" }, "type": "symfony-bundle", "extra": { @@ -1957,38 +1966,38 @@ ], "support": { "issues": "https://github.com/KnpLabs/KnpPaginatorBundle/issues", - "source": "https://github.com/KnpLabs/KnpPaginatorBundle/tree/v6.2.0" + "source": "https://github.com/KnpLabs/KnpPaginatorBundle/tree/v6.3.0" }, - "time": "2023-03-25T06:51:40+00:00" + "time": "2023-11-19T08:15:37+00:00" }, { "name": "knpuniversity/oauth2-client-bundle", - "version": "v2.15.0", + "version": "v2.18.0", "source": { "type": "git", "url": "https://github.com/knpuniversity/oauth2-client-bundle.git", - "reference": "9df0736d02eb20b953ec8e9986743611747d9ed9" + "reference": "2f6c9342c711597e3b5f1f2468910336be5232d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/9df0736d02eb20b953ec8e9986743611747d9ed9", - "reference": "9df0736d02eb20b953ec8e9986743611747d9ed9", + "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/2f6c9342c711597e3b5f1f2468910336be5232d6", + "reference": "2f6c9342c711597e3b5f1f2468910336be5232d6", "shasum": "" }, "require": { "league/oauth2-client": "^2.0", - "php": ">=7.4", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/framework-bundle": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0" + "php": ">=8.1", + "symfony/dependency-injection": "^4.4|^5.0|^6.0|^7.0", + "symfony/framework-bundle": "^4.4|^5.0|^6.0|^7.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0|^7.0", + "symfony/routing": "^4.4|^5.0|^6.0|^7.0" }, "require-dev": { "league/oauth2-facebook": "^1.1|^2.0", - "phpstan/phpstan": "^0.12", - "symfony/phpunit-bridge": "^5.3.1|^6.0", - "symfony/security-guard": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "phpstan/phpstan": "^1.0", + "symfony/phpunit-bridge": "^5.3.1|^6.0|^7.0", + "symfony/security-guard": "^4.4|^5.0|^6.0|^7.0", + "symfony/yaml": "^4.4|^5.0|^6.0|^7.0" }, "suggest": { "symfony/security-guard": "For integration with Symfony's Guard Security layer" @@ -2017,85 +2026,22 @@ ], "support": { "issues": "https://github.com/knpuniversity/oauth2-client-bundle/issues", - "source": "https://github.com/knpuniversity/oauth2-client-bundle/tree/v2.15.0" + "source": "https://github.com/knpuniversity/oauth2-client-bundle/tree/v2.18.0" }, - "time": "2023-05-03T16:44:38+00:00" - }, - { - "name": "laminas/laminas-code", - "version": "4.11.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-code.git", - "reference": "169123b3ede20a9193480c53de2a8194f8c073ec" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/169123b3ede20a9193480c53de2a8194f8c073ec", - "reference": "169123b3ede20a9193480c53de2a8194f8c073ec", - "shasum": "" - }, - "require": { - "php": "~8.1.0 || ~8.2.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0.0", - "ext-phar": "*", - "laminas/laminas-coding-standard": "^2.3.0", - "laminas/laminas-stdlib": "^3.6.1", - "phpunit/phpunit": "^10.0.9", - "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.7.1" - }, - "suggest": { - "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "laminas/laminas-stdlib": "Laminas\\Stdlib component" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Code\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", - "homepage": "https://laminas.dev", - "keywords": [ - "code", - "laminas", - "laminasframework" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-code/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-code/issues", - "rss": "https://github.com/laminas/laminas-code/releases.atom", - "source": "https://github.com/laminas/laminas-code" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2023-05-14T12:05:38+00:00" + "time": "2023-12-18T21:58:12+00:00" }, { "name": "league/commonmark", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048" + "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d44a24690f16b8c1808bf13b1bd54ae4c63ea048", - "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5", + "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5", "shasum": "" }, "require": { @@ -2188,7 +2134,7 @@ "type": "tidelift" } ], - "time": "2023-03-24T15:16:10+00:00" + "time": "2023-08-30T16:55:00+00:00" }, { "name": "league/config", @@ -2399,16 +2345,16 @@ }, { "name": "monolog/monolog", - "version": "3.4.0", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d" + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/e2392369686d420ca32df3803de28b5d6f76867d", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", "shasum": "" }, "require": { @@ -2484,7 +2430,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.4.0" + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" }, "funding": [ { @@ -2496,25 +2442,25 @@ "type": "tidelift" } ], - "time": "2023-06-21T08:46:11+00:00" + "time": "2023-10-27T15:32:31+00:00" }, { "name": "nette/schema", - "version": "v1.2.3", + "version": "v1.2.5", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" + "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", + "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", "shasum": "" }, "require": { "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.3" + "php": "7.1 - 8.3" }, "require-dev": { "nette/tester": "^2.3 || ^2.4", @@ -2556,22 +2502,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.3" + "source": "https://github.com/nette/schema/tree/v1.2.5" }, - "time": "2022-10-13T01:24:26+00:00" + "time": "2023-10-05T20:37:59+00:00" }, { "name": "nette/utils", - "version": "v4.0.1", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "9124157137da01b1f5a5a22d6486cb975f26db7e" + "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/9124157137da01b1f5a5a22d6486cb975f26db7e", - "reference": "9124157137da01b1f5a5a22d6486cb975f26db7e", + "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", + "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", "shasum": "" }, "require": { @@ -2593,8 +2539,7 @@ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", "extra": { @@ -2643,22 +2588,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.1" + "source": "https://github.com/nette/utils/tree/v4.0.3" }, - "time": "2023-07-30T15:42:21+00:00" + "time": "2023-10-29T21:02:13+00:00" }, { "name": "nyholm/psr7", - "version": "1.8.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/Nyholm/psr7.git", - "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be" + "reference": "aa5fc277a4f5508013d571341ade0c3886d4d00e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7/zipball/3cb4d163b58589e47b35103e8e5e6a6a475b47be", - "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/aa5fc277a4f5508013d571341ade0c3886d4d00e", + "reference": "aa5fc277a4f5508013d571341ade0c3886d4d00e", "shasum": "" }, "require": { @@ -2711,7 +2656,7 @@ ], "support": { "issues": "https://github.com/Nyholm/psr7/issues", - "source": "https://github.com/Nyholm/psr7/tree/1.8.0" + "source": "https://github.com/Nyholm/psr7/tree/1.8.1" }, "funding": [ { @@ -2723,7 +2668,7 @@ "type": "github" } ], - "time": "2023-05-02T11:26:24+00:00" + "time": "2023-11-13T09:31:12+00:00" }, { "name": "paragonie/random_compat", @@ -2887,16 +2832,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.2", + "version": "1.7.3", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d" + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b2fe4d22a5426f38e014855322200b97b5362c0d", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", "shasum": "" }, "require": { @@ -2939,22 +2884,22 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" }, - "time": "2023-05-30T18:13:47+00:00" + "time": "2023-08-12T11:01:26+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.23.1", + "version": "1.24.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "846ae76eef31c6d7790fac9bc399ecee45160b26" + "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/846ae76eef31c6d7790fac9bc399ecee45160b26", - "reference": "846ae76eef31c6d7790fac9bc399ecee45160b26", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fedf211ff14ec8381c9bf5714e33a7a552dd1acc", + "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc", "shasum": "" }, "require": { @@ -2986,9 +2931,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.23.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.5" }, - "time": "2023-08-03T16:32:59+00:00" + "time": "2023-12-16T09:33:33+00:00" }, { "name": "psr/cache", @@ -3192,16 +3137,16 @@ }, { "name": "psr/http-client", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { @@ -3238,9 +3183,9 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/1.0.2" + "source": "https://github.com/php-fig/http-client" }, - "time": "2023-04-10T20:12:12+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", @@ -3502,28 +3447,28 @@ }, { "name": "symfony/asset", - "version": "v6.3.0", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "b77a4cc8e266b7e0db688de740f9ee7253aa411c" + "reference": "82cd3961bc7fc1b3c3f85e8f2b9a287a1dfd6f2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/b77a4cc8e266b7e0db688de740f9ee7253aa411c", - "reference": "b77a4cc8e266b7e0db688de740f9ee7253aa411c", + "url": "https://api.github.com/repos/symfony/asset/zipball/82cd3961bc7fc1b3c3f85e8f2b9a287a1dfd6f2f", + "reference": "82cd3961bc7fc1b3c3f85e8f2b9a287a1dfd6f2f", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "conflict": { - "symfony/http-foundation": "<5.4" + "symfony/http-foundation": "<6.4" }, "require-dev": { - "symfony/http-client": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0" + "symfony/http-client": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3551,7 +3496,7 @@ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset/tree/v6.3.0" + "source": "https://github.com/symfony/asset/tree/v7.0.0" }, "funding": [ { @@ -3567,35 +3512,41 @@ "type": "tidelift" } ], - "time": "2023-04-21T14:41:17+00:00" + "time": "2023-10-31T17:59:56+00:00" }, { "name": "symfony/asset-mapper", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/asset-mapper.git", - "reference": "9a4795634d28db6e38ebf8068699dfca75a6c369" + "reference": "244eb1aedc78abc489fcf81cd8181b166d8347b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/9a4795634d28db6e38ebf8068699dfca75a6c369", - "reference": "9a4795634d28db6e38ebf8068699dfca75a6c369", + "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/244eb1aedc78abc489fcf81cd8181b166d8347b5", + "reference": "244eb1aedc78abc489fcf81cd8181b166d8347b5", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/filesystem": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0" + "composer/semver": "^3.0", + "php": ">=8.2", + "symfony/filesystem": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0" + }, + "conflict": { + "symfony/framework-bundle": "<6.4" }, "require-dev": { - "symfony/asset": "^5.4|^6.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/framework-bundle": "^6.3", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0" + "symfony/asset": "^6.4|^7.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/event-dispatcher-contracts": "^3.0", + "symfony/finder": "^6.4|^7.0", + "symfony/framework-bundle": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/web-link": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3623,7 +3574,7 @@ "description": "Maps directories of assets & makes them available in a public directory with versioned filenames.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset-mapper/tree/v6.3.2" + "source": "https://github.com/symfony/asset-mapper/tree/v7.0.0" }, "funding": [ { @@ -3639,35 +3590,35 @@ "type": "tidelift" } ], - "time": "2023-07-21T14:42:04+00:00" + "time": "2023-11-29T08:40:23+00:00" }, { "name": "symfony/cache", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "d176b97600860df13e851538c2df2ad88e9e5ca9" + "reference": "5e2376f726d61541b9617512e374808d12c1dc22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/d176b97600860df13e851538c2df2ad88e9e5ca9", - "reference": "d176b97600860df13e851538c2df2ad88e9e5ca9", + "url": "https://api.github.com/repos/symfony/cache/zipball/5e2376f726d61541b9617512e374808d12c1dc22", + "reference": "5e2376f726d61541b9617512e374808d12c1dc22", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/cache": "^2.0|^3.0", "psr/log": "^1.1|^2|^3", "symfony/cache-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3", - "symfony/var-exporter": "^6.2.10" + "symfony/var-exporter": "^6.4|^7.0" }, "conflict": { - "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/var-dumper": "<5.4" + "doctrine/dbal": "<3.6", + "symfony/dependency-injection": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/var-dumper": "<6.4" }, "provide": { "psr/cache-implementation": "2.0|3.0", @@ -3676,15 +3627,15 @@ }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", "psr/simple-cache": "^1.0|^2.0|^3.0", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/filesystem": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3719,7 +3670,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.3.2" + "source": "https://github.com/symfony/cache/tree/v7.0.0" }, "funding": [ { @@ -3735,20 +3686,20 @@ "type": "tidelift" } ], - "time": "2023-07-27T16:19:14+00:00" + "time": "2023-11-25T15:40:35+00:00" }, { "name": "symfony/cache-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b" + "reference": "1d74b127da04ffa87aa940abe15446fa89653778" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ad945640ccc0ae6e208bcea7d7de4b39b569896b", - "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/1d74b127da04ffa87aa940abe15446fa89653778", + "reference": "1d74b127da04ffa87aa940abe15446fa89653778", "shasum": "" }, "require": { @@ -3795,7 +3746,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.4.0" }, "funding": [ { @@ -3811,25 +3762,26 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2023-09-25T12:52:38+00:00" }, { "name": "symfony/clock", - "version": "v6.3.1", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "2c72817f85cbdd0ae4e49643514a889004934296" + "reference": "c696b075befdd4bcffe5ef2eab9a32a1a9c0d29d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/2c72817f85cbdd0ae4e49643514a889004934296", - "reference": "2c72817f85cbdd0ae4e49643514a889004934296", + "url": "https://api.github.com/repos/symfony/clock/zipball/c696b075befdd4bcffe5ef2eab9a32a1a9c0d29d", + "reference": "c696b075befdd4bcffe5ef2eab9a32a1a9c0d29d", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/clock": "^1.0" + "php": ">=8.2", + "psr/clock": "^1.0", + "symfony/polyfill-php83": "^1.28" }, "provide": { "psr/clock-implementation": "1.0" @@ -3868,7 +3820,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v6.3.1" + "source": "https://github.com/symfony/clock/tree/v7.0.0" }, "funding": [ { @@ -3884,38 +3836,38 @@ "type": "tidelift" } ], - "time": "2023-06-08T23:46:55+00:00" + "time": "2023-11-25T20:15:12+00:00" }, { "name": "symfony/config", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467" + "reference": "8789646600f4e7e451dde9e1dc81cfa429f3857a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", - "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", + "url": "https://api.github.com/repos/symfony/config/zipball/8789646600f4e7e451dde9e1dc81cfa429f3857a", + "reference": "8789646600f4e7e451dde9e1dc81cfa429f3857a", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^5.4|^6.0", + "symfony/filesystem": "^6.4|^7.0", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/finder": "<5.4", + "symfony/finder": "<6.4", "symfony/service-contracts": "<2.5" }, "require-dev": { - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0" + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3943,7 +3895,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.3.2" + "source": "https://github.com/symfony/config/tree/v7.0.0" }, "funding": [ { @@ -3959,47 +3911,50 @@ "type": "tidelift" } ], - "time": "2023-07-19T20:22:16+00:00" + "time": "2023-11-09T08:30:23+00:00" }, { "name": "symfony/console", - "version": "v6.3.2", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "aa5d64ad3f63f2e48964fc81ee45cb318a723898" + "reference": "cdce5c684b2f920bb1343deecdfba356ffad83d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/aa5d64ad3f63f2e48964fc81ee45cb318a723898", - "reference": "aa5d64ad3f63f2e48964fc81ee45cb318a723898", + "url": "https://api.github.com/repos/symfony/console/zipball/cdce5c684b2f920bb1343deecdfba356ffad83d5", + "reference": "cdce5c684b2f920bb1343deecdfba356ffad83d5", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0" + "symfony/string": "^6.4|^7.0" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4033,7 +3988,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.2" + "source": "https://github.com/symfony/console/tree/v7.0.1" }, "funding": [ { @@ -4049,44 +4004,43 @@ "type": "tidelift" } ], - "time": "2023-07-19T20:17:28+00:00" + "time": "2023-12-01T15:10:06+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.3.2", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "474cfbc46aba85a1ca11a27db684480d0db64ba7" + "reference": "f6667642954bce638733f254c39e5b5700b47ba4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/474cfbc46aba85a1ca11a27db684480d0db64ba7", - "reference": "474cfbc46aba85a1ca11a27db684480d0db64ba7", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f6667642954bce638733f254c39e5b5700b47ba4", + "reference": "f6667642954bce638733f254c39e5b5700b47ba4", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.2.10" + "symfony/service-contracts": "^3.3", + "symfony/var-exporter": "^6.4|^7.0" }, "conflict": { "ext-psr": "<1.1|>=2", - "symfony/config": "<6.1", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.3", - "symfony/yaml": "<5.4" + "symfony/config": "<6.4", + "symfony/finder": "<6.4", + "symfony/yaml": "<6.4" }, "provide": { "psr/container-implementation": "1.1|2.0", "symfony/service-implementation": "1.1|2.0|3.0" }, "require-dev": { - "symfony/config": "^6.1", - "symfony/expression-language": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "symfony/config": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4114,7 +4068,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.3.2" + "source": "https://github.com/symfony/dependency-injection/tree/v7.0.1" }, "funding": [ { @@ -4130,11 +4084,11 @@ "type": "tidelift" } ], - "time": "2023-07-19T20:17:28+00:00" + "time": "2023-12-01T15:10:06+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", @@ -4181,7 +4135,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" }, "funding": [ { @@ -4201,69 +4155,65 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "61c7d16fbb61ffe3a08d1b965355d6b1006c3594" + "reference": "5e8e95e8389d03f2f3ae16a6c7c804849ed483b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/61c7d16fbb61ffe3a08d1b965355d6b1006c3594", - "reference": "61c7d16fbb61ffe3a08d1b965355d6b1006c3594", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/5e8e95e8389d03f2f3ae16a6c7c804849ed483b5", + "reference": "5e8e95e8389d03f2f3ae16a6c7c804849ed483b5", "shasum": "" }, "require": { - "doctrine/event-manager": "^1.2|^2", - "doctrine/persistence": "^2|^3", - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "doctrine/event-manager": "^2", + "doctrine/persistence": "^3.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "doctrine/annotations": "<1.13.1", - "doctrine/dbal": "<2.13.1", + "doctrine/dbal": "<3.6", "doctrine/lexer": "<1.1", - "doctrine/orm": "<2.12", - "symfony/cache": "<5.4", - "symfony/dependency-injection": "<6.2", - "symfony/form": "<5.4.21|>=6,<6.2.7", - "symfony/http-foundation": "<6.3", - "symfony/http-kernel": "<6.2", - "symfony/lock": "<6.3", - "symfony/messenger": "<5.4", - "symfony/property-info": "<5.4", - "symfony/security-bundle": "<5.4", - "symfony/security-core": "<6.0", - "symfony/validator": "<5.4.25|>=6,<6.2.12|>=6.3,<6.3.1" + "doctrine/orm": "<2.15", + "symfony/cache": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/form": "<6.4", + "symfony/http-foundation": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/lock": "<6.4", + "symfony/messenger": "<6.4", + "symfony/property-info": "<6.4", + "symfony/security-bundle": "<6.4", + "symfony/security-core": "<6.4", + "symfony/validator": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.13.1|^2", "doctrine/collections": "^1.0|^2.0", "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "^2.13.1|^3.0", - "doctrine/orm": "^2.12", + "doctrine/dbal": "^3.6|^4", + "doctrine/orm": "^2.15|^3", "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^6.2", - "symfony/doctrine-messenger": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/form": "^5.4.21|^6.2.7", - "symfony/http-kernel": "^6.3", - "symfony/lock": "^6.3", - "symfony/messenger": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/proxy-manager-bridge": "^5.4|^6.0", - "symfony/security-core": "^6.0", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^5.4.25|~6.2.12|^6.3.1", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/cache": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/doctrine-messenger": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/form": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/security-core": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "symfony-bridge", "autoload": { @@ -4291,7 +4241,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.2" + "source": "https://github.com/symfony/doctrine-bridge/tree/v7.0.0" }, "funding": [ { @@ -4307,32 +4257,32 @@ "type": "tidelift" } ], - "time": "2023-07-20T14:51:28+00:00" + "time": "2023-11-17T16:04:05+00:00" }, { "name": "symfony/dotenv", - "version": "v6.3.0", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "ceadb434fe2a6763a03d2d110441745834f3dd1e" + "reference": "782d55cb978921499086df75888bda88888ad1c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/ceadb434fe2a6763a03d2d110441745834f3dd1e", - "reference": "ceadb434fe2a6763a03d2d110441745834f3dd1e", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/782d55cb978921499086df75888bda88888ad1c3", + "reference": "782d55cb978921499086df75888bda88888ad1c3", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "conflict": { - "symfony/console": "<5.4", - "symfony/process": "<5.4" + "symfony/console": "<6.4", + "symfony/process": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0" + "symfony/console": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4365,7 +4315,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v6.3.0" + "source": "https://github.com/symfony/dotenv/tree/v7.0.0" }, "funding": [ { @@ -4381,34 +4331,35 @@ "type": "tidelift" } ], - "time": "2023-04-21T14:41:17+00:00" + "time": "2023-10-26T18:22:49+00:00" }, { "name": "symfony/error-handler", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a" + "reference": "80b1258be1b84c12a345d0ec3881bbf2e5270cc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/85fd65ed295c4078367c784e8a5a6cee30348b7a", - "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/80b1258be1b84c12a345d0ec3881bbf2e5270cc2", + "reference": "80b1258be1b84c12a345d0ec3881bbf2e5270cc2", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/var-dumper": "^6.4|^7.0" }, "conflict": { - "symfony/deprecation-contracts": "<2.5" + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" }, "require-dev": { "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -4439,7 +4390,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.3.2" + "source": "https://github.com/symfony/error-handler/tree/v7.0.0" }, "funding": [ { @@ -4455,28 +4406,28 @@ "type": "tidelift" } ], - "time": "2023-07-16T17:05:46+00:00" + "time": "2023-10-20T16:35:23+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e" + "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e", - "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e", + "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -4485,13 +4436,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0" + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4519,7 +4470,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.0" }, "funding": [ { @@ -4535,11 +4486,11 @@ "type": "tidelift" } ], - "time": "2023-07-06T06:56:43+00:00" + "time": "2023-07-27T16:29:09+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", @@ -4595,7 +4546,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" }, "funding": [ { @@ -4615,22 +4566,21 @@ }, { "name": "symfony/expression-language", - "version": "v6.3.0", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "6d560c4c80e7e328708efd923f93ad67e6a0c1c0" + "reference": "46520d885b340f44a369967835a4bec178d7ab3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/6d560c4c80e7e328708efd923f93ad67e6a0c1c0", - "reference": "6d560c4c80e7e328708efd923f93ad67e6a0c1c0", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/46520d885b340f44a369967835a4bec178d7ab3d", + "reference": "46520d885b340f44a369967835a4bec178d7ab3d", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/cache": "^5.4|^6.0", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", + "symfony/cache": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -4659,7 +4609,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v6.3.0" + "source": "https://github.com/symfony/expression-language/tree/v7.0.0" }, "funding": [ { @@ -4675,24 +4625,24 @@ "type": "tidelift" } ], - "time": "2023-04-28T16:05:33+00:00" + "time": "2023-07-27T16:29:09+00:00" }, { "name": "symfony/filesystem", - "version": "v6.3.1", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7", + "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, @@ -4722,7 +4672,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.3.1" + "source": "https://github.com/symfony/filesystem/tree/v7.0.0" }, "funding": [ { @@ -4738,27 +4688,27 @@ "type": "tidelift" } ], - "time": "2023-06-01T08:30:39+00:00" + "time": "2023-07-27T06:33:22+00:00" }, { "name": "symfony/finder", - "version": "v6.3.3", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e" + "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9915db259f67d21eefee768c1abcf1cc61b1fc9e", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e", + "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", + "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.0" + "symfony/filesystem": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4786,7 +4736,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.3" + "source": "https://github.com/symfony/finder/tree/v7.0.0" }, "funding": [ { @@ -4802,20 +4752,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T08:31:44+00:00" + "time": "2023-10-31T17:59:56+00:00" }, { "name": "symfony/flex", - "version": "v2.3.3", + "version": "v2.4.2", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "9c402af768c6c9f8126a9ffa192ecf7c16581e35" + "reference": "67ee785f1aedada76461de7a7ec10cd7f8ff8d36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/9c402af768c6c9f8126a9ffa192ecf7c16581e35", - "reference": "9c402af768c6c9f8126a9ffa192ecf7c16581e35", + "url": "https://api.github.com/repos/symfony/flex/zipball/67ee785f1aedada76461de7a7ec10cd7f8ff8d36", + "reference": "67ee785f1aedada76461de7a7ec10cd7f8ff8d36", "shasum": "" }, "require": { @@ -4851,7 +4801,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.3.3" + "source": "https://github.com/symfony/flex/tree/v2.4.2" }, "funding": [ { @@ -4867,107 +4817,109 @@ "type": "tidelift" } ], - "time": "2023-08-04T09:02:35+00:00" + "time": "2023-12-05T14:09:35+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.3.2", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "930fe7ee25a928b9b3627d717873ddd171430a82" + "reference": "71f790cc6a81828b810c830ad72b1bc4c8ceaf74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/930fe7ee25a928b9b3627d717873ddd171430a82", - "reference": "930fe7ee25a928b9b3627d717873ddd171430a82", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/71f790cc6a81828b810c830ad72b1bc4c8ceaf74", + "reference": "71f790cc6a81828b810c830ad72b1bc4c8ceaf74", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "ext-xml": "*", - "php": ">=8.1", - "symfony/cache": "^5.4|^6.0", - "symfony/config": "^6.1", - "symfony/dependency-injection": "^6.3.1", + "php": ">=8.2", + "symfony/cache": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.1", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/http-foundation": "^6.3", - "symfony/http-kernel": "^6.3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/filesystem": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^5.4|^6.0" + "symfony/routing": "^6.4|^7.0" }, "conflict": { - "doctrine/annotations": "<1.13.1", "doctrine/persistence": "<1.3", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/asset": "<5.4", - "symfony/clock": "<6.3", - "symfony/console": "<5.4", - "symfony/dom-crawler": "<6.3", - "symfony/dotenv": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<6.3", - "symfony/lock": "<5.4", - "symfony/mailer": "<5.4", - "symfony/messenger": "<6.3", - "symfony/mime": "<6.2", - "symfony/property-access": "<5.4", - "symfony/property-info": "<5.4", - "symfony/security-core": "<5.4", - "symfony/security-csrf": "<5.4", - "symfony/serializer": "<6.3", - "symfony/stopwatch": "<5.4", - "symfony/translation": "<6.2.8", - "symfony/twig-bridge": "<5.4", - "symfony/twig-bundle": "<5.4", - "symfony/validator": "<6.3", - "symfony/web-profiler-bundle": "<5.4", - "symfony/workflow": "<5.4" + "symfony/asset": "<6.4", + "symfony/asset-mapper": "<6.4", + "symfony/clock": "<6.4", + "symfony/console": "<6.4", + "symfony/dom-crawler": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/form": "<6.4", + "symfony/http-client": "<6.4", + "symfony/lock": "<6.4", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/mime": "<6.4", + "symfony/property-access": "<6.4", + "symfony/property-info": "<6.4", + "symfony/scheduler": "<6.4", + "symfony/security-core": "<6.4", + "symfony/security-csrf": "<6.4", + "symfony/serializer": "<6.4", + "symfony/stopwatch": "<6.4", + "symfony/translation": "<6.4", + "symfony/twig-bridge": "<6.4", + "symfony/twig-bundle": "<6.4", + "symfony/validator": "<6.4", + "symfony/web-profiler-bundle": "<6.4", + "symfony/workflow": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.13.1|^2", "doctrine/persistence": "^1.3|^2|^3", + "dragonmantank/cron-expression": "^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^5.4|^6.0", - "symfony/asset-mapper": "^6.3", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/clock": "^6.2", - "symfony/console": "^5.4.9|^6.0.9", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dom-crawler": "^6.3", - "symfony/dotenv": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/html-sanitizer": "^6.1", - "symfony/http-client": "^6.3", - "symfony/lock": "^5.4|^6.0", - "symfony/mailer": "^5.4|^6.0", - "symfony/messenger": "^6.3", - "symfony/mime": "^6.2", - "symfony/notifier": "^5.4|^6.0", + "seld/jsonlint": "^1.10", + "symfony/asset": "^6.4|^7.0", + "symfony/asset-mapper": "^6.4|^7.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/clock": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/dotenv": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/form": "^6.4|^7.0", + "symfony/html-sanitizer": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/lock": "^6.4|^7.0", + "symfony/mailer": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/notifier": "^6.4|^7.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/rate-limiter": "^5.4|^6.0", - "symfony/scheduler": "^6.3", - "symfony/security-bundle": "^5.4|^6.0", - "symfony/semaphore": "^5.4|^6.0", - "symfony/serializer": "^6.3", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/string": "^5.4|^6.0", - "symfony/translation": "^6.2.8", - "symfony/twig-bundle": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^6.3", - "symfony/web-link": "^5.4|^6.0", - "symfony/workflow": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0", - "twig/twig": "^2.10|^3.0" + "symfony/process": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0", + "symfony/scheduler": "^6.4|^7.0", + "symfony/security-bundle": "^6.4|^7.0", + "symfony/semaphore": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/string": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/twig-bundle": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/web-link": "^6.4|^7.0", + "symfony/workflow": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "type": "symfony-bundle", "autoload": { @@ -4995,7 +4947,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.3.2" + "source": "https://github.com/symfony/framework-bundle/tree/v7.0.1" }, "funding": [ { @@ -5011,32 +4963,31 @@ "type": "tidelift" } ], - "time": "2023-07-26T17:39:03+00:00" + "time": "2023-12-01T16:37:31+00:00" }, { "name": "symfony/http-client", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00" + "reference": "c3e90d09b3c45a5d47170e81a712d51c352cbc68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00", - "reference": "15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00", + "url": "https://api.github.com/repos/symfony/http-client/zipball/c3e90d09b3c45a5d47170e81a712d51c352cbc68", + "reference": "c3e90d09b3c45a5d47170e81a712d51c352cbc68", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-client-contracts": "^3", "symfony/service-contracts": "^2.5|^3" }, "conflict": { "php-http/discovery": "<1.15", - "symfony/http-foundation": "<6.3" + "symfony/http-foundation": "<6.4" }, "provide": { "php-http/async-client-implementation": "*", @@ -5053,10 +5004,11 @@ "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0" + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -5087,7 +5039,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.3.2" + "source": "https://github.com/symfony/http-client/tree/v7.0.0" }, "funding": [ { @@ -5103,20 +5055,20 @@ "type": "tidelift" } ], - "time": "2023-07-05T08:41:27+00:00" + "time": "2023-11-29T08:40:23+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb" + "reference": "1ee70e699b41909c209a0c930f11034b93578654" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb", - "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/1ee70e699b41909c209a0c930f11034b93578654", + "reference": "1ee70e699b41909c209a0c930f11034b93578654", "shasum": "" }, "require": { @@ -5165,7 +5117,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.4.0" }, "funding": [ { @@ -5181,40 +5133,40 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2023-07-30T20:28:31+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "43ed99d30f5f466ffa00bdac3f5f7aa9cd7617c3" + "reference": "47d72323200934694def5d57083899d774a2b110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/43ed99d30f5f466ffa00bdac3f5f7aa9cd7617c3", - "reference": "43ed99d30f5f466ffa00bdac3f5f7aa9cd7617c3", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/47d72323200934694def5d57083899d774a2b110", + "reference": "47d72323200934694def5d57083899d774a2b110", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.1", "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.2" + "doctrine/dbal": "<3.6", + "symfony/cache": "<6.4" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "symfony/mime": "^5.4|^6.0", - "symfony/rate-limiter": "^5.2|^6.0" + "symfony/cache": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -5242,7 +5194,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.3.2" + "source": "https://github.com/symfony/http-foundation/tree/v7.0.0" }, "funding": [ { @@ -5258,76 +5210,75 @@ "type": "tidelift" } ], - "time": "2023-07-23T21:58:39+00:00" + "time": "2023-11-07T15:10:37+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.3.3", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "d3b567f0addf695e10b0c6d57564a9bea2e058ee" + "reference": "4787639523dcdda32f69063f7fca2ad709f3c6d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d3b567f0addf695e10b0c6d57564a9bea2e058ee", - "reference": "d3b567f0addf695e10b0c6d57564a9bea2e058ee", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4787639523dcdda32f69063f7fca2ad709f3c6d2", + "reference": "4787639523dcdda32f69063f7fca2ad709f3c6d2", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^6.2.7", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.4", - "symfony/config": "<6.1", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.3", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", + "symfony/browser-kit": "<6.4", + "symfony/cache": "<6.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/form": "<6.4", + "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/translation": "<5.4", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/translation": "<6.4", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<5.4", - "symfony/validator": "<5.4", - "symfony/var-dumper": "<6.3", - "twig/twig": "<2.13" + "symfony/twig-bridge": "<6.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.4", + "twig/twig": "<3.0.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/clock": "^6.2", - "symfony/config": "^6.1", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.3", - "symfony/dom-crawler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/clock": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0", - "symfony/property-access": "^5.4.5|^6.0.5", - "symfony/routing": "^5.4|^6.0", - "symfony/serializer": "^6.3", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^6.3", - "symfony/var-exporter": "^6.2", - "twig/twig": "^2.13|^3.0.4" + "symfony/uid": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-exporter": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "type": "library", "autoload": { @@ -5355,7 +5306,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.3.3" + "source": "https://github.com/symfony/http-kernel/tree/v7.0.1" }, "funding": [ { @@ -5371,29 +5322,29 @@ "type": "tidelift" } ], - "time": "2023-07-31T10:33:00+00:00" + "time": "2023-12-01T17:08:48+00:00" }, { "name": "symfony/intl", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "1f8cb145c869ed089a8531c51a6a4b31ed0b3c69" + "reference": "a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/1f8cb145c869ed089a8531c51a6a4b31ed0b3c69", - "reference": "1f8cb145c869ed089a8531c51a6a4b31ed0b3c69", + "url": "https://api.github.com/repos/symfony/intl/zipball/a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d", + "reference": "a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/filesystem": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/var-exporter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -5437,7 +5388,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.3.2" + "source": "https://github.com/symfony/intl/tree/v7.0.0" }, "funding": [ { @@ -5453,25 +5404,24 @@ "type": "tidelift" } ], - "time": "2023-07-20T07:43:09+00:00" + "time": "2023-10-28T23:12:22+00:00" }, { "name": "symfony/mime", - "version": "v6.3.3", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98" + "reference": "0a2fff95c1a10df97f571d67e76c7ae0f0d4f535" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", - "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", + "url": "https://api.github.com/repos/symfony/mime/zipball/0a2fff95c1a10df97f571d67e76c7ae0f0d4f535", + "reference": "0a2fff95c1a10df97f571d67e76c7ae0f0d4f535", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -5479,17 +5429,17 @@ "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<5.4", - "symfony/serializer": "<6.2.13|>=6.3,<6.3.2" + "symfony/mailer": "<6.4", + "symfony/serializer": "<6.4" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "~6.2.13|^6.3.2" + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -5521,7 +5471,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.3.3" + "source": "https://github.com/symfony/mime/tree/v7.0.0" }, "funding": [ { @@ -5537,41 +5487,41 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-10-19T14:20:43+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v6.3.1", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "04b04b8e465e0fa84940e5609b6796a8b4e51bf1" + "reference": "4ee9e0b3a4736d5598888444e2f1cd3bf206067c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/04b04b8e465e0fa84940e5609b6796a8b4e51bf1", - "reference": "04b04b8e465e0fa84940e5609b6796a8b4e51bf1", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/4ee9e0b3a4736d5598888444e2f1cd3bf206067c", + "reference": "4ee9e0b3a4736d5598888444e2f1cd3bf206067c", "shasum": "" }, "require": { - "monolog/monolog": "^1.25.1|^2|^3", - "php": ">=8.1", - "symfony/http-kernel": "^5.4|^6.0", + "monolog/monolog": "^3", + "php": ">=8.2", + "symfony/http-kernel": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/console": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/security-core": "<6.0" + "symfony/console": "<6.4", + "symfony/http-foundation": "<6.4", + "symfony/security-core": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/mailer": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/security-core": "^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/console": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/mailer": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/security-core": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "symfony-bridge", "autoload": { @@ -5599,7 +5549,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.3.1" + "source": "https://github.com/symfony/monolog-bridge/tree/v7.0.0" }, "funding": [ { @@ -5615,34 +5565,34 @@ "type": "tidelift" } ], - "time": "2023-06-08T11:13:32+00:00" + "time": "2023-11-21T15:09:11+00:00" }, { "name": "symfony/monolog-bundle", - "version": "v3.8.0", + "version": "v3.10.0", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", - "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", + "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", "shasum": "" }, "require": { - "monolog/monolog": "^1.22 || ^2.0 || ^3.0", - "php": ">=7.1.3", - "symfony/config": "~4.4 || ^5.0 || ^6.0", - "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", - "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", - "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0", + "php": ">=7.2.5", + "symfony/config": "^5.4 || ^6.0 || ^7.0", + "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0", + "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0", + "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "symfony/console": "~4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.2 || ^6.0", - "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + "symfony/console": "^5.4 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^6.3 || ^7.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "type": "symfony-bundle", "extra": { @@ -5680,7 +5630,7 @@ ], "support": { "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + "source": "https://github.com/symfony/monolog-bundle/tree/v3.10.0" }, "funding": [ { @@ -5696,31 +5646,31 @@ "type": "tidelift" } ], - "time": "2022-05-10T14:24:36+00:00" + "time": "2023-11-06T17:08:13+00:00" }, { "name": "symfony/password-hasher", - "version": "v6.3.0", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "d23ad221989e6b8278d050cabfd7b569eee84590" + "reference": "d2da68c2f7a240bd6edf7e96fdc7aca5e7beea66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/d23ad221989e6b8278d050cabfd7b569eee84590", - "reference": "d23ad221989e6b8278d050cabfd7b569eee84590", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/d2da68c2f7a240bd6edf7e96fdc7aca5e7beea66", + "reference": "d2da68c2f7a240bd6edf7e96fdc7aca5e7beea66", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "conflict": { - "symfony/security-core": "<5.4" + "symfony/security-core": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0", - "symfony/security-core": "^5.4|^6.0" + "symfony/console": "^6.4|^7.0", + "symfony/security-core": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -5752,7 +5702,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.3.0" + "source": "https://github.com/symfony/password-hasher/tree/v7.0.0" }, "funding": [ { @@ -5768,20 +5718,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T09:04:20+00:00" + "time": "2023-11-07T10:26:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -5793,7 +5743,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5833,7 +5783,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -5849,20 +5799,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", "shasum": "" }, "require": { @@ -5876,7 +5826,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5920,7 +5870,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" }, "funding": [ { @@ -5936,20 +5886,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:30:37+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -5961,7 +5911,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6004,7 +5954,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -6020,20 +5970,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "508c652ba3ccf69f8c97f251534f229791b52a57" + "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/508c652ba3ccf69f8c97f251534f229791b52a57", - "reference": "508c652ba3ccf69f8c97f251534f229791b52a57", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", "shasum": "" }, "require": { @@ -6043,7 +5993,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6056,7 +6006,10 @@ ], "psr-4": { "Symfony\\Polyfill\\Php83\\": "" - } + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6081,7 +6034,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" }, "funding": [ { @@ -6097,24 +6050,24 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-08-16T06:22:46+00:00" }, { "name": "symfony/process", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d" + "reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d", - "reference": "c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d", + "url": "https://api.github.com/repos/symfony/process/zipball/13bdb1670c7f510494e04fcb2bfa29af63db9c0d", + "reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -6142,7 +6095,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.3.2" + "source": "https://github.com/symfony/process/tree/v7.0.0" }, "funding": [ { @@ -6158,29 +6111,28 @@ "type": "tidelift" } ], - "time": "2023-07-12T16:00:22+00:00" + "time": "2023-11-20T16:43:42+00:00" }, { "name": "symfony/property-access", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "2dc4f9da444b8f8ff592e95d570caad67924f1d0" + "reference": "740e8cb8c54a4f16c82179e8558c29d9fc49901d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/2dc4f9da444b8f8ff592e95d570caad67924f1d0", - "reference": "2dc4f9da444b8f8ff592e95d570caad67924f1d0", + "url": "https://api.github.com/repos/symfony/property-access/zipball/740e8cb8c54a4f16c82179e8558c29d9fc49901d", + "reference": "740e8cb8c54a4f16c82179e8558c29d9fc49901d", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/property-info": "^5.4|^6.0" + "php": ">=8.2", + "symfony/property-info": "^6.4|^7.0" }, "require-dev": { - "symfony/cache": "^5.4|^6.0" + "symfony/cache": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -6219,7 +6171,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v6.3.2" + "source": "https://github.com/symfony/property-access/tree/v7.0.0" }, "funding": [ { @@ -6235,38 +6187,38 @@ "type": "tidelift" } ], - "time": "2023-07-13T15:26:11+00:00" + "time": "2023-09-27T14:05:33+00:00" }, { "name": "symfony/property-info", - "version": "v6.3.0", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "7f3a03716112269741fe2a809f8f791a371d1fcd" + "reference": "ce627df05f5629ce4feec536ee827ad0a12689b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/7f3a03716112269741fe2a809f8f791a371d1fcd", - "reference": "7f3a03716112269741fe2a809f8f791a371d1fcd", + "url": "https://api.github.com/repos/symfony/property-info/zipball/ce627df05f5629ce4feec536ee827ad0a12689b6", + "reference": "ce627df05f5629ce4feec536ee827ad0a12689b6", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/string": "^5.4|^6.0" + "php": ">=8.2", + "symfony/string": "^6.4|^7.0" }, "conflict": { "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.5.1", - "symfony/dependency-injection": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/serializer": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4|^2", "phpdocumentor/reflection-docblock": "^5.2", "phpstan/phpdoc-parser": "^1.0", - "symfony/cache": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" + "symfony/cache": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -6302,74 +6254,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.3.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-05-19T08:06:44+00:00" - }, - { - "name": "symfony/proxy-manager-bridge", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/proxy-manager-bridge.git", - "reference": "7ba2ac62c88d7c3460d41f04ceba5fc3b9071a39" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/7ba2ac62c88d7c3460d41f04ceba5fc3b9071a39", - "reference": "7ba2ac62c88d7c3460d41f04ceba5fc3b9071a39", - "shasum": "" - }, - "require": { - "friendsofphp/proxy-manager-lts": "^1.0.2", - "php": ">=8.1", - "symfony/dependency-injection": "^6.3", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "require-dev": { - "symfony/config": "^6.1" - }, - "type": "symfony-bridge", - "autoload": { - "psr-4": { - "Symfony\\Bridge\\ProxyManager\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides integration for ProxyManager with various Symfony components", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/proxy-manager-bridge/tree/v6.3.0" + "source": "https://github.com/symfony/property-info/tree/v7.0.0" }, "funding": [ { @@ -6385,40 +6270,38 @@ "type": "tidelift" } ], - "time": "2023-05-26T07:49:33+00:00" + "time": "2023-11-25T08:38:27+00:00" }, { "name": "symfony/routing", - "version": "v6.3.3", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a" + "reference": "fc55062907669835af6408558ae4d1dafef74b1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e7243039ab663822ff134fbc46099b5fdfa16f6a", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a", + "url": "https://api.github.com/repos/symfony/routing/zipball/fc55062907669835af6408558ae4d1dafef74b1e", + "reference": "fc55062907669835af6408558ae4d1dafef74b1e", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<6.2", - "symfony/dependency-injection": "<5.4", - "symfony/yaml": "<5.4" + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/yaml": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3", - "symfony/config": "^6.2", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -6452,7 +6335,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.3.3" + "source": "https://github.com/symfony/routing/tree/v7.0.1" }, "funding": [ { @@ -6468,35 +6351,35 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-12-01T15:10:06+00:00" }, { "name": "symfony/runtime", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "d5c09493647a0c1a16e6c8da308098e840d1164f" + "reference": "65a4e69b1cdcee4f4f7a619a41d4b7ec79e85406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/d5c09493647a0c1a16e6c8da308098e840d1164f", - "reference": "d5c09493647a0c1a16e6c8da308098e840d1164f", + "url": "https://api.github.com/repos/symfony/runtime/zipball/65a4e69b1cdcee4f4f7a619a41d4b7ec79e85406", + "reference": "65a4e69b1cdcee4f4f7a619a41d4b7ec79e85406", "shasum": "" }, "require": { "composer-plugin-api": "^1.0|^2.0", - "php": ">=8.1" + "php": ">=8.2" }, "conflict": { - "symfony/dotenv": "<5.4" + "symfony/dotenv": "<6.4" }, "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "symfony/console": "^5.4.9|^6.0.9", - "symfony/dotenv": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0" + "composer/composer": "^2.6", + "symfony/console": "^6.4|^7.0", + "symfony/dotenv": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0" }, "type": "composer-plugin", "extra": { @@ -6531,7 +6414,7 @@ "runtime" ], "support": { - "source": "https://github.com/symfony/runtime/tree/v6.3.2" + "source": "https://github.com/symfony/runtime/tree/v7.0.0" }, "funding": [ { @@ -6547,67 +6430,68 @@ "type": "tidelift" } ], - "time": "2023-07-16T17:05:46+00:00" + "time": "2023-10-20T16:35:23+00:00" }, { "name": "symfony/security-bundle", - "version": "v6.3.3", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "b33382ca3034ee691dd0d882f214ae9e037f4427" + "reference": "4138552567cdc211ec2e13f2642339b64219e343" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/b33382ca3034ee691dd0d882f214ae9e037f4427", - "reference": "b33382ca3034ee691dd0d882f214ae9e037f4427", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/4138552567cdc211ec2e13f2642339b64219e343", + "reference": "4138552567cdc211ec2e13f2642339b64219e343", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "ext-xml": "*", - "php": ">=8.1", - "symfony/clock": "^6.3", - "symfony/config": "^6.1", - "symfony/dependency-injection": "^6.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^6.2", - "symfony/http-kernel": "^6.2", - "symfony/password-hasher": "^5.4|^6.0", - "symfony/security-core": "^6.2", - "symfony/security-csrf": "^5.4|^6.0", - "symfony/security-http": "^6.3" + "php": ">=8.2", + "symfony/clock": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/password-hasher": "^6.4|^7.0", + "symfony/security-core": "^6.4|^7.0", + "symfony/security-csrf": "^6.4|^7.0", + "symfony/security-http": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/console": "<5.4", - "symfony/framework-bundle": "<6.3", - "symfony/http-client": "<5.4", - "symfony/ldap": "<5.4", - "symfony/twig-bundle": "<5.4" + "symfony/browser-kit": "<6.4", + "symfony/console": "<6.4", + "symfony/framework-bundle": "<6.4", + "symfony/http-client": "<6.4", + "symfony/ldap": "<6.4", + "symfony/serializer": "<6.4", + "symfony/twig-bundle": "<6.4", + "symfony/validator": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4|^2", - "symfony/asset": "^5.4|^6.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dom-crawler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/framework-bundle": "^6.3", - "symfony/http-client": "^5.4|^6.0", - "symfony/ldap": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/rate-limiter": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/twig-bridge": "^5.4|^6.0", - "symfony/twig-bundle": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0", - "twig/twig": "^2.13|^3.0.4", + "symfony/asset": "^6.4|^7.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/form": "^6.4|^7.0", + "symfony/framework-bundle": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/ldap": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0", + "symfony/twig-bundle": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0", + "twig/twig": "^3.0.4", "web-token/jwt-checker": "^3.1", "web-token/jwt-signature-algorithm-ecdsa": "^3.1", "web-token/jwt-signature-algorithm-eddsa": "^3.1", @@ -6641,7 +6525,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.3.3" + "source": "https://github.com/symfony/security-bundle/tree/v7.0.0" }, "funding": [ { @@ -6657,48 +6541,46 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-10-31T17:59:56+00:00" }, { "name": "symfony/security-core", - "version": "v6.3.3", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "b86ce012cc9a62a15ed43af5037eebc3e6de4d7f" + "reference": "2ba040de8e6d93e07edc7307dc75b42e06137405" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/b86ce012cc9a62a15ed43af5037eebc3e6de4d7f", - "reference": "b86ce012cc9a62a15ed43af5037eebc3e6de4d7f", + "url": "https://api.github.com/repos/symfony/security-core/zipball/2ba040de8e6d93e07edc7307dc75b42e06137405", + "reference": "2ba040de8e6d93e07edc7307dc75b42e06137405", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3", - "symfony/password-hasher": "^5.4|^6.0", + "symfony/password-hasher": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/event-dispatcher": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/ldap": "<5.4", - "symfony/security-guard": "<5.4", - "symfony/validator": "<5.4" + "symfony/event-dispatcher": "<6.4", + "symfony/http-foundation": "<6.4", + "symfony/ldap": "<6.4", + "symfony/validator": "<6.4" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", "psr/container": "^1.1|^2.0", "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/ldap": "^5.4|^6.0", - "symfony/string": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0" + "symfony/cache": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/ldap": "^6.4|^7.0", + "symfony/string": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -6726,7 +6608,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.3.3" + "source": "https://github.com/symfony/security-core/tree/v7.0.1" }, "funding": [ { @@ -6742,31 +6624,31 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-11-30T11:04:23+00:00" }, { "name": "symfony/security-csrf", - "version": "v6.3.2", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "63d7b098c448cbddb46ea5eda33b68c1ece6eb5b" + "reference": "e261f2cc8d170ec2f310d037893b213850867b6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/63d7b098c448cbddb46ea5eda33b68c1ece6eb5b", - "reference": "63d7b098c448cbddb46ea5eda33b68c1ece6eb5b", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/e261f2cc8d170ec2f310d037893b213850867b6b", + "reference": "e261f2cc8d170ec2f310d037893b213850867b6b", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/security-core": "^5.4|^6.0" + "php": ">=8.2", + "symfony/security-core": "^6.4|^7.0" }, "conflict": { - "symfony/http-foundation": "<5.4" + "symfony/http-foundation": "<6.4" }, "require-dev": { - "symfony/http-foundation": "^5.4|^6.0" + "symfony/http-foundation": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -6794,7 +6676,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v6.3.2" + "source": "https://github.com/symfony/security-csrf/tree/v7.0.1" }, "funding": [ { @@ -6810,48 +6692,48 @@ "type": "tidelift" } ], - "time": "2023-07-05T08:41:27+00:00" + "time": "2023-11-30T11:04:23+00:00" }, { "name": "symfony/security-http", - "version": "v6.3.2", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "04d6b868786a56c1fadc52b003fe5a4f9ab3f3d0" + "reference": "acc9931d75cd16de08b1663223cb8ab36f61cc0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/04d6b868786a56c1fadc52b003fe5a4f9ab3f3d0", - "reference": "04d6b868786a56c1fadc52b003fe5a4f9ab3f3d0", + "url": "https://api.github.com/repos/symfony/security-http/zipball/acc9931d75cd16de08b1663223cb8ab36f61cc0c", + "reference": "acc9931d75cd16de08b1663223cb8ab36f61cc0c", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^6.3", + "php": ">=8.2", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/security-core": "^6.3" + "symfony/property-access": "^6.4|^7.0", + "symfony/security-core": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/clock": "<6.3", - "symfony/event-dispatcher": "<5.4.9|>=6,<6.0.9", + "symfony/clock": "<6.4", + "symfony/event-dispatcher": "<6.4", "symfony/http-client-contracts": "<3.0", - "symfony/security-bundle": "<5.4", - "symfony/security-csrf": "<5.4" + "symfony/security-bundle": "<6.4", + "symfony/security-csrf": "<6.4" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0", - "symfony/clock": "^6.3", - "symfony/expression-language": "^5.4|^6.0", + "symfony/cache": "^6.4|^7.0", + "symfony/clock": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", "symfony/http-client-contracts": "^3.0", - "symfony/rate-limiter": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", - "symfony/security-csrf": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", + "symfony/rate-limiter": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0", + "symfony/security-csrf": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", "web-token/jwt-checker": "^3.1", "web-token/jwt-signature-algorithm-ecdsa": "^3.1" }, @@ -6881,7 +6763,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.3.2" + "source": "https://github.com/symfony/security-http/tree/v7.0.1" }, "funding": [ { @@ -6897,57 +6779,58 @@ "type": "tidelift" } ], - "time": "2023-07-13T14:29:38+00:00" + "time": "2023-11-30T11:04:23+00:00" }, { "name": "symfony/serializer", - "version": "v6.3.3", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "33deb86d212893042d7758d452aa39d19ca0efe3" + "reference": "9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/33deb86d212893042d7758d452aa39d19ca0efe3", - "reference": "33deb86d212893042d7758d452aa39d19ca0efe3", + "url": "https://api.github.com/repos/symfony/serializer/zipball/9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff", + "reference": "9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/dependency-injection": "<5.4", - "symfony/property-access": "<5.4", - "symfony/property-info": "<5.4.24|>=6,<6.2.11", - "symfony/uid": "<5.4", - "symfony/yaml": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/property-access": "<6.4", + "symfony/property-info": "<6.4", + "symfony/uid": "<6.4", + "symfony/validator": "<6.4", + "symfony/yaml": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.12|^2", "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", - "symfony/cache": "^5.4|^6.0", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4.24|^6.2.11", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0", - "symfony/var-exporter": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "seld/jsonlint": "^1.10", + "symfony/cache": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/filesystem": "^6.4|^7.0", + "symfony/form": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0", + "symfony/var-exporter": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -6975,7 +6858,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.3.3" + "source": "https://github.com/symfony/serializer/tree/v7.0.1" }, "funding": [ { @@ -6991,20 +6874,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-12-01T15:10:06+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", - "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", + "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", "shasum": "" }, "require": { @@ -7057,7 +6940,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" }, "funding": [ { @@ -7073,35 +6956,36 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2023-07-30T20:28:31+00:00" }, { "name": "symfony/stimulus-bundle", - "version": "v2.10.0", + "version": "v2.13.3", "source": { "type": "git", "url": "https://github.com/symfony/stimulus-bundle.git", - "reference": "257ef052bebe491d7c29e9a4a8009edb82269e15" + "reference": "40a4416e6d8da7deb18a75bb9b8e7ce955cf653d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/257ef052bebe491d7c29e9a4a8009edb82269e15", - "reference": "257ef052bebe491d7c29e9a4a8009edb82269e15", + "url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/40a4416e6d8da7deb18a75bb9b8e7ce955cf653d", + "reference": "40a4416e6d8da7deb18a75bb9b8e7ce955cf653d", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/deprecation-contracts": "^2.0|^3.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", "twig/twig": "^2.15.3|^3.4.3" }, "require-dev": { - "symfony/asset-mapper": "6.3.x-dev", - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/phpunit-bridge": "^5.4|^6.0", - "symfony/twig-bundle": "^5.4|^6.0", + "symfony/asset-mapper": "^6.3|^7.0", + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/phpunit-bridge": "^5.4|^6.0|^7.0", + "symfony/twig-bundle": "^5.4|^6.0|^7.0", "zenstruck/browser": "^1.4" }, "type": "symfony-bundle", @@ -7125,7 +7009,7 @@ "symfony-ux" ], "support": { - "source": "https://github.com/symfony/stimulus-bundle/tree/v2.10.0" + "source": "https://github.com/symfony/stimulus-bundle/tree/v2.13.3" }, "funding": [ { @@ -7141,24 +7025,24 @@ "type": "tidelift" } ], - "time": "2023-06-29T19:46:37+00:00" + "time": "2023-11-30T20:29:09+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.3.0", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2" + "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", - "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a", + "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -7187,7 +7071,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.3.0" + "source": "https://github.com/symfony/stopwatch/tree/v7.0.0" }, "funding": [ { @@ -7203,24 +7087,24 @@ "type": "tidelift" } ], - "time": "2023-02-16T10:14:28+00:00" + "time": "2023-07-05T13:06:06+00:00" }, { "name": "symfony/string", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "53d1a83225002635bca3482fcbf963001313fb68" + "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68", - "reference": "53d1a83225002635bca3482fcbf963001313fb68", + "url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620", + "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -7230,11 +7114,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/intl": "^6.2", + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/var-exporter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7273,7 +7157,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.2" + "source": "https://github.com/symfony/string/tree/v7.0.0" }, "funding": [ { @@ -7289,37 +7173,36 @@ "type": "tidelift" } ], - "time": "2023-07-05T08:41:27+00:00" + "time": "2023-11-29T08:40:23+00:00" }, { "name": "symfony/translation", - "version": "v6.3.3", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd" + "reference": "ab5a14723f23159854bf91b41255cad23b929fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", - "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "url": "https://api.github.com/repos/symfony/translation/zipball/ab5a14723f23159854bf91b41255cad23b929fab", + "reference": "ab5a14723f23159854bf91b41255cad23b929fab", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2.5|^3.0" }, "conflict": { - "symfony/config": "<5.4", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", + "symfony/http-kernel": "<6.4", "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<5.4", - "symfony/yaml": "<5.4" + "symfony/twig-bundle": "<6.4", + "symfony/yaml": "<6.4" }, "provide": { "symfony/translation-implementation": "2.3|3.0" @@ -7327,17 +7210,17 @@ "require-dev": { "nikic/php-parser": "^4.13", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/intl": "^5.4|^6.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^5.4|^6.0", + "symfony/routing": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0" + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7368,7 +7251,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.3.3" + "source": "https://github.com/symfony/translation/tree/v7.0.0" }, "funding": [ { @@ -7384,20 +7267,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-11-29T08:40:23+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" + "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", - "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", + "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", "shasum": "" }, "require": { @@ -7446,7 +7329,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" }, "funding": [ { @@ -7462,68 +7345,68 @@ "type": "tidelift" } ], - "time": "2023-05-30T17:17:10+00:00" + "time": "2023-07-25T15:08:44+00:00" }, { "name": "symfony/twig-bridge", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "6f8435db76a2d79917489a19a82679276c1b4e32" + "reference": "883b7b035670b02e06f1dd6cbe71fa1dabcdec7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/6f8435db76a2d79917489a19a82679276c1b4e32", - "reference": "6f8435db76a2d79917489a19a82679276c1b4e32", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/883b7b035670b02e06f1dd6cbe71fa1dabcdec7d", + "reference": "883b7b035670b02e06f1dd6cbe71fa1dabcdec7d", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/translation-contracts": "^2.5|^3", - "twig/twig": "^2.13|^3.0.4" + "twig/twig": "^3.0.4" }, "conflict": { "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/console": "<5.4", - "symfony/form": "<6.3", - "symfony/http-foundation": "<5.4", - "symfony/http-kernel": "<6.2", - "symfony/mime": "<6.2", - "symfony/translation": "<5.4", - "symfony/workflow": "<5.4" + "symfony/console": "<6.4", + "symfony/form": "<6.4", + "symfony/http-foundation": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/mime": "<6.4", + "symfony/serializer": "<6.4", + "symfony/translation": "<6.4", + "symfony/workflow": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.12|^2", "egulias/email-validator": "^2.1.10|^3|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^5.4|^6.0", - "symfony/asset-mapper": "^6.3", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/form": "^6.3", - "symfony/html-sanitizer": "^6.1", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^6.2", - "symfony/intl": "^5.4|^6.0", - "symfony/mime": "^6.2", + "symfony/asset": "^6.4|^7.0", + "symfony/asset-mapper": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/form": "^6.4|^7.0", + "symfony/html-sanitizer": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0", "symfony/security-acl": "^2.8|^3.0", - "symfony/security-core": "^5.4|^6.0", - "symfony/security-csrf": "^5.4|^6.0", - "symfony/security-http": "^5.4|^6.0", - "symfony/serializer": "^6.2", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^6.1", - "symfony/web-link": "^5.4|^6.0", - "symfony/workflow": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0", + "symfony/security-core": "^6.4|^7.0", + "symfony/security-csrf": "^6.4|^7.0", + "symfony/security-http": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/web-link": "^6.4|^7.0", + "symfony/workflow": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0", "twig/cssinliner-extra": "^2.12|^3", "twig/inky-extra": "^2.12|^3", "twig/markdown-extra": "^2.12|^3" @@ -7554,7 +7437,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.3.2" + "source": "https://github.com/symfony/twig-bridge/tree/v7.0.0" }, "funding": [ { @@ -7570,48 +7453,47 @@ "type": "tidelift" } ], - "time": "2023-07-20T16:42:33+00:00" + "time": "2023-11-26T15:16:53+00:00" }, { "name": "symfony/twig-bundle", - "version": "v6.3.0", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea" + "reference": "42c4a60f1b83894cd85a6b00533f8216c413ac11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea", - "reference": "d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/42c4a60f1b83894cd85a6b00533f8216c413ac11", + "reference": "42c4a60f1b83894cd85a6b00533f8216c413ac11", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", - "php": ">=8.1", - "symfony/config": "^6.1", - "symfony/dependency-injection": "^6.1", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^6.2", - "symfony/twig-bridge": "^6.3", - "twig/twig": "^2.13|^3.0.4" + "php": ">=8.2", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "conflict": { - "symfony/framework-bundle": "<5.4", - "symfony/translation": "<5.4" + "symfony/framework-bundle": "<6.4", + "symfony/translation": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4|^2", - "symfony/asset": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/web-link": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "symfony/asset": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/form": "^6.4|^7.0", + "symfony/framework-bundle": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/web-link": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" }, "type": "symfony-bundle", "autoload": { @@ -7639,7 +7521,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v6.3.0" + "source": "https://github.com/symfony/twig-bundle/tree/v7.0.0" }, "funding": [ { @@ -7655,37 +7537,37 @@ "type": "tidelift" } ], - "time": "2023-05-06T09:53:41+00:00" + "time": "2023-11-26T15:16:53+00:00" }, { "name": "symfony/ux-chartjs", - "version": "v2.10.0", + "version": "v2.13.2", "source": { "type": "git", "url": "https://github.com/symfony/ux-chartjs.git", - "reference": "0399f5785309fa81f07289b1cac8e904e2736257" + "reference": "285f16b889679ad34a660878237457d2f47d3973" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-chartjs/zipball/0399f5785309fa81f07289b1cac8e904e2736257", - "reference": "0399f5785309fa81f07289b1cac8e904e2736257", + "url": "https://api.github.com/repos/symfony/ux-chartjs/zipball/285f16b889679ad34a660878237457d2f47d3973", + "reference": "285f16b889679ad34a660878237457d2f47d3973", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", "symfony/stimulus-bundle": "^2.9.1" }, "conflict": { "symfony/flex": "<1.13" }, "require-dev": { - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/phpunit-bridge": "^5.4|^6.0", - "symfony/twig-bundle": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/phpunit-bridge": "^5.4|^6.0|^7.0", + "symfony/twig-bundle": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "symfony-bundle", "extra": { @@ -7719,7 +7601,7 @@ "symfony-ux" ], "support": { - "source": "https://github.com/symfony/ux-chartjs/tree/v2.10.0" + "source": "https://github.com/symfony/ux-chartjs/tree/v2.13.2" }, "funding": [ { @@ -7735,26 +7617,26 @@ "type": "tidelift" } ], - "time": "2023-06-19T13:59:38+00:00" + "time": "2023-11-11T01:21:34+00:00" }, { "name": "symfony/ux-live-component", - "version": "v2.10.0", + "version": "v2.13.3", "source": { "type": "git", "url": "https://github.com/symfony/ux-live-component.git", - "reference": "73f6b7c0c17711370869d17626ba4d8d29dd8c13" + "reference": "34626e96324c0c414342bcfe60554c2c8f1d331a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-live-component/zipball/73f6b7c0c17711370869d17626ba4d8d29dd8c13", - "reference": "73f6b7c0c17711370869d17626ba4d8d29dd8c13", + "url": "https://api.github.com/repos/symfony/ux-live-component/zipball/34626e96324c0c414342bcfe60554c2c8f1d331a", + "reference": "34626e96324c0c414342bcfe60554c2c8f1d331a", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/property-access": "^5.4.5|^6.0", - "symfony/serializer": "^5.4|^6.0", + "symfony/property-access": "^5.4.5|^6.0|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0", "symfony/ux-twig-component": "^2.8", "twig/twig": "^2.14.7|^3.0.4" }, @@ -7768,15 +7650,16 @@ "doctrine/orm": "^2.9.4", "doctrine/persistence": "^2.5.2|^3.0", "phpdocumentor/reflection-docblock": "5.x-dev", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/options-resolver": "^5.4|^6.0", - "symfony/phpunit-bridge": "^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/security-csrf": "^5.4|^6.0", - "symfony/twig-bundle": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/form": "^5.4|^6.0|^7.0", + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/options-resolver": "^5.4|^6.0|^7.0", + "symfony/phpunit-bridge": "^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/security-csrf": "^5.4|^6.0|^7.0", + "symfony/twig-bundle": "^5.4|^6.0|^7.0", + "symfony/validator": "^5.4|^6.0|^7.0", "zenstruck/browser": "^1.2.0", "zenstruck/foundry": "^1.33" }, @@ -7810,7 +7693,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-live-component/tree/v2.10.0" + "source": "https://github.com/symfony/ux-live-component/tree/v2.13.3" }, "funding": [ { @@ -7826,20 +7709,20 @@ "type": "tidelift" } ], - "time": "2023-06-25T13:28:22+00:00" + "time": "2023-12-01T20:21:20+00:00" }, { "name": "symfony/ux-turbo", - "version": "v2.10.0", + "version": "v2.13.2", "source": { "type": "git", "url": "https://github.com/symfony/ux-turbo.git", - "reference": "9762c373ed54c3642a4ae64b9254bc1c454f7da0" + "reference": "1be97f191f166ad745f777cafdaa5609d959984d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-turbo/zipball/9762c373ed54c3642a4ae64b9254bc1c454f7da0", - "reference": "9762c373ed54c3642a4ae64b9254bc1c454f7da0", + "url": "https://api.github.com/repos/symfony/ux-turbo/zipball/1be97f191f166ad745f777cafdaa5609d959984d", + "reference": "1be97f191f166ad745f777cafdaa5609d959984d", "shasum": "" }, "require": { @@ -7850,24 +7733,24 @@ "symfony/flex": "<1.13" }, "require-dev": { - "doctrine/annotations": "^1.12", "doctrine/doctrine-bundle": "^2.4.3", "doctrine/orm": "^2.8 | 3.0", "phpstan/phpstan": "^1.10", - "symfony/debug-bundle": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/mercure-bundle": "^0.3.4", - "symfony/messenger": "^5.4|^6.0", + "symfony/debug-bundle": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/form": "^5.4|^6.0|^7.0", + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/mercure-bundle": "^0.3.7", + "symfony/messenger": "^5.4|^6.0|^7.0", "symfony/panther": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/security-core": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/twig-bundle": "^5.4|^6.0", - "symfony/web-profiler-bundle": "^5.4|^6.0", - "symfony/webpack-encore-bundle": "^1.11" + "symfony/phpunit-bridge": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|6.3.*|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/security-core": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/twig-bundle": "^5.4|^6.0|^7.0", + "symfony/web-profiler-bundle": "^5.4|^6.0|^7.0", + "symfony/webpack-encore-bundle": "^2.1.1" }, "type": "symfony-bundle", "extra": { @@ -7906,7 +7789,7 @@ "turbo-stream" ], "support": { - "source": "https://github.com/symfony/ux-turbo/tree/v2.10.0" + "source": "https://github.com/symfony/ux-turbo/tree/v2.13.2" }, "funding": [ { @@ -7922,38 +7805,42 @@ "type": "tidelift" } ], - "time": "2023-06-19T13:59:38+00:00" + "time": "2023-11-11T01:20:31+00:00" }, { "name": "symfony/ux-twig-component", - "version": "v2.10.0", + "version": "v2.13.3", "source": { "type": "git", "url": "https://github.com/symfony/ux-twig-component.git", - "reference": "0c222ddce77fa7deda8541d8973db528e1451379" + "reference": "d2f452990c94b261a926a7f0ee6ad5928b0a0662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/0c222ddce77fa7deda8541d8973db528e1451379", - "reference": "0c222ddce77fa7deda8541d8973db528e1451379", + "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/d2f452990c94b261a926a7f0ee6ad5928b0a0662", + "reference": "d2f452990c94b261a926a7f0ee6ad5928b0a0662", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/dependency-injection": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/deprecation-contracts": "^2.2|^3.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", "twig/twig": "^2.14.7|^3.0.4" }, "conflict": { "symfony/config": "<5.4.0" }, "require-dev": { - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/phpunit-bridge": "^6.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/phpunit-bridge": "^6.0|^7.0", "symfony/stimulus-bundle": "^2.9.1", - "symfony/twig-bundle": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/twig-bundle": "^5.4|^6.0|^7.0", "symfony/webpack-encore-bundle": "^1.15" }, "type": "symfony-bundle", @@ -7986,7 +7873,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-twig-component/tree/v2.10.0" + "source": "https://github.com/symfony/ux-twig-component/tree/v2.13.3" }, "funding": [ { @@ -8002,37 +7889,36 @@ "type": "tidelift" } ], - "time": "2023-06-28T20:17:17+00:00" + "time": "2023-12-01T20:15:57+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.3.3", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "77fb4f2927f6991a9843633925d111147449ee7a" + "reference": "cf0220fc7607476fd0d001ab3ed9e830d1fdda56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/77fb4f2927f6991a9843633925d111147449ee7a", - "reference": "77fb4f2927f6991a9843633925d111147449ee7a", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cf0220fc7607476fd0d001ab3ed9e830d1fdda56", + "reference": "cf0220fc7607476fd0d001ab3ed9e830d1fdda56", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "bin": [ "Resources/bin/var-dump-server" @@ -8070,7 +7956,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.3.3" + "source": "https://github.com/symfony/var-dumper/tree/v7.0.0" }, "funding": [ { @@ -8086,27 +7972,27 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-11-27T12:39:18+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.3.2", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "3400949782c0cb5b3e73aa64cfd71dde000beccc" + "reference": "a3d7c877414fcd59ab7075ecdc3b8f9c00f7bcc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/3400949782c0cb5b3e73aa64cfd71dde000beccc", - "reference": "3400949782c0cb5b3e73aa64cfd71dde000beccc", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/a3d7c877414fcd59ab7075ecdc3b8f9c00f7bcc3", + "reference": "a3d7c877414fcd59ab7075ecdc3b8f9c00f7bcc3", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "symfony/var-dumper": "^5.4|^6.0" + "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8144,7 +8030,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.3.2" + "source": "https://github.com/symfony/var-exporter/tree/v7.0.1" }, "funding": [ { @@ -8160,34 +8046,34 @@ "type": "tidelift" } ], - "time": "2023-07-26T17:39:03+00:00" + "time": "2023-11-30T11:38:21+00:00" }, { "name": "symfony/web-link", - "version": "v6.3.0", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/web-link.git", - "reference": "0989ca617d0703cdca501a245f10e194ff22315b" + "reference": "378bcc80b48c51e32bf121bee684183ff879a62f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-link/zipball/0989ca617d0703cdca501a245f10e194ff22315b", - "reference": "0989ca617d0703cdca501a245f10e194ff22315b", + "url": "https://api.github.com/repos/symfony/web-link/zipball/378bcc80b48c51e32bf121bee684183ff879a62f", + "reference": "378bcc80b48c51e32bf121bee684183ff879a62f", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/link": "^1.1|^2.0" }, "conflict": { - "symfony/http-kernel": "<5.4" + "symfony/http-kernel": "<6.4" }, "provide": { "psr/link-implementation": "1.0|2.0" }, "require-dev": { - "symfony/http-kernel": "^5.4|^6.0" + "symfony/http-kernel": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8227,7 +8113,7 @@ "push" ], "support": { - "source": "https://github.com/symfony/web-link/tree/v6.3.0" + "source": "https://github.com/symfony/web-link/tree/v7.0.0" }, "funding": [ { @@ -8243,32 +8129,31 @@ "type": "tidelift" } ], - "time": "2023-04-21T14:41:17+00:00" + "time": "2023-07-25T09:50:29+00:00" }, { "name": "symfony/yaml", - "version": "v6.3.3", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add" + "reference": "0055b230c408428b9b5cde7c55659555be5c0278" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add", - "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0055b230c408428b9b5cde7c55659555be5c0278", + "reference": "0055b230c408428b9b5cde7c55659555be5c0278", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0" + "symfony/console": "^6.4|^7.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -8299,7 +8184,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.3.3" + "source": "https://github.com/symfony/yaml/tree/v7.0.0" }, "funding": [ { @@ -8315,29 +8200,29 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-11-07T10:26:03+00:00" }, { "name": "twig/cache-extra", - "version": "v3.7.0", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/twigphp/cache-extra.git", - "reference": "672a70d21c001ac5a75827445c42203bf21ff1aa" + "reference": "1e78b0e9268dd9742c480a2279eb246652a9c452" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/cache-extra/zipball/672a70d21c001ac5a75827445c42203bf21ff1aa", - "reference": "672a70d21c001ac5a75827445c42203bf21ff1aa", + "url": "https://api.github.com/repos/twigphp/cache-extra/zipball/1e78b0e9268dd9742c480a2279eb246652a9c452", + "reference": "1e78b0e9268dd9742c480a2279eb246652a9c452", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/cache": "^5.0|^6.0", - "twig/twig": "^2.4|^3.0" + "symfony/cache": "^5.0|^6.0|^7.0", + "twig/twig": "^3.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + "symfony/phpunit-bridge": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8368,7 +8253,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/cache-extra/tree/v3.7.0" + "source": "https://github.com/twigphp/cache-extra/tree/v3.8.0" }, "funding": [ { @@ -8380,31 +8265,31 @@ "type": "tidelift" } ], - "time": "2023-02-09T06:45:16+00:00" + "time": "2023-11-21T14:02:01+00:00" }, { "name": "twig/extra-bundle", - "version": "v3.7.0", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49" + "reference": "32807183753de0388c8e59f7ac2d13bb47311140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49", - "reference": "802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/32807183753de0388c8e59f7ac2d13bb47311140", + "reference": "32807183753de0388c8e59f7ac2d13bb47311140", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/framework-bundle": "^4.4|^5.0|^6.0", - "symfony/twig-bundle": "^4.4|^5.0|^6.0", - "twig/twig": "^2.7|^3.0" + "symfony/framework-bundle": "^5.4|^6.0|^7.0", + "symfony/twig-bundle": "^5.4|^6.0|^7.0", + "twig/twig": "^3.0" }, "require-dev": { "league/commonmark": "^1.0|^2.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0", + "symfony/phpunit-bridge": "^6.4|^7.0", "twig/cache-extra": "^3.0", "twig/cssinliner-extra": "^2.12|^3.0", "twig/html-extra": "^2.12|^3.0", @@ -8442,7 +8327,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.7.0" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.8.0" }, "funding": [ { @@ -8454,29 +8339,29 @@ "type": "tidelift" } ], - "time": "2023-05-06T11:11:46+00:00" + "time": "2023-11-21T14:02:01+00:00" }, { "name": "twig/html-extra", - "version": "v3.7.0", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/twigphp/html-extra.git", - "reference": "af5b336a13122d28d405714b6f2abe840632251b" + "reference": "c04603bb3b71d8d2ece9e583dbf7bd77811df1f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/html-extra/zipball/af5b336a13122d28d405714b6f2abe840632251b", - "reference": "af5b336a13122d28d405714b6f2abe840632251b", + "url": "https://api.github.com/repos/twigphp/html-extra/zipball/c04603bb3b71d8d2ece9e583dbf7bd77811df1f2", + "reference": "c04603bb3b71d8d2ece9e583dbf7bd77811df1f2", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/mime": "^4.4|^5.0|^6.0", - "twig/twig": "^2.7|^3.0" + "php": ">=7.2.5", + "symfony/mime": "^5.4|^6.0|^7.0", + "twig/twig": "^3.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + "symfony/phpunit-bridge": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8506,7 +8391,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/html-extra/tree/v3.7.0" + "source": "https://github.com/twigphp/html-extra/tree/v3.8.0" }, "funding": [ { @@ -8518,29 +8403,29 @@ "type": "tidelift" } ], - "time": "2023-02-09T06:45:16+00:00" + "time": "2023-11-21T14:02:01+00:00" }, { "name": "twig/intl-extra", - "version": "v3.7.0", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "a97c323bebfca009d02994a5a8568c0b412a49ab" + "reference": "7b3db67c700735f473a265a97e1adaeba3e6ca0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/a97c323bebfca009d02994a5a8568c0b412a49ab", - "reference": "a97c323bebfca009d02994a5a8568c0b412a49ab", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/7b3db67c700735f473a265a97e1adaeba3e6ca0c", + "reference": "7b3db67c700735f473a265a97e1adaeba3e6ca0c", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/intl": "^4.4|^5.0|^6.0", - "twig/twig": "^2.7|^3.0" + "php": ">=7.2.5", + "symfony/intl": "^5.4|^6.0|^7.0", + "twig/twig": "^3.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + "symfony/phpunit-bridge": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8570,7 +8455,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.7.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.8.0" }, "funding": [ { @@ -8582,32 +8467,32 @@ "type": "tidelift" } ], - "time": "2023-02-09T06:45:16+00:00" + "time": "2023-11-21T17:27:48+00:00" }, { "name": "twig/markdown-extra", - "version": "v3.7.0", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/twigphp/markdown-extra.git", - "reference": "8f1179e279cea6ef14066a4560b859df58acd5d8" + "reference": "b6e4954ab60030233df5d293886b5404558daac8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/8f1179e279cea6ef14066a4560b859df58acd5d8", - "reference": "8f1179e279cea6ef14066a4560b859df58acd5d8", + "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/b6e4954ab60030233df5d293886b5404558daac8", + "reference": "b6e4954ab60030233df5d293886b5404558daac8", "shasum": "" }, "require": { - "php": ">=7.1.3", - "twig/twig": "^2.7|^3.0" + "php": ">=7.2.5", + "twig/twig": "^3.0" }, "require-dev": { "erusev/parsedown": "^1.7", "league/commonmark": "^1.0|^2.0", "league/html-to-markdown": "^4.8|^5.0", "michelf/php-markdown": "^1.8|^2.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + "symfony/phpunit-bridge": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8638,7 +8523,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/markdown-extra/tree/v3.7.0" + "source": "https://github.com/twigphp/markdown-extra/tree/v3.8.0" }, "funding": [ { @@ -8650,30 +8535,31 @@ "type": "tidelift" } ], - "time": "2023-02-09T06:45:16+00:00" + "time": "2023-11-21T14:02:01+00:00" }, { "name": "twig/twig", - "version": "v3.7.0", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "5cf942bbab3df42afa918caeba947f1b690af64b" + "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/5cf942bbab3df42afa918caeba947f1b690af64b", - "reference": "5cf942bbab3df42afa918caeba947f1b690af64b", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3" + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.22" }, "require-dev": { "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0" }, "type": "library", "autoload": { @@ -8709,7 +8595,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.7.0" + "source": "https://github.com/twigphp/Twig/tree/v3.8.0" }, "funding": [ { @@ -8721,7 +8607,7 @@ "type": "tidelift" } ], - "time": "2023-07-26T07:16:09+00:00" + "time": "2023-11-21T18:54:41+00:00" }, { "name": "webmozart/assert", @@ -8785,38 +8671,40 @@ "packages-dev": [ { "name": "doctrine/data-fixtures", - "version": "1.6.6", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "4af35dadbfcf4b00abb2a217c4c8c8800cf5fcf4" + "reference": "bbcb74f2ac6dbe81a14b3c3687d7623490a0448f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/4af35dadbfcf4b00abb2a217c4c8c8800cf5fcf4", - "reference": "4af35dadbfcf4b00abb2a217c4c8c8800cf5fcf4", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/bbcb74f2ac6dbe81a14b3c3687d7623490a0448f", + "reference": "bbcb74f2ac6dbe81a14b3c3687d7623490a0448f", "shasum": "" }, "require": { "doctrine/deprecations": "^0.5.3 || ^1.0", - "doctrine/persistence": "^1.3.3 || ^2.0 || ^3.0", - "php": "^7.2 || ^8.0" + "doctrine/persistence": "^2.0|^3.0", + "php": "^7.4 || ^8.0" }, "conflict": { - "doctrine/dbal": "<2.13", - "doctrine/orm": "<2.12", + "doctrine/dbal": "<3.5 || >=5", + "doctrine/orm": "<2.14 || >=4", "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { - "doctrine/coding-standard": "^11.0", - "doctrine/dbal": "^2.13 || ^3.0", + "doctrine/annotations": "^1.12 || ^2", + "doctrine/coding-standard": "^12", + "doctrine/dbal": "^3.5 || ^4", "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", - "doctrine/orm": "^2.12", + "doctrine/orm": "^2.14 || ^3", "ext-sqlite3": "*", - "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^8.5 || ^9.5 || ^10.0", - "symfony/cache": "^5.0 || ^6.0", - "vimeo/psalm": "^4.10 || ^5.9" + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6.13 || ^10.4.2", + "symfony/cache": "^5.4 || ^6.3 || ^7", + "symfony/var-exporter": "^5.4 || ^6.3 || ^7", + "vimeo/psalm": "^5.9" }, "suggest": { "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", @@ -8847,7 +8735,7 @@ ], "support": { "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.6.6" + "source": "https://github.com/doctrine/data-fixtures/tree/1.7.0" }, "funding": [ { @@ -8863,40 +8751,44 @@ "type": "tidelift" } ], - "time": "2023-04-20T13:08:54+00:00" + "time": "2023-11-24T11:18:31+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", - "version": "3.4.4", + "version": "3.5.1", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", - "reference": "9ec3139c52a42e94c9fd1e95f8d2bca94326edfb" + "reference": "c808a0c85c38c8ee265cc8405b456c1d2b38567d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/9ec3139c52a42e94c9fd1e95f8d2bca94326edfb", - "reference": "9ec3139c52a42e94c9fd1e95f8d2bca94326edfb", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/c808a0c85c38c8ee265cc8405b456c1d2b38567d", + "reference": "c808a0c85c38c8ee265cc8405b456c1d2b38567d", "shasum": "" }, "require": { "doctrine/data-fixtures": "^1.3", - "doctrine/doctrine-bundle": "^1.11|^2.0", - "doctrine/orm": "^2.6.0", - "doctrine/persistence": "^1.3.7|^2.0|^3.0", - "php": "^7.1 || ^8.0", - "symfony/config": "^3.4|^4.3|^5.0|^6.0", - "symfony/console": "^3.4|^4.3|^5.0|^6.0", - "symfony/dependency-injection": "^3.4.47|^4.3|^5.0|^6.0", - "symfony/doctrine-bridge": "^3.4|^4.1|^5.0|^6.0", - "symfony/http-kernel": "^3.4|^4.3|^5.0|^6.0" + "doctrine/doctrine-bundle": "^2.2", + "doctrine/orm": "^2.14.0 || ^3.0", + "doctrine/persistence": "^2.4|^3.0", + "php": "^7.4 || ^8.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/doctrine-bridge": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0" + }, + "conflict": { + "doctrine/dbal": "< 3" }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "^1.4.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", - "symfony/phpunit-bridge": "^6.0.8", - "vimeo/psalm": "^4.22" + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10.39", + "phpunit/phpunit": "^9.6.13", + "symfony/phpunit-bridge": "^6.3.6", + "vimeo/psalm": "^5.15" }, "type": "symfony-bundle", "autoload": { @@ -8930,7 +8822,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues", - "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.4" + "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.5.1" }, "funding": [ { @@ -8946,7 +8838,7 @@ "type": "tidelift" } ], - "time": "2023-05-02T15:12:16+00:00" + "time": "2023-11-19T12:48:54+00:00" }, { "name": "fakerphp/faker", @@ -9085,16 +8977,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.16.0", + "version": "v4.18.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "19526a33fb561ef417e822e85f08a00db4059c17" + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17", - "reference": "19526a33fb561ef417e822e85f08a00db4059c17", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", "shasum": "" }, "require": { @@ -9135,33 +9027,33 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" }, - "time": "2023-06-25T14:52:30+00:00" + "time": "2023-12-10T21:03:43+00:00" }, { "name": "symfony/browser-kit", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d" + "reference": "c53a6e9bcb4528be535d458450b07aa81620459e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/ca4a988488f61ac18f8f845445eabdd36f89aa8d", - "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c53a6e9bcb4528be535d458450b07aa81620459e", + "reference": "c53a6e9bcb4528be535d458450b07aa81620459e", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/dom-crawler": "^5.4|^6.0" + "php": ">=8.2", + "symfony/dom-crawler": "^6.4|^7.0" }, "require-dev": { - "symfony/css-selector": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0" + "symfony/css-selector": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9189,7 +9081,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v6.3.2" + "source": "https://github.com/symfony/browser-kit/tree/v7.0.0" }, "funding": [ { @@ -9205,24 +9097,24 @@ "type": "tidelift" } ], - "time": "2023-07-06T06:56:43+00:00" + "time": "2023-10-31T17:37:24+00:00" }, { "name": "symfony/css-selector", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "883d961421ab1709877c10ac99451632a3d6fa57" + "reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/883d961421ab1709877c10ac99451632a3d6fa57", - "reference": "883d961421ab1709877c10ac99451632a3d6fa57", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/bb51d46e53ef8d50d523f0c5faedba056a27943e", + "reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -9254,7 +9146,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.3.2" + "source": "https://github.com/symfony/css-selector/tree/v7.0.0" }, "funding": [ { @@ -9270,37 +9162,37 @@ "type": "tidelift" } ], - "time": "2023-07-12T16:00:22+00:00" + "time": "2023-10-31T17:59:56+00:00" }, { "name": "symfony/debug-bundle", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/debug-bundle.git", - "reference": "3f04a578e1a9f1d7da84a87b690c03123e5d8c31" + "reference": "7e540aebec5b7848bbdfaa1a045ed130e1791156" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/3f04a578e1a9f1d7da84a87b690c03123e5d8c31", - "reference": "3f04a578e1a9f1d7da84a87b690c03123e5d8c31", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/7e540aebec5b7848bbdfaa1a045ed130e1791156", + "reference": "7e540aebec5b7848bbdfaa1a045ed130e1791156", "shasum": "" }, "require": { "ext-xml": "*", - "php": ">=8.1", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/twig-bridge": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "php": ">=8.2", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "conflict": { - "symfony/config": "<5.4", - "symfony/dependency-injection": "<5.4" + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4" }, "require-dev": { - "symfony/config": "^5.4|^6.0", - "symfony/web-profiler-bundle": "^5.4|^6.0" + "symfony/config": "^6.4|^7.0", + "symfony/web-profiler-bundle": "^6.4|^7.0" }, "type": "symfony-bundle", "autoload": { @@ -9328,7 +9220,7 @@ "description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/debug-bundle/tree/v6.3.2" + "source": "https://github.com/symfony/debug-bundle/tree/v7.0.0" }, "funding": [ { @@ -9344,30 +9236,30 @@ "type": "tidelift" } ], - "time": "2023-07-13T14:29:38+00:00" + "time": "2023-11-07T10:26:03+00:00" }, { "name": "symfony/dom-crawler", - "version": "v6.3.1", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "8aa333f41f05afc7fc285a976b58272fd90fc212" + "reference": "d13205f444a535f4a6e52186aedbc99664f66a86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8aa333f41f05afc7fc285a976b58272fd90fc212", - "reference": "8aa333f41f05afc7fc285a976b58272fd90fc212", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/d13205f444a535f4a6e52186aedbc99664f66a86", + "reference": "d13205f444a535f4a6e52186aedbc99664f66a86", "shasum": "" }, "require": { "masterminds/html5": "^2.6", - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/css-selector": "^5.4|^6.0" + "symfony/css-selector": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9395,7 +9287,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.3.1" + "source": "https://github.com/symfony/dom-crawler/tree/v7.0.0" }, "funding": [ { @@ -9411,56 +9303,54 @@ "type": "tidelift" } ], - "time": "2023-06-05T15:30:22+00:00" + "time": "2023-11-20T16:43:42+00:00" }, { "name": "symfony/maker-bundle", - "version": "v1.50.0", + "version": "v1.52.0", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "a1733f849b999460c308e66f6392fb09b621fa86" + "reference": "112f9466c94a46ca33dc441eee59a12cd1790757" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/a1733f849b999460c308e66f6392fb09b621fa86", - "reference": "a1733f849b999460c308e66f6392fb09b621fa86", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/112f9466c94a46ca33dc441eee59a12cd1790757", + "reference": "112f9466c94a46ca33dc441eee59a12cd1790757", "shasum": "" }, "require": { "doctrine/inflector": "^2.0", "nikic/php-parser": "^4.11", - "php": ">=8.0", - "symfony/config": "^5.4.7|^6.0", - "symfony/console": "^5.4.7|^6.0", - "symfony/dependency-injection": "^5.4.7|^6.0", + "php": ">=8.1", + "symfony/config": "^6.3|^7.0", + "symfony/console": "^6.3|^7.0", + "symfony/dependency-injection": "^6.3|^7.0", "symfony/deprecation-contracts": "^2.2|^3", - "symfony/filesystem": "^5.4.7|^6.0", - "symfony/finder": "^5.4.3|^6.0", - "symfony/framework-bundle": "^5.4.7|^6.0", - "symfony/http-kernel": "^5.4.7|^6.0", - "symfony/process": "^5.4.7|^6.0" + "symfony/filesystem": "^6.3|^7.0", + "symfony/finder": "^6.3|^7.0", + "symfony/framework-bundle": "^6.3|^7.0", + "symfony/http-kernel": "^6.3|^7.0", + "symfony/process": "^6.3|^7.0" }, "conflict": { "doctrine/doctrine-bundle": "<2.4", - "doctrine/orm": "<2.10", - "symfony/doctrine-bridge": "<5.4" + "doctrine/orm": "<2.10" }, "require-dev": { "composer/semver": "^3.0", - "doctrine/doctrine-bundle": "^2.4", + "doctrine/doctrine-bundle": "^2.5.0", "doctrine/orm": "^2.10.0", - "symfony/http-client": "^5.4.7|^6.0", - "symfony/phpunit-bridge": "^5.4.17|^6.0", - "symfony/polyfill-php80": "^1.16.0", - "symfony/security-core": "^5.4.7|^6.0", - "symfony/yaml": "^5.4.3|^6.0", + "symfony/http-client": "^6.3|^7.0", + "symfony/phpunit-bridge": "^6.3|^7.0", + "symfony/security-core": "^6.3|^7.0", + "symfony/yaml": "^6.3|^7.0", "twig/twig": "^2.0|^3.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-main": "1.0-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -9489,7 +9379,7 @@ ], "support": { "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.50.0" + "source": "https://github.com/symfony/maker-bundle/tree/v1.52.0" }, "funding": [ { @@ -9505,31 +9395,31 @@ "type": "tidelift" } ], - "time": "2023-07-10T18:21:57+00:00" + "time": "2023-10-31T18:23:49+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v6.3.2", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "e020e1efbd1b42cb670fcd7d19a25abbddba035d" + "reference": "c2d059b25e31274157dd7727131cd1cf33650207" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/e020e1efbd1b42cb670fcd7d19a25abbddba035d", - "reference": "e020e1efbd1b42cb670fcd7d19a25abbddba035d", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c2d059b25e31274157dd7727131cd1cf33650207", + "reference": "c2d059b25e31274157dd7727131cd1cf33650207", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.2.5" }, "conflict": { "phpunit/phpunit": "<7.5|9.1.2" }, "require-dev": { "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/error-handler": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.4|^7.0", "symfony/polyfill-php81": "^1.27" }, "bin": [ @@ -9570,7 +9460,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.2" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.0.1" }, "funding": [ { @@ -9586,41 +9476,41 @@ "type": "tidelift" } ], - "time": "2023-07-12T16:00:22+00:00" + "time": "2023-12-01T09:26:31+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v6.3.2", + "version": "v7.0.0", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "6101b5ab7857c373d237e121f9060c68b32e1373" + "reference": "e3bc3568b201fe1dec17352fef86868b74fa0226" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/6101b5ab7857c373d237e121f9060c68b32e1373", - "reference": "6101b5ab7857c373d237e121f9060c68b32e1373", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/e3bc3568b201fe1dec17352fef86868b74fa0226", + "reference": "e3bc3568b201fe1dec17352fef86868b74fa0226", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/config": "^5.4|^6.0", - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/http-kernel": "^6.3", - "symfony/routing": "^5.4|^6.0", - "symfony/twig-bundle": "^5.4|^6.0", - "twig/twig": "^2.13|^3.0.4" + "php": ">=8.2", + "symfony/config": "^6.4|^7.0", + "symfony/framework-bundle": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0", + "symfony/twig-bundle": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "conflict": { - "symfony/form": "<5.4", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4" + "symfony/form": "<6.4", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4" }, "require-dev": { - "symfony/browser-kit": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0" + "symfony/browser-kit": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0" }, "type": "symfony-bundle", "autoload": { @@ -9651,7 +9541,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.3.2" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.0.0" }, "funding": [ { @@ -9667,7 +9557,7 @@ "type": "tidelift" } ], - "time": "2023-07-19T20:17:28+00:00" + "time": "2023-11-18T18:20:00+00:00" } ], "aliases": [], @@ -9676,7 +9566,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=8.1", + "php": ">=8.2", "ext-ctype": "*", "ext-iconv": "*", "ext-uuid": "*" diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml index a404133..559641f 100644 --- a/config/packages/doctrine.yaml +++ b/config/packages/doctrine.yaml @@ -4,13 +4,19 @@ doctrine: # IMPORTANT: You MUST configure your server version, # either here or in the DATABASE_URL env var (see .env file) - #server_version: '14' + #server_version: '15' + + profiling_collect_backtrace: '%kernel.debug%' orm: auto_generate_proxy_classes: true + enable_lazy_ghost_objects: true + report_fields_where_declared: true + validate_xml_mapping: true naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware auto_mapping: true mappings: App: + type: attribute is_bundle: false dir: '%kernel.project_dir%/src/Entity' prefix: 'App\Entity' @@ -26,6 +32,7 @@ when@prod: doctrine: orm: auto_generate_proxy_classes: false + proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies' query_cache_driver: type: pool pool: doctrine.system_cache_pool diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml index e280276..09c2a53 100644 --- a/config/packages/framework.yaml +++ b/config/packages/framework.yaml @@ -2,7 +2,6 @@ framework: secret: '%env(APP_SECRET)%' #csrf_protection: true - http_method_override: false handle_all_throwables: true # Enables session support. Note that the session will ONLY be started if you read or write from it. @@ -11,7 +10,6 @@ framework: handler_id: null cookie_secure: auto cookie_samesite: lax - storage_factory_id: session.storage.factory.native #esi: true #fragments: true diff --git a/config/packages/nyholm_psr7.yaml b/config/packages/nyholm_psr7.yaml index f135723..ade8312 100644 --- a/config/packages/nyholm_psr7.yaml +++ b/config/packages/nyholm_psr7.yaml @@ -7,15 +7,5 @@ services: Psr\Http\Message\UploadedFileFactoryInterface: '@nyholm.psr7.psr17_factory' Psr\Http\Message\UriFactoryInterface: '@nyholm.psr7.psr17_factory' - # Register nyholm/psr7 services for autowiring with HTTPlug factories - Http\Message\MessageFactory: '@nyholm.psr7.httplug_factory' - Http\Message\RequestFactory: '@nyholm.psr7.httplug_factory' - Http\Message\ResponseFactory: '@nyholm.psr7.httplug_factory' - Http\Message\StreamFactory: '@nyholm.psr7.httplug_factory' - Http\Message\UriFactory: '@nyholm.psr7.httplug_factory' - nyholm.psr7.psr17_factory: class: Nyholm\Psr7\Factory\Psr17Factory - - nyholm.psr7.httplug_factory: - class: Nyholm\Psr7\Factory\HttplugFactory diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml index abb76aa..888f0ba 100644 --- a/config/packages/translation.yaml +++ b/config/packages/translation.yaml @@ -11,3 +11,5 @@ framework: # dsn: '%env(LOCO_DSN)%' # lokalise: # dsn: '%env(LOKALISE_DSN)%' +# phrase: +# dsn: '%env(PHRASE_DSN)%' diff --git a/config/routes/security.yaml b/config/routes/security.yaml new file mode 100644 index 0000000..f853be1 --- /dev/null +++ b/config/routes/security.yaml @@ -0,0 +1,3 @@ +_security_logout: + resource: security.route_loader.logout + type: service diff --git a/importmap.php b/importmap.php index c7bec9f..21c252a 100644 --- a/importmap.php +++ b/importmap.php @@ -1,13 +1,13 @@ [ - 'path' => 'app.js', - 'preload' => true, + 'path' => './assets/app.js', + 'entrypoint' => true, ], - '@symfony/stimulus-bundle' => [ - 'path' => '@symfony/stimulus-bundle/loader.js', + '@hotwired/stimulus' => [ + 'version' => '3.2.2', ], - 'stimulus-carousel' => [ - 'url' => 'https://cdn.jsdelivr.net/npm/stimulus-carousel@5.0.1/+esm', + '@symfony/stimulus-bundle' => [ + 'path' => './vendor/symfony/stimulus-bundle/assets/dist/loader.js', ], - '@hotwired/stimulus' => [ - 'url' => 'https://cdn.jsdelivr.net/npm/@hotwired/stimulus@3.2.1/+esm', + '@symfony/ux-live-component' => [ + 'path' => './vendor/symfony/ux-live-component/assets/dist/live_controller.js', ], 'chart.js/auto' => [ - 'url' => 'https://cdn.jsdelivr.net/npm/chart.js@3.9.1/auto/+esm', + 'version' => '3.9.1', ], '@hotwired/turbo' => [ - 'url' => 'https://cdn.jsdelivr.net/npm/@hotwired/turbo@7.3.0/+esm', + 'version' => '7.3.0', ], - '@symfony/ux-live-component' => [ - 'path' => '@symfony/ux-live-component/live_controller.js', + 'stimulus-carousel' => [ + 'version' => '5.0.1', + ], + 'swiper/bundle' => [ + 'version' => '8.4.7', + ], + 'ssr-window' => [ + 'version' => '4.0.2', + ], + 'dom7' => [ + 'version' => '4.0.6', ], 'bootstrap' => [ - 'url' => 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/+esm', + 'version' => '5.3.2', + ], + '@popperjs/core' => [ + 'version' => '2.11.8', + ], + 'bootstrap/dist/css/bootstrap.min.css' => [ + 'version' => '5.3.2', + 'type' => 'css', + ], + 'bootstrap-icons/font/bootstrap-icons.css' => [ + 'version' => '1.11.2', + 'type' => 'css', + ], + 'swiper/swiper-bundle.min.css' => [ + 'version' => '11.0.5', + 'type' => 'css', ], ]; diff --git a/phpunit.xml.dist b/phpunit.xml.dist index af3f147..c76a655 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -14,7 +14,7 @@ - + @@ -33,10 +33,6 @@ - - diff --git a/src/Security/GoogleAuthenticator.php b/src/Security/GoogleAuthenticator.php index 53ca38f..1b7b3a5 100644 --- a/src/Security/GoogleAuthenticator.php +++ b/src/Security/GoogleAuthenticator.php @@ -6,7 +6,6 @@ use KnpU\OAuth2ClientBundle\Security\Authenticator\OAuth2Authenticator; use KnpU\OAuth2ClientBundle\Security\User\OAuthUser; use League\OAuth2\Client\Provider\GoogleUser; -use Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\DependencyInjection\Attribute\Autowire; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; @@ -19,6 +18,7 @@ use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport; use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface; +use Symfony\Component\Security\Http\SecurityRequestAttributes; class GoogleAuthenticator extends OAuth2Authenticator implements AuthenticationEntryPointInterface { @@ -68,7 +68,7 @@ public function onAuthenticationSuccess(Request $request, TokenInterface $token, public function onAuthenticationFailure(Request $request, AuthenticationException $exception): ?Response { if ($request->hasSession() && $request->getSession() instanceof SessionInterface) { - $request->getSession()->set(Security::AUTHENTICATION_ERROR, $exception); + $request->getSession()->set(SecurityRequestAttributes::AUTHENTICATION_ERROR, $exception); } return $this->start($request, $exception); diff --git a/symfony.lock b/symfony.lock index 4e3839d..c52753e 100644 --- a/symfony.lock +++ b/symfony.lock @@ -9,12 +9,12 @@ } }, "doctrine/doctrine-bundle": { - "version": "2.7", + "version": "2.11", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "2.4", - "ref": "d562b46dd8075ab2de3d58bf7895cf6b8365cb72" + "version": "2.10", + "ref": "0b4a11ee7e60b36227502ed26874edd7e8b66353" }, "files": [ "config/packages/doctrine.yaml", @@ -63,24 +63,24 @@ ] }, "nyholm/psr7": { - "version": "1.5", + "version": "1.8", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", "version": "1.0", - "ref": "0cd4d2d0e7f646fda75f9944f747a56e6ed13d4c" + "ref": "4a8c0345442dcca1d8a2c65633dcf0285dd5a5a2" }, "files": [ "config/packages/nyholm_psr7.yaml" ] }, "symfony/asset-mapper": { - "version": "6.3", + "version": "7.0", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "6.3", - "ref": "e8c46ba5e488fc2d7462ab6832559ab93867370a" + "version": "6.4", + "ref": "8a0d17c04c791b3d7bdd083e1e2b2a53439dc3b0" }, "files": [ "assets/app.js", @@ -126,12 +126,12 @@ ] }, "symfony/framework-bundle": { - "version": "6.2", + "version": "7.0", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "6.2", - "ref": "af47254c5e4cd543e6af3e4508298ffebbdaddd3" + "version": "7.0", + "ref": "de6e1b3e2bbbe69e36262d72c3f3db858b1ab391" }, "files": [ "config/packages/cache.yaml", @@ -166,12 +166,12 @@ ] }, "symfony/phpunit-bridge": { - "version": "6.1", + "version": "7.0", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "5.3", - "ref": "97cb3dc7b0f39c7cfc4b7553504c9d7b7795de96" + "version": "6.3", + "ref": "1f5830c331065b6e4c9d5fa2105e322d29fcd573" }, "files": [ ".env.test", @@ -194,33 +194,39 @@ ] }, "symfony/security-bundle": { - "version": "6.2", + "version": "7.0", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "6.0", - "ref": "8a5b112826f7d3d5b07027f93786ae11a1c7de48" + "version": "6.4", + "ref": "2ae08430db28c8eb4476605894296c82a642028f" }, "files": [ - "config/packages/security.yaml" + "config/packages/security.yaml", + "config/routes/security.yaml" ] }, "symfony/stimulus-bundle": { - "version": "2.9", + "version": "2.13", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "2.8", - "ref": "9e33a8a3794b603fb4be6c04ee5ecab901ce549e" - } + "version": "2.9", + "ref": "05c45071c7ecacc1e48f94bc43c1f8d4405fb2b2" + }, + "files": [ + "assets/bootstrap.js", + "assets/controllers.json", + "assets/controllers/hello_controller.js" + ] }, "symfony/translation": { - "version": "6.2", + "version": "7.0", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "5.3", - "ref": "da64f5a2b6d96f5dc24914517c0350a5f91dee43" + "version": "6.3", + "ref": "64fe617084223633e1dedf9112935d8c95410d3e" }, "files": [ "config/packages/translation.yaml", @@ -228,12 +234,12 @@ ] }, "symfony/twig-bundle": { - "version": "6.2", + "version": "7.0", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "5.4", - "ref": "bb2178c57eee79e6be0b297aa96fc0c0def81387" + "version": "6.3", + "ref": "b7772eb20e92f3fb4d4fe756e7505b4ba2ca1a2c" }, "files": [ "config/packages/twig.yaml", @@ -280,7 +286,7 @@ "repo": "github.com/symfony/recipes", "branch": "main", "version": "1.0", - "ref": "2fb3513dbc139884fc5b7c751242b66f9f10f0c3" + "ref": "aece95c8a188f6e6d04f01ccb8678d1764fd2642" }, "files": [ "config/packages/messenger.yaml" diff --git a/templates/base.html.twig b/templates/base.html.twig index d7024e6..f9ab845 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -6,14 +6,9 @@ {% block title %}QOTD{% endblock %} {% block stylesheets %} - - - - - {{ ux_controller_link_tags() }} {% endblock %} {% block javascripts %} - {{ importmap() }} + {{ importmap('app') }} {% endblock %} diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 5160486..1e75e32 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -9,3 +9,7 @@ } elseif (method_exists(Dotenv::class, 'bootEnv')) { (new Dotenv())->bootEnv(dirname(__DIR__) . '/.env'); } + +if ($_SERVER['APP_DEBUG']) { + umask(0000); +} From c3e84cff9cf12b4119074b21f125e12932380e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Wed, 27 Dec 2023 17:51:55 +0100 Subject: [PATCH 2/9] use anonymous twig component for notifications --- assets/controllers/loading-controller.js | 8 ++----- templates/components/Notification.html.twig | 25 +++++++++++++++++++++ templates/helper/notification.html.twig | 18 --------------- templates/qotd/_qotd.stream.html.twig | 7 +++--- 4 files changed, 30 insertions(+), 28 deletions(-) create mode 100644 templates/components/Notification.html.twig delete mode 100644 templates/helper/notification.html.twig diff --git a/assets/controllers/loading-controller.js b/assets/controllers/loading-controller.js index 34de592..88c7724 100644 --- a/assets/controllers/loading-controller.js +++ b/assets/controllers/loading-controller.js @@ -2,11 +2,7 @@ import { Controller } from '@hotwired/stimulus'; export default class extends Controller { connect() { - document.addEventListener("turbo:before-fetch-request", () => { - this.element.classList.remove('d-none'); - }); - document.addEventListener("turbo:before-fetch-response", () => { - this.element.classList.add('d-none'); - }); + document.addEventListener("turbo:before-fetch-request", () => this.element.classList.remove('d-none')); + document.addEventListener("turbo:before-fetch-response", () => this.element.classList.add('d-none')); } } diff --git a/templates/components/Notification.html.twig b/templates/components/Notification.html.twig new file mode 100644 index 0000000..8da6dc1 --- /dev/null +++ b/templates/components/Notification.html.twig @@ -0,0 +1,25 @@ +{% props + title=null, + details=null, +%} + diff --git a/templates/helper/notification.html.twig b/templates/helper/notification.html.twig deleted file mode 100644 index 4c8827e..0000000 --- a/templates/helper/notification.html.twig +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/templates/qotd/_qotd.stream.html.twig b/templates/qotd/_qotd.stream.html.twig index 598c3cb..db60fa3 100644 --- a/templates/qotd/_qotd.stream.html.twig +++ b/templates/qotd/_qotd.stream.html.twig @@ -6,9 +6,8 @@ From 512bb2b0e00424536686db9e3ee087dfb36fa1d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Wed, 27 Dec 2023 15:05:08 +0100 Subject: [PATCH 3/9] Rework how modals, frames, turbo work --- .php-cs-fixer.php | 1 + assets/app.js | 1 - assets/bootstrap.js | 8 - assets/controllers/modal-controller.js | 46 ++- assets/styles/app.css | 5 + composer.json | 2 + composer.lock | 346 +++++++++++++++++++- config/packages/twig.yaml | 1 + config/packages/validator.yaml | 13 + src/Controller/QotdController.php | 45 ++- src/Entity/Qotd.php | 2 +- src/Twig/Extension/AppExtension.php | 10 + symfony.lock | 12 + templates/base.html.twig | 10 +- templates/base_frame.html.twig | 46 +++ templates/base_with_frame.html.twig | 1 + templates/components/LoadingModal.html.twig | 9 + templates/components/Modal.html.twig | 33 ++ templates/hall_of_fame/index.html.twig | 2 +- templates/helper/modal.html.twig | 26 -- templates/macros/qotd/message.html.twig | 2 +- templates/qotd/_qotd.html.twig | 7 +- templates/qotd/_qotd.stream.html.twig | 13 - templates/qotd/_qotds.html.twig | 13 - templates/qotd/edit.html.twig | 23 ++ templates/qotd/index.html.twig | 14 +- templates/qotd/show.html.twig | 16 +- templates/qotd/show_details.html.twig | 129 ++++---- templates/unique_block.html.twig | 2 + 29 files changed, 681 insertions(+), 157 deletions(-) create mode 100644 config/packages/validator.yaml create mode 100644 templates/base_frame.html.twig create mode 100644 templates/base_with_frame.html.twig create mode 100644 templates/components/LoadingModal.html.twig create mode 100644 templates/components/Modal.html.twig delete mode 100644 templates/helper/modal.html.twig delete mode 100644 templates/qotd/_qotd.stream.html.twig delete mode 100644 templates/qotd/_qotds.html.twig create mode 100644 templates/qotd/edit.html.twig create mode 100644 templates/unique_block.html.twig diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index ae59473..7d62838 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -16,6 +16,7 @@ '@PhpCsFixer' => true, '@Symfony' => true, '@Symfony:risky' => true, + 'single_line_empty_body' => false, 'php_unit_internal_class' => false, // From @PhpCsFixer but we don't want it 'php_unit_test_class_requires_covers' => false, // From @PhpCsFixer but we don't want it 'phpdoc_add_missing_param_annotation' => false, // From @PhpCsFixer but we don't want it diff --git a/assets/app.js b/assets/app.js index 04b3620..55ee7dc 100644 --- a/assets/app.js +++ b/assets/app.js @@ -3,5 +3,4 @@ import 'bootstrap-icons/font/bootstrap-icons.css'; import 'swiper/swiper-bundle.min.css'; import './styles/app.css'; - import './bootstrap.js'; diff --git a/assets/bootstrap.js b/assets/bootstrap.js index 5d3a7f6..ea2b479 100644 --- a/assets/bootstrap.js +++ b/assets/bootstrap.js @@ -2,12 +2,4 @@ import { startStimulusApp } from '@symfony/stimulus-bundle'; import Carousel from 'stimulus-carousel'; const app = startStimulusApp(); - app.register('carousel', Carousel); - -document.addEventListener("turbo:frame-missing", (event) => { - if (event.target.dataset.deleteIfMissing) { - event.target.remove(); - event.preventDefault(); - } -}); diff --git a/assets/controllers/modal-controller.js b/assets/controllers/modal-controller.js index 2a1ef9c..3a1f285 100644 --- a/assets/controllers/modal-controller.js +++ b/assets/controllers/modal-controller.js @@ -2,17 +2,51 @@ import { Controller } from '@hotwired/stimulus'; import { Modal } from 'bootstrap'; export default class extends Controller { - static values = { - options: Object, - } + static targets = ['bsModal', 'frame', 'loadingTemplate']; + + modal = null; connect() { - this.modal = new Modal(this.element, this.optionsValue); - this.modal.show(); + this.element.addEventListener('turbo:before-fetch-request', (e) => { + // If the current modal disable loader, we don't show the loader + // This is useful for modals that are used to display a form + if (this.modal && this.hasBsModalTarget && this.bsModalTarget.hasAttribute('disable-loader')) { + return; + } + + this.frameTarget.innerHTML = this.loadingTemplateTarget.innerHTML; + }); } disconnect() { + this.close(); + } + + bsModalTargetDisconnected() { + this.close(); + } + bsModalTargetConnected() { + this.open(); + } + + /** internal stuff */ + + open() { + if (this.modal) { + return; + } + this.modal = new Modal(this.bsModalTarget); + this.modal.show(); + this.bsModalTarget.addEventListener('hide.bs.modal', () => { + this.modal = null; + }); + } + + close() { + if (!this.modal) { + return; + } this.modal.hide(); - this.element.remove(); + this.modal = null; } } diff --git a/assets/styles/app.css b/assets/styles/app.css index 37523eb..628f747 100644 --- a/assets/styles/app.css +++ b/assets/styles/app.css @@ -10,3 +10,8 @@ a { .card img { max-width: 100%; } + +turbo-frame [aria-busy="true"] { + opacity: 0.75; + pointer-events:none; +} diff --git a/composer.json b/composer.json index 4a5c9cc..f4e4fad 100644 --- a/composer.json +++ b/composer.json @@ -24,6 +24,7 @@ "symfony/dotenv": "7.0.*", "symfony/expression-language": "7.0.*", "symfony/flex": "^2.4.2", + "symfony/form": "7.0.*", "symfony/framework-bundle": "7.0.*", "symfony/http-client": "7.0.*", "symfony/intl": "7.0.*", @@ -40,6 +41,7 @@ "symfony/ux-live-component": "^2.13.3", "symfony/ux-turbo": "^2.13.2", "symfony/ux-twig-component": "^2.13.3", + "symfony/validator": "7.0.*", "symfony/web-link": "7.0.*", "symfony/yaml": "7.0.*", "twig/cache-extra": "^3.8", diff --git a/composer.lock b/composer.lock index 6263ff5..b5ef0a5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e47b8fb37744e0d2b049ae4d400779f7", + "content-hash": "306eb98e3b5a2cf1c2236b402e4c26d1", "packages": [ { "name": "composer/semver", @@ -4819,6 +4819,102 @@ ], "time": "2023-12-05T14:09:35+00:00" }, + { + "name": "symfony/form", + "version": "v7.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/form.git", + "reference": "c5d23da3425eadf23c3335a0ed6f2ef3a135e8c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/form/zipball/c5d23da3425eadf23c3335a0ed6f2ef3a135e8c9", + "reference": "c5d23da3425eadf23c3335a0ed6f2ef3a135e8c9", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/options-resolver": "^6.4|^7.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/polyfill-mbstring": "~1.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/error-handler": "<6.4", + "symfony/framework-bundle": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/translation": "<6.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<6.4" + }, + "require-dev": { + "doctrine/collections": "^1.0|^2.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/html-sanitizer": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/security-core": "^6.4|^7.0", + "symfony/security-csrf": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Form\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows to easily create, process and reuse HTML forms", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/form/tree/v7.0.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-11-30T11:38:21+00:00" + }, { "name": "symfony/framework-bundle", "version": "v7.0.1", @@ -5648,6 +5744,73 @@ ], "time": "2023-11-06T17:08:13+00:00" }, + { + "name": "symfony/options-resolver", + "version": "v7.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "700ff4096e346f54cb628ea650767c8130f1001f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f", + "reference": "700ff4096e346f54cb628ea650767c8130f1001f", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v7.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-08T10:20:21+00:00" + }, { "name": "symfony/password-hasher", "version": "v7.0.0", @@ -5801,6 +5964,93 @@ ], "time": "2023-01-26T09:26:14+00:00" }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "e46b4da57951a16053cd751f63f4a24292788157" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e46b4da57951a16053cd751f63f4a24292788157", + "reference": "e46b4da57951a16053cd751f63f4a24292788157", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance and support of other locales than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-03-21T17:27:24+00:00" + }, { "name": "symfony/polyfill-intl-idn", "version": "v1.28.0", @@ -7891,6 +8141,100 @@ ], "time": "2023-12-01T20:15:57+00:00" }, + { + "name": "symfony/validator", + "version": "v7.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "616b39ffb22c1519f7fd2582b8052cde4c2d0b9f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/616b39ffb22c1519f7fd2582b8052cde4c2d0b9f", + "reference": "616b39ffb22c1519f7fd2582b8052cde4c2d0b9f", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php83": "^1.27", + "symfony/translation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/lexer": "<1.1", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<7.0", + "symfony/expression-language": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/intl": "<6.4", + "symfony/property-info": "<6.4", + "symfony/translation": "<6.4", + "symfony/yaml": "<6.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3|^4", + "symfony/cache": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Validator\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to validate values", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/validator/tree/v7.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-11-29T08:40:23+00:00" + }, { "name": "symfony/var-dumper", "version": "v7.0.0", diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml index f9f4cc5..3be7d52 100644 --- a/config/packages/twig.yaml +++ b/config/packages/twig.yaml @@ -1,5 +1,6 @@ twig: default_path: '%kernel.project_dir%/templates' + form_themes: ['bootstrap_5_layout.html.twig'] when@test: twig: diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml new file mode 100644 index 0000000..0201281 --- /dev/null +++ b/config/packages/validator.yaml @@ -0,0 +1,13 @@ +framework: + validation: + email_validation_mode: html5 + + # Enables validator auto-mapping support. + # For instance, basic validation constraints will be inferred from Doctrine's metadata. + #auto_mapping: + # App\Entity\: [] + +when@test: + framework: + validation: + not_compromised_password: false diff --git a/src/Controller/QotdController.php b/src/Controller/QotdController.php index 5ad2512..e1b8694 100644 --- a/src/Controller/QotdController.php +++ b/src/Controller/QotdController.php @@ -15,7 +15,8 @@ use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Http\Attribute\CurrentUser; -use Symfony\UX\Turbo\TurboBundle; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; class QotdController extends AbstractController { @@ -67,19 +68,12 @@ public function vote(Request $request, Qotd $qotd, QotdVote $vote, #[CurrentUser } $qotd->applyVote($vote, $user); - $this->em->flush(); - - if (TurboBundle::STREAM_FORMAT === $request->getPreferredFormat()) { - $request->setRequestFormat(TurboBundle::STREAM_FORMAT); - return $this->render('qotd/_qotd.stream.html.twig', [ - 'qotd' => $qotd, - ]); - } + $this->em->flush(); $this->addFlash('success', 'Thanks for your vote!'); - return $this->redirect($request->headers->get('referer') ?? $this->generateUrl('qotd_index')); + return $this->redirectToRoute('qotd_show', ['id' => $qotd->id]); } #[Route('/search', name: 'qotd_search', methods: ['GET'])] @@ -88,6 +82,37 @@ public function search(): Response return $this->render('qotd/search.html.twig'); } + #[Route('/qotd/{id}/edit', name: 'qotd_show_edit', methods: ['GET', 'POST'])] + public function edit( + Request $request, + #[MapEntity()] Qotd $qotd, + ): Response { + $form = $this->createFormBuilder( + $qotd, + [ + 'action' => $this->generateUrl('qotd_show_edit', ['id' => $qotd->id]), + ]) + ->add('message', null, [ + 'constraints' => [new NotBlank(), new Length(min: 10)], + 'required' => false, + ]) + ->getForm() + ; + + if ($form->handleRequest($request)->isSubmitted() && $form->isValid()) { + $this->em->flush(); + + $this->addFlash('success', 'Your changes have been saved!'); + + return $this->redirectToRoute('qotd_show', ['id' => $qotd->id]); + } + + return $this->render('qotd/edit.html.twig', [ + 'form' => $form, + 'qotd' => $qotd, + ]); + } + #[Route('/qotd/{id}', name: 'qotd_show', methods: ['GET'])] #[Template('qotd/show.html.twig')] public function show(#[MapEntity()] Qotd $qotd): void diff --git a/src/Entity/Qotd.php b/src/Entity/Qotd.php index 1e7b1b9..6109884 100644 --- a/src/Entity/Qotd.php +++ b/src/Entity/Qotd.php @@ -40,7 +40,7 @@ public function __construct( #[Groups(['qotd:read'])] #[ORM\Column(type: Types::TEXT)] - public readonly string $message, + public string $message, #[Groups(['qotd:read'])] #[ORM\Column(length: 255)] diff --git a/src/Twig/Extension/AppExtension.php b/src/Twig/Extension/AppExtension.php index 16f2784..7736dd4 100644 --- a/src/Twig/Extension/AppExtension.php +++ b/src/Twig/Extension/AppExtension.php @@ -3,6 +3,7 @@ namespace App\Twig\Extension; use Symfony\Component\DependencyInjection\Attribute\Autowire; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\Intl\Transliterator\EmojiTransliterator; use Twig\Extension\AbstractExtension; use Twig\TwigFilter; @@ -13,6 +14,7 @@ class AppExtension extends AbstractExtension private static EmojiTransliterator $emojiTransliterator; public function __construct( + private readonly RequestStack $requestStack, #[Autowire('%kernel.environment%')] private readonly string $env, ) { @@ -21,6 +23,7 @@ public function __construct( public function getFunctions(): iterable { yield new TwigFunction('tt', $this->whenTest(...)); + yield new TwigFunction('get_turbo_frame', $this->getTurboFrame(...)); } public function getFilters(): iterable @@ -49,4 +52,11 @@ public function whenTest(string $name): string return sprintf('data-test=%s', $name); } + + public function getTurboFrame(): ?string + { + $request = $this->requestStack->getCurrentRequest(); + + return $request?->headers->get('Turbo-Frame') ?? null; + } } diff --git a/symfony.lock b/symfony.lock index c52753e..9b1f617 100644 --- a/symfony.lock +++ b/symfony.lock @@ -267,6 +267,18 @@ "symfony/ux-twig-component": { "version": "v2.7.1" }, + "symfony/validator": { + "version": "7.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "5.3", + "ref": "c32cfd98f714894c4f128bb99aa2530c1227603c" + }, + "files": [ + "config/packages/validator.yaml" + ] + }, "symfony/web-profiler-bundle": { "version": "6.2", "recipe": { diff --git a/templates/base.html.twig b/templates/base.html.twig index f9ab845..779306e 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -61,10 +61,12 @@ {% block body %}{% endblock %} - - {% block modal %} - {% endblock %} - +
+ + +
+ {% if 'modal' == get_turbo_frame() %} + {% block modal %} + {% component Modal with {...(modal_attributes ?? {}) } %} + {% block title %} + {{ block(outerBlocks.title) }} + {% endblock %} + {% block content %} + {{ block(outerBlocks.body) }} + {% endblock %} + {% block footer_pre %} + {{ block(outerBlocks.modal_footer_pre) }} + {% endblock %} + {% block footer_post %} + {{ block(outerBlocks.modal_footer_post) }} + {% endblock %} + {% endcomponent %} + {% endblock %} + {% else %} + {{ block('body') }} + {% endif %} + + {% block toasts %} + {% for flash in app.flashes('success') %} + + + + {% endfor %} + {% endblock %} + + {% block frames '' %} + +{% endblock %} diff --git a/templates/base_with_frame.html.twig b/templates/base_with_frame.html.twig new file mode 100644 index 0000000..8890b0a --- /dev/null +++ b/templates/base_with_frame.html.twig @@ -0,0 +1 @@ +{% extends get_turbo_frame() ? 'base_frame.html.twig' : 'base.html.twig' %} diff --git a/templates/components/LoadingModal.html.twig b/templates/components/LoadingModal.html.twig new file mode 100644 index 0000000..82a168d --- /dev/null +++ b/templates/components/LoadingModal.html.twig @@ -0,0 +1,9 @@ + +
+
+ Loading... +
+
+ + +
diff --git a/templates/components/Modal.html.twig b/templates/components/Modal.html.twig new file mode 100644 index 0000000..9a5c704 --- /dev/null +++ b/templates/components/Modal.html.twig @@ -0,0 +1,33 @@ + diff --git a/templates/hall_of_fame/index.html.twig b/templates/hall_of_fame/index.html.twig index 0241df4..6782e63 100644 --- a/templates/hall_of_fame/index.html.twig +++ b/templates/hall_of_fame/index.html.twig @@ -39,7 +39,7 @@
{% if qotd %} - {{ include('qotd/_qotd.html.twig', { qotd, section: period }, with_context = false) }} + {{ include('qotd/_qotd.html.twig', { qotd}, with_context = false) }} {% else %} No QOTD for this period. {% endif %} diff --git a/templates/helper/modal.html.twig b/templates/helper/modal.html.twig deleted file mode 100644 index 3935809..0000000 --- a/templates/helper/modal.html.twig +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/templates/macros/qotd/message.html.twig b/templates/macros/qotd/message.html.twig index 0d372d6..717b3de 100644 --- a/templates/macros/qotd/message.html.twig +++ b/templates/macros/qotd/message.html.twig @@ -1,5 +1,5 @@ {% macro message(qotd) %} - {% cache "qotd-message-#{qotd.id}" %} + {% cache "qotd-message-#{qotd.message}" %} {# we use |replace because it better like that! #} {{ qotd.message|replace_emoji|replace_username|replace({'\n': '\n\n'})|markdown_to_html }} {% endcache %} diff --git a/templates/qotd/_qotd.html.twig b/templates/qotd/_qotd.html.twig index 50073f3..6bbc623 100644 --- a/templates/qotd/_qotd.html.twig +++ b/templates/qotd/_qotd.html.twig @@ -1,8 +1,8 @@ {% import "macros/qotd/message.html.twig" as qotd_macro %} +
@@ -22,6 +22,9 @@
+
+ +
diff --git a/templates/qotd/_qotd.stream.html.twig b/templates/qotd/_qotd.stream.html.twig deleted file mode 100644 index db60fa3..0000000 --- a/templates/qotd/_qotd.stream.html.twig +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - diff --git a/templates/qotd/_qotds.html.twig b/templates/qotd/_qotds.html.twig deleted file mode 100644 index 02c8a86..0000000 --- a/templates/qotd/_qotds.html.twig +++ /dev/null @@ -1,13 +0,0 @@ -{% for qotd in pagination %} - {{ include('qotd/_qotd.html.twig', { qotd }, with_context = false) }} -{% else %} -
-
- No QOTD found. -
-
-{% endfor %} - - diff --git a/templates/qotd/edit.html.twig b/templates/qotd/edit.html.twig new file mode 100644 index 0000000..73544fb --- /dev/null +++ b/templates/qotd/edit.html.twig @@ -0,0 +1,23 @@ +{% extends 'base_with_frame.html.twig' %} + +{% block title 'Edit QOTD #' ~ qotd.id %} + +{% block save_button %} + +{% endblock %} + +{% block body %} + {{ form(form, { attr: { id: 'qotd-edit' } } ) }} + + {% if get_turbo_frame() != 'modal' %} + {{ block('save_button') }} + {% endif %} +{% endblock %} + +{% set modal_attributes = { + 'disable-loader': true, +} %} + +{% block modal_footer_post %} + {{ block('save_button') }} +{% endblock %} diff --git a/templates/qotd/index.html.twig b/templates/qotd/index.html.twig index 42b4b97..8f26044 100644 --- a/templates/qotd/index.html.twig +++ b/templates/qotd/index.html.twig @@ -5,5 +5,17 @@ {% block title %}{{ direction.toTitle }}{% endblock %} {% block body %} - {{ include("qotd/_qotds.html.twig", { pagination }, with_context = false) }} + {% for qotd in pagination %} + {{ include('qotd/_qotd.html.twig', { qotd }, with_context = false) }} + {% else %} +
+
+ No QOTD found. +
+
+ {% endfor %} + + {% endblock %} diff --git a/templates/qotd/show.html.twig b/templates/qotd/show.html.twig index 33c9f18..0a75063 100644 --- a/templates/qotd/show.html.twig +++ b/templates/qotd/show.html.twig @@ -1,7 +1,21 @@ -{% extends 'base.html.twig' %} +{% extends 'base_with_frame.html.twig' %} {% block title %}QOTD #{{ qotd.id }}{% endblock %} {% block body %} {{ include("qotd/_qotd.html.twig", { qotd }, with_context = false) }} {% endblock %} + +{# We use this template as the "finish point" of diverse opeations, that may occurs in modals #} +{# So we clean the template, then replace a potentials frame #} + +{% block modal '' %} + +{% block frames %} + + + +{% endblock %} + diff --git a/templates/qotd/show_details.html.twig b/templates/qotd/show_details.html.twig index 7b122fa..703c2eb 100644 --- a/templates/qotd/show_details.html.twig +++ b/templates/qotd/show_details.html.twig @@ -1,73 +1,66 @@ -{% extends 'base.html.twig' %} +{% extends 'base_with_frame.html.twig' %} + +{% import "macros/qotd/message.html.twig" as qotd_macro %} {% block title %}QOTD #{{ qotd.id }}{% endblock %} {% block body %} - {{ include("qotd/_qotd.html.twig", { qotd }, with_context = false) }} -{% endblock %} - -{% block modal %} - {% embed "helper/modal.html.twig" %} - {% import "macros/qotd/message.html.twig" as qotd_macro %} - - {% block modal_title "QOTD Details" %} - - {% block modal_body %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ID{{ qotd.id }}
Raw Message -
-
{{ qotd.message|nl2br }}
-
-
Message{{ qotd_macro.message(qotd) }}
Images - {% for image in qotd.images %} - {% set url = asset("uploads/#{qotd.id}---#{image}") %} - - - - {% else %} - None - {% endfor %} -
Date{{ qotd.date|date('Y-m-d') }}
Author{{ qotd.username }}
Permalink (on this app){{ url('qotd_show', {id: qotd.id}) }}
Permalink (on slack){{ qotd.permalink }}
Vote{{ qotd.vote }}
Voters{{ qotd.voterIds|keys|join(', ') }}
- {% endblock %} - {% endembed %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID + {{ qotd.id }} + +
Raw Message +
+
{{ qotd.message|nl2br }}
+
+
Message{{ qotd_macro.message(qotd) }}
Images + {% for image in qotd.images %} + {% set url = asset("uploads/#{qotd.id}---#{image}") %} + + + + {% else %} + None + {% endfor %} +
Date{{ qotd.date|date('Y-m-d') }}
Author{{ qotd.username }}
Permalink (on this app){{ url('qotd_show', {id: qotd.id}) }}
Permalink (on slack){{ qotd.permalink }}
Vote{{ qotd.vote }}
Voters{{ qotd.voterIds|keys|join(', ') }}
{% endblock %} diff --git a/templates/unique_block.html.twig b/templates/unique_block.html.twig new file mode 100644 index 0000000..2054cab --- /dev/null +++ b/templates/unique_block.html.twig @@ -0,0 +1,2 @@ +{# This template is meant to be extended, then child can declare "virtual" block that will be used later #} +{% block unique_block %}{% endblock %} From 800f051379337e7ee72c59e9a5a3d849e569cfda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Wed, 3 Jan 2024 16:54:43 +0100 Subject: [PATCH 4/9] Add QOTD context --- migrations/Version20240103154351.php | 31 ++++++++++++++++++++++++ src/Controller/QotdController.php | 17 +++---------- src/Entity/Qotd.php | 22 +++++++++++++++++ src/Form/Extension/TextTypeExtension.php | 22 +++++++++++++++++ src/Form/Type/QotdType.php | 19 +++++++++++++++ templates/macros/qotd/message.html.twig | 7 +++++- templates/qotd/show_details.html.twig | 8 ++++++ tests/Controller/QotdControllerTest.php | 2 +- 8 files changed, 113 insertions(+), 15 deletions(-) create mode 100644 migrations/Version20240103154351.php create mode 100644 src/Form/Extension/TextTypeExtension.php create mode 100644 src/Form/Type/QotdType.php diff --git a/migrations/Version20240103154351.php b/migrations/Version20240103154351.php new file mode 100644 index 0000000..180660c --- /dev/null +++ b/migrations/Version20240103154351.php @@ -0,0 +1,31 @@ +addSql('ALTER TABLE qotd ADD context TEXT'); + $this->addSql('UPDATE qotd SET context = \'\''); + $this->addSql('ALTER TABLE qotd ALTER context SET NOT NULL'); + $this->addSql('ALTER TABLE qotd ADD updated_at TIMESTAMP(0) WITHOUT TIME ZONE'); + $this->addSql('COMMENT ON COLUMN qotd.updated_at IS \'(DC2Type:datetime_immutable)\''); + $this->addSql('UPDATE qotd SET updated_at = NOW()'); + $this->addSql('ALTER TABLE qotd ALTER updated_at SET NOT NULL'); + } + + public function down(Schema $schema): void + { + $this->addSql('ALTER TABLE qotd DROP context'); + $this->addSql('ALTER TABLE qotd DROP updated_at'); + } +} diff --git a/src/Controller/QotdController.php b/src/Controller/QotdController.php index e1b8694..f966d27 100644 --- a/src/Controller/QotdController.php +++ b/src/Controller/QotdController.php @@ -3,6 +3,7 @@ namespace App\Controller; use App\Entity\Qotd; +use App\Form\Type\QotdType; use App\Repository\Model\QotdDirection; use App\Repository\Model\QotdVote; use App\Repository\QotdRepository; @@ -15,8 +16,6 @@ use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Http\Attribute\CurrentUser; -use Symfony\Component\Validator\Constraints\Length; -use Symfony\Component\Validator\Constraints\NotBlank; class QotdController extends AbstractController { @@ -87,17 +86,9 @@ public function edit( Request $request, #[MapEntity()] Qotd $qotd, ): Response { - $form = $this->createFormBuilder( - $qotd, - [ - 'action' => $this->generateUrl('qotd_show_edit', ['id' => $qotd->id]), - ]) - ->add('message', null, [ - 'constraints' => [new NotBlank(), new Length(min: 10)], - 'required' => false, - ]) - ->getForm() - ; + $form = $this->createForm(QotdType::class, $qotd, [ + 'action' => $this->generateUrl('qotd_show_edit', ['id' => $qotd->id]), + ]); if ($form->handleRequest($request)->isSubmitted() && $form->isValid()) { $this->em->flush(); diff --git a/src/Entity/Qotd.php b/src/Entity/Qotd.php index 6109884..40b1d6b 100644 --- a/src/Entity/Qotd.php +++ b/src/Entity/Qotd.php @@ -6,10 +6,13 @@ use App\Repository\QotdRepository; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\HasLifecycleCallbacks; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Serializer\Annotation\Groups; +use Symfony\Component\Validator\Constraints as Assert; #[ORM\Entity(repositoryClass: QotdRepository::class)] +#[HasLifecycleCallbacks] class Qotd { #[Groups(['qotd:read'])] @@ -29,6 +32,13 @@ class Qotd #[ORM\Column(type: Types::JSON, options: ['jsonb' => true])] public array $images = []; + #[Assert\Length(min: 5)] + #[ORM\Column(type: Types::TEXT)] + public string $context = ''; + + #[ORM\Column()] + public \DateTimeImmutable $updatedAt; + public function __construct( #[Groups(['qotd:read'])] #[ORM\Column(type: Types::DATE_IMMUTABLE)] @@ -47,6 +57,7 @@ public function __construct( public readonly string $username, ) { $this->id = uuid_create(); + $this->updatedAt = new \DateTimeImmutable(); } public function applyVote(QotdVote $vote, UserInterface $user): void @@ -86,4 +97,15 @@ public function getImageUrls(): array { return array_map(fn (string $image) => sprintf('uploads/%s---%s', $this->id, $image), $this->images); } + + #[ORM\PreUpdate] + public function onUpdate(): void + { + $this->updatedAt = new \DateTimeImmutable(); + } + + public function getContext(): string + { + return $this->context; + } } diff --git a/src/Form/Extension/TextTypeExtension.php b/src/Form/Extension/TextTypeExtension.php new file mode 100644 index 0000000..586163b --- /dev/null +++ b/src/Form/Extension/TextTypeExtension.php @@ -0,0 +1,22 @@ +setDefaults([ + 'empty_data' => '', + ]); + } + + public static function getExtendedTypes(): iterable + { + yield TextType::class; + } +} diff --git a/src/Form/Type/QotdType.php b/src/Form/Type/QotdType.php new file mode 100644 index 0000000..bb28b6b --- /dev/null +++ b/src/Form/Type/QotdType.php @@ -0,0 +1,19 @@ +add('context', TextareaType::class, [ + 'required' => false, + ]) + ; + } +} diff --git a/templates/macros/qotd/message.html.twig b/templates/macros/qotd/message.html.twig index 717b3de..1e8026b 100644 --- a/templates/macros/qotd/message.html.twig +++ b/templates/macros/qotd/message.html.twig @@ -1,6 +1,11 @@ {% macro message(qotd) %} - {% cache "qotd-message-#{qotd.message}" %} + {% cache "qotd-message-#{qotd.id}-#{qotd.updatedAt.format('c')}" %} {# we use |replace because it better like that! #} + {% if qotd.context %} +
+ {{ qotd.context|replace_emoji|replace_username|replace({'\n': '\n\n'})|markdown_to_html }} +
+ {% endif %} {{ qotd.message|replace_emoji|replace_username|replace({'\n': '\n\n'})|markdown_to_html }} {% endcache %} {% endmacro %} diff --git a/templates/qotd/show_details.html.twig b/templates/qotd/show_details.html.twig index 703c2eb..399baf3 100644 --- a/templates/qotd/show_details.html.twig +++ b/templates/qotd/show_details.html.twig @@ -21,6 +21,14 @@
+ + Raw Context + +
+
{{ qotd.context|nl2br }}
+
+ + Message {{ qotd_macro.message(qotd) }} diff --git a/tests/Controller/QotdControllerTest.php b/tests/Controller/QotdControllerTest.php index 33823bc..0b9fe1a 100644 --- a/tests/Controller/QotdControllerTest.php +++ b/tests/Controller/QotdControllerTest.php @@ -62,7 +62,7 @@ public function testNotVotedYet(): void self::assertCount(20, $quotes); $firstQuote = $quotes->first(); - $id = str_replace('qotd-default-', '', $firstQuote->attr('id')); + $id = str_replace('qotd-', '', $firstQuote->attr('id')); try { $form = $firstQuote->filter('[data-test=vote-up]')->form(); From 12aaee0fa56be79f342f0f53cb196eb0a1598b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Thu, 4 Jan 2024 13:06:23 +0100 Subject: [PATCH 5/9] use the new LiveComponent bound via URL --- assets/controllers/search-controller.js | 18 ---------- composer.json | 5 +-- composer.lock | 47 ++++++++++++++----------- src/Twig/Components/SearchComponent.php | 2 +- templates/components/search.html.twig | 2 +- 5 files changed, 31 insertions(+), 43 deletions(-) delete mode 100644 assets/controllers/search-controller.js diff --git a/assets/controllers/search-controller.js b/assets/controllers/search-controller.js deleted file mode 100644 index 18de806..0000000 --- a/assets/controllers/search-controller.js +++ /dev/null @@ -1,18 +0,0 @@ -import { Controller } from '@hotwired/stimulus'; -import { getComponent } from '@symfony/ux-live-component'; - -export default class extends Controller { - async initialize() { - this.component = await getComponent(this.element); - - this.component.on('render:finished', (component) => { - const url = new URL(window.location); - if (component.valueStore.data.query) { - url.searchParams.set("query", component.valueStore.data.query); - } else { - url.searchParams.delete("query"); - } - window.history.pushState({}, "", url); - }); - } -} diff --git a/composer.json b/composer.json index f4e4fad..77d324f 100644 --- a/composer.json +++ b/composer.json @@ -35,12 +35,13 @@ "symfony/property-info": "7.0.*", "symfony/runtime": "7.0.*", "symfony/security-bundle": "7.0.*", + "symfony/serializer": "7.0.*", "symfony/string": "7.0.*", "symfony/twig-bundle": "7.0.*", "symfony/ux-chartjs": "*", - "symfony/ux-live-component": "^2.13.3", + "symfony/ux-live-component": "^2.x-dev@dev", "symfony/ux-turbo": "^2.13.2", - "symfony/ux-twig-component": "^2.13.3", + "symfony/ux-twig-component": "^2.x-dev@dev", "symfony/validator": "7.0.*", "symfony/web-link": "7.0.*", "symfony/yaml": "7.0.*", diff --git a/composer.lock b/composer.lock index b5ef0a5..eaf2bcf 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "306eb98e3b5a2cf1c2236b402e4c26d1", + "content-hash": "bbd917421ba8e8ff970f884f3894523e", "packages": [ { "name": "composer/semver", @@ -7033,16 +7033,16 @@ }, { "name": "symfony/serializer", - "version": "v7.0.1", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff" + "reference": "dd7d7612f9ae288889caba4bdff79424ce4ffdf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff", - "reference": "9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff", + "url": "https://api.github.com/repos/symfony/serializer/zipball/dd7d7612f9ae288889caba4bdff79424ce4ffdf0", + "reference": "dd7d7612f9ae288889caba4bdff79424ce4ffdf0", "shasum": "" }, "require": { @@ -7108,7 +7108,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.0.1" + "source": "https://github.com/symfony/serializer/tree/v7.0.2" }, "funding": [ { @@ -7124,7 +7124,7 @@ "type": "tidelift" } ], - "time": "2023-12-01T15:10:06+00:00" + "time": "2023-12-29T15:37:40+00:00" }, { "name": "symfony/service-contracts", @@ -7871,22 +7871,21 @@ }, { "name": "symfony/ux-live-component", - "version": "v2.13.3", + "version": "2.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/ux-live-component.git", - "reference": "34626e96324c0c414342bcfe60554c2c8f1d331a" + "reference": "5dd6eb19a8fdb4b8d96483ad2857ed8e5bf6a0ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-live-component/zipball/34626e96324c0c414342bcfe60554c2c8f1d331a", - "reference": "34626e96324c0c414342bcfe60554c2c8f1d331a", + "url": "https://api.github.com/repos/symfony/ux-live-component/zipball/5dd6eb19a8fdb4b8d96483ad2857ed8e5bf6a0ac", + "reference": "5dd6eb19a8fdb4b8d96483ad2857ed8e5bf6a0ac", "shasum": "" }, "require": { "php": ">=8.1", "symfony/property-access": "^5.4.5|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0", "symfony/ux-twig-component": "^2.8", "twig/twig": "^2.14.7|^3.0.4" }, @@ -7908,11 +7907,13 @@ "symfony/phpunit-bridge": "^6.0|^7.0", "symfony/property-info": "^5.4|^6.0|^7.0", "symfony/security-csrf": "^5.4|^6.0|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0", "symfony/twig-bundle": "^5.4|^6.0|^7.0", "symfony/validator": "^5.4|^6.0|^7.0", "zenstruck/browser": "^1.2.0", "zenstruck/foundry": "^1.33" }, + "default-branch": true, "type": "symfony-bundle", "extra": { "thanks": { @@ -7943,7 +7944,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-live-component/tree/v2.13.3" + "source": "https://github.com/symfony/ux-live-component/tree/2.x" }, "funding": [ { @@ -7959,7 +7960,7 @@ "type": "tidelift" } ], - "time": "2023-12-01T20:21:20+00:00" + "time": "2024-01-03T17:17:56+00:00" }, { "name": "symfony/ux-turbo", @@ -8059,16 +8060,16 @@ }, { "name": "symfony/ux-twig-component", - "version": "v2.13.3", + "version": "2.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/ux-twig-component.git", - "reference": "d2f452990c94b261a926a7f0ee6ad5928b0a0662" + "reference": "5b79dd822f061769d1ba6788c98cf653058b78f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/d2f452990c94b261a926a7f0ee6ad5928b0a0662", - "reference": "d2f452990c94b261a926a7f0ee6ad5928b0a0662", + "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/5b79dd822f061769d1ba6788c98cf653058b78f7", + "reference": "5b79dd822f061769d1ba6788c98cf653058b78f7", "shasum": "" }, "require": { @@ -8093,6 +8094,7 @@ "symfony/twig-bundle": "^5.4|^6.0|^7.0", "symfony/webpack-encore-bundle": "^1.15" }, + "default-branch": true, "type": "symfony-bundle", "extra": { "thanks": { @@ -8123,7 +8125,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-twig-component/tree/v2.13.3" + "source": "https://github.com/symfony/ux-twig-component/tree/2.x" }, "funding": [ { @@ -8139,7 +8141,7 @@ "type": "tidelift" } ], - "time": "2023-12-01T20:15:57+00:00" + "time": "2023-12-27T08:30:03+00:00" }, { "name": "symfony/validator", @@ -9906,7 +9908,10 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "symfony/ux-live-component": 20, + "symfony/ux-twig-component": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { diff --git a/src/Twig/Components/SearchComponent.php b/src/Twig/Components/SearchComponent.php index 6372969..819fa61 100644 --- a/src/Twig/Components/SearchComponent.php +++ b/src/Twig/Components/SearchComponent.php @@ -14,7 +14,7 @@ final class SearchComponent { use DefaultActionTrait; - #[LiveProp(writable: true)] + #[LiveProp(writable: true, url: true)] public string $query; public function __construct( diff --git a/templates/components/search.html.twig b/templates/components/search.html.twig index e354700..f0c1be3 100644 --- a/templates/components/search.html.twig +++ b/templates/components/search.html.twig @@ -1,4 +1,4 @@ -
+
From 8d0a01a844de3dbd10b1e85bde81487b2041d5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Thu, 4 Jan 2024 13:15:22 +0100 Subject: [PATCH 6/9] install frontend deps in CI --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e143ee..28efbf4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,6 +25,9 @@ jobs: - name: Install Dependencies run: docker-compose run --rm --user=app frontend composer install + - name: Install Front Dependencies + run: docker-compose run --rm --user=app frontend bin/console importmap:install + - name: Create Database run: docker-compose run --rm --user=app frontend bin/db --env=test From df3c8f0b2bd6aef966a7904c041053277e897d84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Thu, 4 Jan 2024 13:19:37 +0100 Subject: [PATCH 7/9] random fixes --- .gitignore | 2 +- src/Entity/Qotd.php | 7 +------ templates/qotd/show.html.twig | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 7d5bb7f..f63a942 100644 --- a/.gitignore +++ b/.gitignore @@ -26,5 +26,5 @@ ###> symfony/asset-mapper ### /public/assets/ -/assets/vendor +/assets/vendor/ ###< symfony/asset-mapper ### diff --git a/src/Entity/Qotd.php b/src/Entity/Qotd.php index 40b1d6b..36df3f4 100644 --- a/src/Entity/Qotd.php +++ b/src/Entity/Qotd.php @@ -50,7 +50,7 @@ public function __construct( #[Groups(['qotd:read'])] #[ORM\Column(type: Types::TEXT)] - public string $message, + public readonly string $message, #[Groups(['qotd:read'])] #[ORM\Column(length: 255)] @@ -103,9 +103,4 @@ public function onUpdate(): void { $this->updatedAt = new \DateTimeImmutable(); } - - public function getContext(): string - { - return $this->context; - } } diff --git a/templates/qotd/show.html.twig b/templates/qotd/show.html.twig index 0a75063..5ab06bb 100644 --- a/templates/qotd/show.html.twig +++ b/templates/qotd/show.html.twig @@ -6,8 +6,8 @@ {{ include("qotd/_qotd.html.twig", { qotd }, with_context = false) }} {% endblock %} -{# We use this template as the "finish point" of diverse opeations, that may occurs in modals #} -{# So we clean the template, then replace a potentials frame #} +{# We use this template as the "finish point" of diverse operations, that may occurs in modals #} +{# So we clean the template, then replace a potentials frames #} {% block modal '' %} From b31ca0de3a850aea456de193d90d791a2193100b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Thu, 4 Jan 2024 22:14:18 +0100 Subject: [PATCH 8/9] add nice transition effect --- assets/app.js | 1 + assets/transitions.js | 37 +++++++++++++++++++++++++++++++++++++ importmap.php | 3 +++ templates/base.html.twig | 1 + 4 files changed, 42 insertions(+) create mode 100644 assets/transitions.js diff --git a/assets/app.js b/assets/app.js index 55ee7dc..bfcd83e 100644 --- a/assets/app.js +++ b/assets/app.js @@ -4,3 +4,4 @@ import 'swiper/swiper-bundle.min.css'; import './styles/app.css'; import './bootstrap.js'; +import './transitions.js'; diff --git a/assets/transitions.js b/assets/transitions.js new file mode 100644 index 0000000..ac7368b --- /dev/null +++ b/assets/transitions.js @@ -0,0 +1,37 @@ +import { shouldPerformTransition, performTransition } from "turbo-view-transitions"; + +let skipNextRenderTransition = false; + +document.addEventListener("turbo:before-render", (event) => { + if (shouldPerformTransition() && !skipNextRenderTransition) { + event.preventDefault(); + + performTransition(document.body, event.detail.newBody, async () => { + await event.detail.resume(); + }); + } +}); + +document.addEventListener('turbo:before-frame-render', (event) => { + if (shouldPerformTransition()) { + event.preventDefault(); + + // workaround for data-turbo-action="advance", which triggers + // turbo:before-render (and we want THAT to not try to transition) + skipNextRenderTransition = true; + setTimeout(() => { + skipNextRenderTransition = false; + }, 100); + + performTransition(event.target, event.detail.newFrame, async () => { + await event.detail.resume(); + }); + } +}); + +document.addEventListener("turbo:load", () => { + // View Transitions don't play nicely with Turbo cache + if (shouldPerformTransition()) { + Turbo.cache.exemptPageFromCache(); + } +}); diff --git a/importmap.php b/importmap.php index 21c252a..2d15649 100644 --- a/importmap.php +++ b/importmap.php @@ -63,4 +63,7 @@ 'version' => '11.0.5', 'type' => 'css', ], + 'turbo-view-transitions' => [ + 'version' => '0.3.0', + ], ]; diff --git a/templates/base.html.twig b/templates/base.html.twig index 779306e..66a31be 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -3,6 +3,7 @@ + {% block title %}QOTD{% endblock %} {% block stylesheets %} From a9742ec301f7fe45895a9bd30dc89454b93292f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Thu, 4 Jan 2024 22:23:26 +0100 Subject: [PATCH 9/9] display less items per page (7) --- src/Controller/QotdController.php | 6 +++--- src/Paginator/NativeQueryPaginator.php | 3 ++- src/Repository/QotdRepository.php | 6 ++++-- tests/Controller/QotdControllerTest.php | 8 ++++---- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Controller/QotdController.php b/src/Controller/QotdController.php index f966d27..08bac24 100644 --- a/src/Controller/QotdController.php +++ b/src/Controller/QotdController.php @@ -42,8 +42,8 @@ public function index(Request $request, QotdDirection $direction): Response ]); } - #[Route('/not-voted', name: 'qotd_index_not_voted', defaults: ['direction' => QotdDirection::NotVoted->value])] - public function notVoted(Request $request, QotdDirection $direction, #[CurrentUser] UserInterface $user): Response + #[Route('/not-voted', name: 'qotd_index_not_voted')] + public function notVoted(Request $request, #[CurrentUser] UserInterface $user): Response { $page = max(1, $request->query->getInt('page', 1)); $pagination = $this @@ -53,7 +53,7 @@ public function notVoted(Request $request, QotdDirection $direction, #[CurrentUs return $this->render('qotd/index.html.twig', [ 'pagination' => $pagination, - 'direction' => $direction, + 'direction' => QotdDirection::NotVoted, ]); } diff --git a/src/Paginator/NativeQueryPaginator.php b/src/Paginator/NativeQueryPaginator.php index 7d06817..81a93f6 100644 --- a/src/Paginator/NativeQueryPaginator.php +++ b/src/Paginator/NativeQueryPaginator.php @@ -30,10 +30,11 @@ public function items(ItemsEvent $event): void ; $params = $query->parameters; + $params[] = $event->getLimit(); $params[] = $event->getOffset(); $qotds = $this ->em - ->createNativeQuery('SELECT * FROM ( ' . $query->sql . ' ) AS q LIMIT 20 OFFSET ?', $query->rsm) + ->createNativeQuery('SELECT * FROM ( ' . $query->sql . ' ) AS q LIMIT ? OFFSET ?', $query->rsm) ->setParameters($params) ->getResult() ; diff --git a/src/Repository/QotdRepository.php b/src/Repository/QotdRepository.php index 6f31d66..ba44264 100644 --- a/src/Repository/QotdRepository.php +++ b/src/Repository/QotdRepository.php @@ -23,6 +23,8 @@ */ class QotdRepository extends ServiceEntityRepository { + private const MAX_PER_PAGE = 7; + public function __construct( ManagerRegistry $registry, private readonly PaginatorInterface $paginator, @@ -66,7 +68,7 @@ public function findForHomepage(int $page, QotdDirection $direction): Pagination return $this->paginator->paginate( $qb->getQuery(), $page, - 20, + self::MAX_PER_PAGE, ); } @@ -92,7 +94,7 @@ public function findForHomepageNotVoted(int $page, UserInterface $user): Paginat return $this->paginator->paginate( $query, $page, - 20, + self::MAX_PER_PAGE, ); } diff --git a/tests/Controller/QotdControllerTest.php b/tests/Controller/QotdControllerTest.php index 0b9fe1a..5e91077 100644 --- a/tests/Controller/QotdControllerTest.php +++ b/tests/Controller/QotdControllerTest.php @@ -20,7 +20,7 @@ public function testIndex(): void self::assertTestSelectorTextContains('brand', 'QOTD'); self::assertSelectorTextContains('title', 'Latest QOTD'); $quotes = $crawler->filter('[data-test=quote]'); - self::assertCount(20, $quotes); + self::assertCount(7, $quotes); self::assertSame("Hello Message on line 1; Message on line 2; Message on line 3; Message on line 4; 🙊 👍 https://joli-mapstr.vercel.app/ https://joli-mapstr.vercel.app/ @Marion @Marion foobar foobar list 1 list 2 list 3 quote some code end 2023-05-12 by rich-text@example.com 🔗 view in Slack 👎 0 👍", $quotes->first()->text()); } @@ -33,7 +33,7 @@ public function testTop(): void self::assertResponseIsSuccessful(); self::assertSelectorTextContains('title', 'Top QOTD'); $quotes = $crawler->filter('[data-test=quote]'); - self::assertCount(20, $quotes); + self::assertCount(7, $quotes); self::assertSame(100, (int) $quotes->first()->filter('[data-test=quote-vote]')->text()); } @@ -46,7 +46,7 @@ public function testFlop(): void self::assertResponseIsSuccessful(); self::assertSelectorTextContains('title', 'Worst QOTD'); $quotes = $crawler->filter('[data-test=quote]'); - self::assertCount(20, $quotes); + self::assertCount(7, $quotes); self::assertSame(0, (int) $quotes->first()->filter('[data-test=quote-vote]')->text()); } @@ -59,7 +59,7 @@ public function testNotVotedYet(): void self::assertResponseIsSuccessful(); self::assertSelectorTextContains('title', 'QOTD not voted yet'); $quotes = $crawler->filter('[data-test=quote]'); - self::assertCount(20, $quotes); + self::assertCount(7, $quotes); $firstQuote = $quotes->first(); $id = str_replace('qotd-', '', $firstQuote->attr('id'));