diff --git a/.env b/.env index eb1fa3d8d..76ccbc48e 100644 --- a/.env +++ b/.env @@ -9,6 +9,7 @@ # Real environment variables win over .env files. # # DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. +# https://symfony.com/doc/current/configuration/secrets.html # # Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). # https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration @@ -30,5 +31,5 @@ DATABASE_URL=sqlite:///%kernel.project_dir%/data/database.sqlite ###< doctrine/doctrine-bundle ### ###> symfony/mailer ### -# MAILER_DSN=smtp://localhost +# MAILER_DSN=null://null ###< symfony/mailer ### diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 80b6bf2ca..48116895d 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -10,7 +10,6 @@ env: fail-fast: true PHPUNIT_FLAGS: "-v" SYMFONY_PHPUNIT_DIR: "$HOME/symfony-bridge/.phpunit" - SYMFONY_REQUIRE: ">=6.0" SYMFONY_DEPRECATIONS_HELPER: 7 permissions: diff --git a/assets/bootstrap.js b/assets/bootstrap.js index 58308a6bf..4ab2df643 100644 --- a/assets/bootstrap.js +++ b/assets/bootstrap.js @@ -4,7 +4,7 @@ import { startStimulusApp } from '@symfony/stimulus-bridge'; export const app = startStimulusApp(require.context( '@symfony/stimulus-bridge/lazy-controller-loader!./controllers', true, - /\.(j|t)sx?$/ + /\.[jt]sx?$/ )); // register any custom, 3rd party controllers here diff --git a/composer.json b/composer.json index c140e2897..cc439ba7c 100644 --- a/composer.json +++ b/composer.json @@ -16,33 +16,32 @@ "php": ">=8.1", "ext-pdo_sqlite": "*", "doctrine/dbal": "^3.1", - "doctrine/doctrine-bundle": "^2.5", + "doctrine/doctrine-bundle": "2.7.x-dev", "doctrine/doctrine-migrations-bundle": "^3.0", "doctrine/orm": "^2.10", "league/commonmark": "^2.1", - "sensio/framework-extra-bundle": "^6.2", "symfony/apache-pack": "^1.0", - "symfony/asset": "^6.1", - "symfony/console": "^6.1", - "symfony/dotenv": "^6.1", - "symfony/expression-language": "^6.1", + "symfony/asset": "^6.2", + "symfony/console": "^6.2", + "symfony/dotenv": "^6.2", + "symfony/expression-language": "^6.2", "symfony/flex": "^2.0", - "symfony/form": "^6.1", - "symfony/framework-bundle": "^6.1", - "symfony/html-sanitizer": "^6.1", - "symfony/http-client": "^6.1", - "symfony/intl": "^6.1", - "symfony/mailer": "^6.1", + "symfony/form": "^6.2", + "symfony/framework-bundle": "^6.2", + "symfony/html-sanitizer": "^6.2", + "symfony/http-client": "^6.2", + "symfony/intl": "^6.2", + "symfony/mailer": "^6.2", "symfony/monolog-bundle": "^3.7", "symfony/polyfill-intl-messageformatter": "^1.12", - "symfony/runtime": "^6.1", - "symfony/security-bundle": "^6.1", - "symfony/string": "^6.1", - "symfony/translation": "^6.1", - "symfony/twig-bundle": "^6.1", - "symfony/validator": "^6.1", + "symfony/runtime": "^6.2", + "symfony/security-bundle": "^6.2", + "symfony/string": "^6.2", + "symfony/translation": "^6.2", + "symfony/twig-bundle": "^6.2", + "symfony/validator": "^6.2", "symfony/webpack-encore-bundle": "^1.13", - "symfony/yaml": "^6.1", + "symfony/yaml": "^6.2", "twig/extra-bundle": "^3.3", "twig/intl-extra": "^3.3", "twig/markdown-extra": "^3.3" @@ -51,13 +50,13 @@ "dama/doctrine-test-bundle": "^7.0", "doctrine/doctrine-fixtures-bundle": "^3.4", "phpstan/phpstan": "^1.2", - "symfony/browser-kit": "^6.1", - "symfony/css-selector": "^6.1", - "symfony/debug-bundle": "^6.1", + "symfony/browser-kit": "^6.2", + "symfony/css-selector": "^6.2", + "symfony/debug-bundle": "^6.2", "symfony/maker-bundle": "^1.36", - "symfony/phpunit-bridge": "^6.1", - "symfony/stopwatch": "^6.1", - "symfony/web-profiler-bundle": "^6.1" + "symfony/phpunit-bridge": "^6.2", + "symfony/stopwatch": "^6.2", + "symfony/web-profiler-bundle": "^6.2" }, "config": { "platform": { @@ -98,7 +97,7 @@ "extra": { "symfony": { "allow-contrib": true, - "require": "6.1.*" + "require": "6.2.*" } } } diff --git a/composer.lock b/composer.lock index 38414e8a7..2d2973569 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": "5a68d8b390e5e9272e61271871569e5b", + "content-hash": "4c2580b4e3b7dc4df0a4002972d15abb", "packages": [ { "name": "dflydev/dot-access-data", @@ -564,37 +564,37 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.7.0", + "version": "2.7.x-dev", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "d2088fc50494e4e7441fecca54732245a613eeb6" + "reference": "a75e50dc4d8ba9a29b6e0e90e4c3afba989e797b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d2088fc50494e4e7441fecca54732245a613eeb6", - "reference": "d2088fc50494e4e7441fecca54732245a613eeb6", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/a75e50dc4d8ba9a29b6e0e90e4c3afba989e797b", + "reference": "a75e50dc4d8ba9a29b6e0e90e4c3afba989e797b", "shasum": "" }, "require": { "doctrine/annotations": "^1", "doctrine/cache": "^1.11 || ^2.0", - "doctrine/dbal": "^2.13.1|^3.3.2", - "doctrine/persistence": "^2.2|^3", + "doctrine/dbal": "^2.13.1 || ^3.3.2", + "doctrine/persistence": "^2.2 || ^3", "doctrine/sql-formatter": "^1.0.1", "php": "^7.1 || ^8.0", - "symfony/cache": "^4.3.3|^5.0|^6.0", - "symfony/config": "^4.4.3|^5.0|^6.0", - "symfony/console": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/dependency-injection": "^4.4.18|^5.0|^6.0", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/doctrine-bridge": "^4.4.22|^5.2.7|^6.0", - "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/service-contracts": "^1.1.1|^2.0|^3" + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/config": "^4.4.3 || ^5.4 || ^6.0", + "symfony/console": "^4.4 || ^5.4 || ^6.0", + "symfony/dependency-injection": "^4.4.18 || ^5.4 || ^6.0", + "symfony/deprecation-contracts": "^2.1 || ^3", + "symfony/doctrine-bridge": "^4.4.22 || ^5.4 || ^6.0", + "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.0", + "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3" }, "conflict": { - "doctrine/orm": "<2.10|>=3.0", - "twig/twig": "<1.34|>=2.0,<2.4" + "doctrine/orm": "<2.11 || >=3.0", + "twig/twig": "<1.34 || >=2.0,<2.4" }, "require-dev": { "doctrine/coding-standard": "^9.0", @@ -603,16 +603,16 @@ "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0", "psalm/plugin-phpunit": "^0.16.1", "psalm/plugin-symfony": "^3", - "psr/log": "^1.1.4|^2.0|^3.0", - "symfony/phpunit-bridge": "^5.2|^6.0", - "symfony/property-info": "^4.3.3|^5.0|^6.0", - "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0|^6.0", - "symfony/security-bundle": "^4.4|^5.0|^6.0", - "symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/validator": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/yaml": "^3.4.30|^4.3.3|^5.0|^6.0", - "twig/twig": "^1.34|^2.12|^3.0", + "psr/log": "^1.1.4 || ^2.0 || ^3.0", + "symfony/phpunit-bridge": "^6.1", + "symfony/property-info": "^4.4 || ^5.4 || ^6.0", + "symfony/proxy-manager-bridge": "^4.4 || ^5.4 || ^6.0", + "symfony/security-bundle": "^4.4 || ^5.4 || ^6.0", + "symfony/twig-bridge": "^4.4 || ^5.4 || ^6.0", + "symfony/validator": "^4.4 || ^5.4 || ^6.0", + "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.0", + "symfony/yaml": "^4.4 || ^5.4 || ^6.0", + "twig/twig": "^1.34 || ^2.12 || ^3.0", "vimeo/psalm": "^4.7" }, "suggest": { @@ -620,6 +620,7 @@ "ext-pdo": "*", "symfony/web-profiler-bundle": "To use the data collector." }, + "default-branch": true, "type": "symfony-bundle", "autoload": { "psr-4": { @@ -658,7 +659,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.7.0" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.7.x" }, "funding": [ { @@ -674,7 +675,7 @@ "type": "tidelift" } ], - "time": "2022-06-10T10:55:26+00:00" + "time": "2022-11-09T14:19:06+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", @@ -1201,16 +1202,16 @@ }, { "name": "doctrine/orm", - "version": "2.13.3", + "version": "2.13.4", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "e750360bd52b080c4cbaaee1b48b80f7dc873b36" + "reference": "a5a6cc6630ce497290396d5f206887227820a634" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/e750360bd52b080c4cbaaee1b48b80f7dc873b36", - "reference": "e750360bd52b080c4cbaaee1b48b80f7dc873b36", + "url": "https://api.github.com/repos/doctrine/orm/zipball/a5a6cc6630ce497290396d5f206887227820a634", + "reference": "a5a6cc6630ce497290396d5f206887227820a634", "shasum": "" }, "require": { @@ -1239,13 +1240,13 @@ "doctrine/annotations": "^1.13", "doctrine/coding-standard": "^9.0.2 || ^10.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.8.5", + "phpstan/phpstan": "~1.4.10 || 1.9.2", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.7.1", "symfony/cache": "^4.4 || ^5.4 || ^6.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.27.0" + "vimeo/psalm": "4.30.0" }, "suggest": { "ext-dom": "Provides support for XSD validation for XML mapping files", @@ -1295,22 +1296,22 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.13.3" + "source": "https://github.com/doctrine/orm/tree/2.13.4" }, - "time": "2022-10-07T06:37:17+00:00" + "time": "2022-11-20T18:53:31+00:00" }, { "name": "doctrine/persistence", - "version": "3.0.4", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "05612da375f8a3931161f435f91d6704926e6ec5" + "reference": "2a9c70a5e21f8968c5a46b79f819ea52f322080b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/05612da375f8a3931161f435f91d6704926e6ec5", - "reference": "05612da375f8a3931161f435f91d6704926e6ec5", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/2a9c70a5e21f8968c5a46b79f819ea52f322080b", + "reference": "2a9c70a5e21f8968c5a46b79f819ea52f322080b", "shasum": "" }, "require": { @@ -1381,7 +1382,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.0.4" + "source": "https://github.com/doctrine/persistence/tree/3.1.0" }, "funding": [ { @@ -1397,7 +1398,7 @@ "type": "tidelift" } ], - "time": "2022-10-13T07:34:14+00:00" + "time": "2022-11-18T14:10:19+00:00" }, { "name": "doctrine/sql-formatter", @@ -1603,16 +1604,16 @@ }, { "name": "laminas/laminas-code", - "version": "4.7.0", + "version": "4.7.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-code.git", - "reference": "0337d9265bc2e6376babad8c511500821620cb30" + "reference": "91aabc066d5620428120800c0eafc0411e441a62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/0337d9265bc2e6376babad8c511500821620cb30", - "reference": "0337d9265bc2e6376babad8c511500821620cb30", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/91aabc066d5620428120800c0eafc0411e441a62", + "reference": "91aabc066d5620428120800c0eafc0411e441a62", "shasum": "" }, "require": { @@ -1665,20 +1666,20 @@ "type": "community_bridge" } ], - "time": "2022-09-13T10:33:30+00:00" + "time": "2022-11-21T01:32:31+00:00" }, { "name": "league/commonmark", - "version": "2.3.5", + "version": "2.3.7", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257" + "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257", - "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/a36bd2be4f5387c0f3a8792a0d76b7d68865abbf", + "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf", "shasum": "" }, "require": { @@ -1698,7 +1699,7 @@ "erusev/parsedown": "^1.0", "ext-json": "*", "github/gfm": "0.29.0", - "michelf/php-markdown": "^1.4", + "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", "phpunit/phpunit": "^9.5.21", @@ -1771,7 +1772,7 @@ "type": "tidelift" } ], - "time": "2022-07-29T10:59:45+00:00" + "time": "2022-11-03T17:29:46+00:00" }, { "name": "league/config", @@ -2198,25 +2199,25 @@ }, { "name": "nette/schema", - "version": "v1.2.2", + "version": "v1.2.3", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", - "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", "shasum": "" }, "require": { "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.2" + "php": ">=7.1 <8.3" }, "require-dev": { "nette/tester": "^2.3 || ^2.4", - "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-nette": "^1.0", "tracy/tracy": "^2.7" }, "type": "library", @@ -2254,9 +2255,9 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.2" + "source": "https://github.com/nette/schema/tree/v1.2.3" }, - "time": "2021-10-15T11:40:02+00:00" + "time": "2022-10-13T01:24:26+00:00" }, { "name": "nette/utils", @@ -2598,84 +2599,6 @@ }, "time": "2021-07-14T16:46:02+00:00" }, - { - "name": "sensio/framework-extra-bundle", - "version": "v6.2.8", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "bb962f8aed09e60b0942545f6e4842ffeee4aafd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb962f8aed09e60b0942545f6e4842ffeee4aafd", - "reference": "bb962f8aed09e60b0942545f6e4842ffeee4aafd", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "php": ">=7.2.5", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/framework-bundle": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0" - }, - "conflict": { - "doctrine/doctrine-cache-bundle": "<1.3.1", - "doctrine/persistence": "<1.3" - }, - "require-dev": { - "doctrine/dbal": "^2.10|^3.0", - "doctrine/doctrine-bundle": "^1.11|^2.0", - "doctrine/orm": "^2.5", - "symfony/browser-kit": "^4.4|^5.0|^6.0", - "symfony/doctrine-bridge": "^4.4|^5.0|^6.0", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/monolog-bridge": "^4.0|^5.0|^6.0", - "symfony/monolog-bundle": "^3.2", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0", - "symfony/security-bundle": "^4.4|^5.0|^6.0", - "symfony/twig-bundle": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0", - "twig/twig": "^1.34|^2.4|^3.0" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "6.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Sensio\\Bundle\\FrameworkExtraBundle\\": "src/" - }, - "exclude-from-classmap": [ - "/tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "This bundle provides a way to configure your controllers with annotations", - "keywords": [ - "annotations", - "controllers" - ], - "support": { - "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", - "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.8" - }, - "time": "2022-09-05T16:44:56+00:00" - }, { "name": "symfony/apache-pack", "version": "v1.0.1", @@ -2704,16 +2627,16 @@ }, { "name": "symfony/asset", - "version": "v6.1.5", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "6065b5edc36442cb1ba98dc40f7c7f6b9e154729" + "reference": "a0ebf67f56f028217256d5f99438175430b3836c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/6065b5edc36442cb1ba98dc40f7c7f6b9e154729", - "reference": "6065b5edc36442cb1ba98dc40f7c7f6b9e154729", + "url": "https://api.github.com/repos/symfony/asset/zipball/a0ebf67f56f028217256d5f99438175430b3836c", + "reference": "a0ebf67f56f028217256d5f99438175430b3836c", "shasum": "" }, "require": { @@ -2756,7 +2679,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.1.5" + "source": "https://github.com/symfony/asset/tree/v6.2.0" }, "funding": [ { @@ -2772,20 +2695,20 @@ "type": "tidelift" } ], - "time": "2022-08-31T08:17:45+00:00" + "time": "2022-10-19T16:13:28+00:00" }, { "name": "symfony/cache", - "version": "v6.1.5", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "9ae74e40fde37aba127ad5db65c5193f41f86f95" + "reference": "64cb231dfb25677097d18503d1ad4d016b19f19c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/9ae74e40fde37aba127ad5db65c5193f41f86f95", - "reference": "9ae74e40fde37aba127ad5db65c5193f41f86f95", + "url": "https://api.github.com/repos/symfony/cache/zipball/64cb231dfb25677097d18503d1ad4d016b19f19c", + "reference": "64cb231dfb25677097d18503d1ad4d016b19f19c", "shasum": "" }, "require": { @@ -2794,7 +2717,7 @@ "psr/log": "^1.1|^2|^3", "symfony/cache-contracts": "^1.1.7|^2|^3", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/var-exporter": "^6.2" }, "conflict": { "doctrine/dbal": "<2.13.1", @@ -2852,7 +2775,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.1.5" + "source": "https://github.com/symfony/cache/tree/v6.2.0" }, "funding": [ { @@ -2868,7 +2791,7 @@ "type": "tidelift" } ], - "time": "2022-09-08T09:34:40+00:00" + "time": "2022-11-24T11:58:37+00:00" }, { "name": "symfony/cache-contracts", @@ -2951,16 +2874,16 @@ }, { "name": "symfony/config", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "a0645dc585d378b73c01115dd7ab9348f7d40c85" + "reference": "ebf27792246165a2a0b6b69ec9c620cac8c5a2f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/a0645dc585d378b73c01115dd7ab9348f7d40c85", - "reference": "a0645dc585d378b73c01115dd7ab9348f7d40c85", + "url": "https://api.github.com/repos/symfony/config/zipball/ebf27792246165a2a0b6b69ec9c620cac8c5a2f0", + "reference": "ebf27792246165a2a0b6b69ec9c620cac8c5a2f0", "shasum": "" }, "require": { @@ -3008,7 +2931,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.1.3" + "source": "https://github.com/symfony/config/tree/v6.2.0" }, "funding": [ { @@ -3024,20 +2947,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T15:00:40+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/console", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "7fa3b9cf17363468795e539231a5c91b02b608fc" + "reference": "75d4749d9620a8fa21a2d2847800a84b5c4e7682" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/7fa3b9cf17363468795e539231a5c91b02b608fc", - "reference": "7fa3b9cf17363468795e539231a5c91b02b608fc", + "url": "https://api.github.com/repos/symfony/console/zipball/75d4749d9620a8fa21a2d2847800a84b5c4e7682", + "reference": "75d4749d9620a8fa21a2d2847800a84b5c4e7682", "shasum": "" }, "require": { @@ -3104,7 +3027,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.1.6" + "source": "https://github.com/symfony/console/tree/v6.2.0" }, "funding": [ { @@ -3120,33 +3043,34 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-29T16:44:51+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.1.5", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "b9c797c9d56afc290d4265854bafd01b4e379240" + "reference": "bb328032f400961be5db5aed87fac9742b506f80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b9c797c9d56afc290d4265854bafd01b4e379240", - "reference": "b9c797c9d56afc290d4265854bafd01b4e379240", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/bb328032f400961be5db5aed87fac9742b506f80", + "reference": "bb328032f400961be5db5aed87fac9742b506f80", "shasum": "" }, "require": { "php": ">=8.1", "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/service-contracts": "^1.1.6|^2.0|^3.0" + "symfony/service-contracts": "^1.1.6|^2.0|^3.0", + "symfony/var-exporter": "^6.2" }, "conflict": { "ext-psr": "<1.1|>=2", "symfony/config": "<6.1", "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<5.4", + "symfony/proxy-manager-bridge": "<6.2", "symfony/yaml": "<5.4" }, "provide": { @@ -3191,7 +3115,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.1.5" + "source": "https://github.com/symfony/dependency-injection/tree/v6.2.0" }, "funding": [ { @@ -3207,7 +3131,7 @@ "type": "tidelift" } ], - "time": "2022-09-28T16:00:52+00:00" + "time": "2022-11-25T07:37:13+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3278,20 +3202,20 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "5db7ac51c40d03d576b2696a6b55975e53a3dfd5" + "reference": "11c13fff0cd2fe1528ea1e60638fb23c9a0c748f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/5db7ac51c40d03d576b2696a6b55975e53a3dfd5", - "reference": "5db7ac51c40d03d576b2696a6b55975e53a3dfd5", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/11c13fff0cd2fe1528ea1e60638fb23c9a0c748f", + "reference": "11c13fff0cd2fe1528ea1e60638fb23c9a0c748f", "shasum": "" }, "require": { - "doctrine/event-manager": "~1.0", + "doctrine/event-manager": "^1.2|^2", "doctrine/persistence": "^2|^3", "php": ">=8.1", "symfony/deprecation-contracts": "^2.1|^3", @@ -3307,7 +3231,7 @@ "symfony/cache": "<5.4", "symfony/dependency-injection": "<5.4", "symfony/form": "<5.4", - "symfony/http-kernel": "<5.4", + "symfony/http-kernel": "<6.2", "symfony/messenger": "<5.4", "symfony/property-info": "<5.4", "symfony/security-bundle": "<5.4", @@ -3316,7 +3240,7 @@ }, "require-dev": { "doctrine/annotations": "^1.10.4", - "doctrine/collections": "~1.0", + "doctrine/collections": "^1.0|^2.0", "doctrine/data-fixtures": "^1.1", "doctrine/dbal": "^2.13.1|^3.0", "doctrine/orm": "^2.7.4", @@ -3327,7 +3251,7 @@ "symfony/doctrine-messenger": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/form": "^5.4.9|^6.0.9", - "symfony/http-kernel": "^5.4|^6.0", + "symfony/http-kernel": "^6.2", "symfony/messenger": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", "symfony/property-info": "^5.4|^6.0", @@ -3373,7 +3297,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.1.6" + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.2.0" }, "funding": [ { @@ -3389,27 +3313,28 @@ "type": "tidelift" } ], - "time": "2022-10-10T09:34:31+00:00" + "time": "2022-11-28T12:28:19+00:00" }, { "name": "symfony/dotenv", - "version": "v6.1.0", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "568c11bcedf419e7e61f663912c3547b54de51df" + "reference": "bdc3766f31a0944cadfcdf52170ad3fb80b1540b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/568c11bcedf419e7e61f663912c3547b54de51df", - "reference": "568c11bcedf419e7e61f663912c3547b54de51df", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/bdc3766f31a0944cadfcdf52170ad3fb80b1540b", + "reference": "bdc3766f31a0944cadfcdf52170ad3fb80b1540b", "shasum": "" }, "require": { "php": ">=8.1" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<5.4", + "symfony/process": "<5.4" }, "require-dev": { "symfony/console": "^5.4|^6.0", @@ -3446,7 +3371,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v6.1.0" + "source": "https://github.com/symfony/dotenv/tree/v6.2.0" }, "funding": [ { @@ -3462,20 +3387,20 @@ "type": "tidelift" } ], - "time": "2022-04-01T07:15:35+00:00" + "time": "2022-09-30T13:41:10+00:00" }, { "name": "symfony/error-handler", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "49f718e41f1b6f0fd5730895ca5b1c37defd828d" + "reference": "d9894724a9d20afd3329e36b36e45835b5c2ab3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/49f718e41f1b6f0fd5730895ca5b1c37defd828d", - "reference": "49f718e41f1b6f0fd5730895ca5b1c37defd828d", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/d9894724a9d20afd3329e36b36e45835b5c2ab3e", + "reference": "d9894724a9d20afd3329e36b36e45835b5c2ab3e", "shasum": "" }, "require": { @@ -3517,7 +3442,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.1.6" + "source": "https://github.com/symfony/error-handler/tree/v6.2.0" }, "funding": [ { @@ -3533,20 +3458,20 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.1.0", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "a0449a7ad7daa0f7c0acd508259f80544ab5a347" + "reference": "9efb1618fabee89515fe031314e8ed5625f85a53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a0449a7ad7daa0f7c0acd508259f80544ab5a347", - "reference": "a0449a7ad7daa0f7c0acd508259f80544ab5a347", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9efb1618fabee89515fe031314e8ed5625f85a53", + "reference": "9efb1618fabee89515fe031314e8ed5625f85a53", "shasum": "" }, "require": { @@ -3600,7 +3525,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.1.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.0" }, "funding": [ { @@ -3616,7 +3541,7 @@ "type": "tidelift" } ], - "time": "2022-05-05T16:51:07+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3699,16 +3624,16 @@ }, { "name": "symfony/expression-language", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "d1538560c075007d3dfd1f8e3a05e43a5ff13fd6" + "reference": "e1f77901361f287c5b7d99b80c9ea8d3afe7d2cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/d1538560c075007d3dfd1f8e3a05e43a5ff13fd6", - "reference": "d1538560c075007d3dfd1f8e3a05e43a5ff13fd6", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/e1f77901361f287c5b7d99b80c9ea8d3afe7d2cd", + "reference": "e1f77901361f287c5b7d99b80c9ea8d3afe7d2cd", "shasum": "" }, "require": { @@ -3742,7 +3667,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.1.6" + "source": "https://github.com/symfony/expression-language/tree/v6.2.0" }, "funding": [ { @@ -3758,20 +3683,20 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/filesystem", - "version": "v6.1.5", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "4d216a2beef096edf040a070117c39ca2abce307" + "reference": "50b2523c874605cf3d4acf7a9e2b30b6a440a016" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4d216a2beef096edf040a070117c39ca2abce307", - "reference": "4d216a2beef096edf040a070117c39ca2abce307", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/50b2523c874605cf3d4acf7a9e2b30b6a440a016", + "reference": "50b2523c874605cf3d4acf7a9e2b30b6a440a016", "shasum": "" }, "require": { @@ -3805,7 +3730,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.1.5" + "source": "https://github.com/symfony/filesystem/tree/v6.2.0" }, "funding": [ { @@ -3821,20 +3746,20 @@ "type": "tidelift" } ], - "time": "2022-09-21T20:29:40+00:00" + "time": "2022-11-20T13:01:27+00:00" }, { "name": "symfony/finder", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "39696bff2c2970b3779a5cac7bf9f0b88fc2b709" + "reference": "eb2355f69519e4ef33f1835bca4c935f5d42e570" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/39696bff2c2970b3779a5cac7bf9f0b88fc2b709", - "reference": "39696bff2c2970b3779a5cac7bf9f0b88fc2b709", + "url": "https://api.github.com/repos/symfony/finder/zipball/eb2355f69519e4ef33f1835bca4c935f5d42e570", + "reference": "eb2355f69519e4ef33f1835bca4c935f5d42e570", "shasum": "" }, "require": { @@ -3869,7 +3794,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.1.3" + "source": "https://github.com/symfony/finder/tree/v6.2.0" }, "funding": [ { @@ -3885,7 +3810,7 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:42:06+00:00" + "time": "2022-10-09T08:55:40+00:00" }, { "name": "symfony/flex", @@ -3954,16 +3879,16 @@ }, { "name": "symfony/form", - "version": "v6.1.5", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "176a358d54c70ec70708c7cbb4e8ac93cc138e6c" + "reference": "31a25bd415ee56547efaaa9ebd84d1d13e6c8672" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/176a358d54c70ec70708c7cbb4e8ac93cc138e6c", - "reference": "176a358d54c70ec70708c7cbb4e8ac93cc138e6c", + "url": "https://api.github.com/repos/symfony/form/zipball/31a25bd415ee56547efaaa9ebd84d1d13e6c8672", + "reference": "31a25bd415ee56547efaaa9ebd84d1d13e6c8672", "shasum": "" }, "require": { @@ -3990,7 +3915,7 @@ "symfony/twig-bridge": "<5.4" }, "require-dev": { - "doctrine/collections": "~1.0", + "doctrine/collections": "^1.0|^2.0", "symfony/config": "^5.4|^6.0", "symfony/console": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0", @@ -3999,6 +3924,7 @@ "symfony/http-foundation": "^5.4|^6.0", "symfony/http-kernel": "^5.4|^6.0", "symfony/intl": "^5.4|^6.0", + "symfony/security-core": "^6.2", "symfony/security-csrf": "^5.4|^6.0", "symfony/translation": "^5.4|^6.0", "symfony/uid": "^5.4|^6.0", @@ -4006,6 +3932,7 @@ "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { + "symfony/security-core": "For hashing users passwords.", "symfony/security-csrf": "For protecting forms against CSRF attacks.", "symfony/twig-bridge": "For templating with Twig.", "symfony/validator": "For form validation." @@ -4036,7 +3963,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.1.5" + "source": "https://github.com/symfony/form/tree/v6.2.0" }, "funding": [ { @@ -4052,20 +3979,20 @@ "type": "tidelift" } ], - "time": "2022-09-09T09:34:27+00:00" + "time": "2022-11-28T12:28:19+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "b79e5866a8293de00c8436836c2038ec31916ee7" + "reference": "e6545946a969a05b81a24e2528e3ac74659b61df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/b79e5866a8293de00c8436836c2038ec31916ee7", - "reference": "b79e5866a8293de00c8436836c2038ec31916ee7", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e6545946a969a05b81a24e2528e3ac74659b61df", + "reference": "e6545946a969a05b81a24e2528e3ac74659b61df", "shasum": "" }, "require": { @@ -4074,14 +4001,14 @@ "php": ">=8.1", "symfony/cache": "^5.4|^6.0", "symfony/config": "^6.1", - "symfony/dependency-injection": "^6.1", + "symfony/dependency-injection": "^6.2", "symfony/deprecation-contracts": "^2.1|^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": "^5.4|^6.0", - "symfony/http-kernel": "^6.1", + "symfony/http-foundation": "^6.2", + "symfony/http-kernel": "^6.2", "symfony/polyfill-mbstring": "~1.0", "symfony/routing": "^5.4|^6.0" }, @@ -4099,8 +4026,8 @@ "symfony/http-client": "<5.4", "symfony/lock": "<5.4", "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/mime": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2", "symfony/property-access": "<5.4", "symfony/property-info": "<5.4", "symfony/security-core": "<5.4", @@ -4130,8 +4057,8 @@ "symfony/http-client": "^5.4|^6.0", "symfony/lock": "^5.4|^6.0", "symfony/mailer": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", + "symfony/messenger": "^6.2", + "symfony/mime": "^6.2", "symfony/notifier": "^5.4|^6.0", "symfony/polyfill-intl-icu": "~1.0", "symfony/process": "^5.4|^6.0", @@ -4187,7 +4114,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.1.6" + "source": "https://github.com/symfony/framework-bundle/tree/v6.2.0" }, "funding": [ { @@ -4203,11 +4130,11 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-28T10:27:48+00:00" }, { "name": "symfony/html-sanitizer", - "version": "v6.1.0", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", @@ -4256,7 +4183,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v6.1.0" + "source": "https://github.com/symfony/html-sanitizer/tree/v6.2.0" }, "funding": [ { @@ -4276,21 +4203,22 @@ }, { "name": "symfony/http-client", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "c8c887f4813370550147afd27d9eb8a8523e53b2" + "reference": "153540b6ed72eecdcb42dc847f8d8cf2e2516e8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/c8c887f4813370550147afd27d9eb8a8523e53b2", - "reference": "c8c887f4813370550147afd27d9eb8a8523e53b2", + "url": "https://api.github.com/repos/symfony/http-client/zipball/153540b6ed72eecdcb42dc847f8d8cf2e2516e8e", + "reference": "153540b6ed72eecdcb42dc847f8d8cf2e2516e8e", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/http-client-contracts": "^3", "symfony/service-contracts": "^1.0|^2|^3" }, @@ -4340,7 +4268,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v6.1.6" + "source": "https://github.com/symfony/http-client/tree/v6.2.0" }, "funding": [ { @@ -4356,7 +4284,7 @@ "type": "tidelift" } ], - "time": "2022-10-12T05:10:31+00:00" + "time": "2022-11-14T10:13:36+00:00" }, { "name": "symfony/http-client-contracts", @@ -4441,16 +4369,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "3ae8e9c57155fc48930493a629da293b32efbde0" + "reference": "edc56ed49a2955383d59e9b7043fd3bbc26f1854" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3ae8e9c57155fc48930493a629da293b32efbde0", - "reference": "3ae8e9c57155fc48930493a629da293b32efbde0", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/edc56ed49a2955383d59e9b7043fd3bbc26f1854", + "reference": "edc56ed49a2955383d59e9b7043fd3bbc26f1854", "shasum": "" }, "require": { @@ -4458,6 +4386,9 @@ "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1" }, + "conflict": { + "symfony/cache": "<6.2" + }, "require-dev": { "predis/predis": "~1.0", "symfony/cache": "^5.4|^6.0", @@ -4496,7 +4427,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.1.6" + "source": "https://github.com/symfony/http-foundation/tree/v6.2.0" }, "funding": [ { @@ -4512,25 +4443,26 @@ "type": "tidelift" } ], - "time": "2022-10-02T08:30:52+00:00" + "time": "2022-11-21T16:03:04+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "102f99bf81799e93f61b9a73b2f38b309c587a94" + "reference": "e008ce658dbd995b3c3ab3d9be0555ea3b11867e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/102f99bf81799e93f61b9a73b2f38b309c587a94", - "reference": "102f99bf81799e93f61b9a73b2f38b309c587a94", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e008ce658dbd995b3c3ab3d9be0555ea3b11867e", + "reference": "e008ce658dbd995b3c3ab3d9be0555ea3b11867e", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/error-handler": "^6.1", "symfony/event-dispatcher": "^5.4|^6.0", "symfony/http-foundation": "^5.4|^6.0", @@ -4541,7 +4473,7 @@ "symfony/cache": "<5.4", "symfony/config": "<6.1", "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.1", + "symfony/dependency-injection": "<6.2", "symfony/doctrine-bridge": "<5.4", "symfony/form": "<5.4", "symfony/http-client": "<5.4", @@ -4561,7 +4493,7 @@ "symfony/config": "^6.1", "symfony/console": "^5.4|^6.0", "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.1", + "symfony/dependency-injection": "^6.2", "symfony/dom-crawler": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/finder": "^5.4|^6.0", @@ -4606,7 +4538,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.1.6" + "source": "https://github.com/symfony/http-kernel/tree/v6.2.0" }, "funding": [ { @@ -4622,27 +4554,28 @@ "type": "tidelift" } ], - "time": "2022-10-12T07:48:47+00:00" + "time": "2022-11-30T17:37:58+00:00" }, { "name": "symfony/intl", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "9ab546d9054b34feb2cb728349f6b8e8f18d4c43" + "reference": "04726ae6cec43582f7dfbfc67a313d1ecdd81c0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/9ab546d9054b34feb2cb728349f6b8e8f18d4c43", - "reference": "9ab546d9054b34feb2cb728349f6b8e8f18d4c43", + "url": "https://api.github.com/repos/symfony/intl/zipball/04726ae6cec43582f7dfbfc67a313d1ecdd81c0f", + "reference": "04726ae6cec43582f7dfbfc67a313d1ecdd81c0f", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "symfony/filesystem": "^5.4|^6.0" + "symfony/filesystem": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -4686,7 +4619,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.1.6" + "source": "https://github.com/symfony/intl/tree/v6.2.0" }, "funding": [ { @@ -4702,20 +4635,20 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/mailer", - "version": "v6.1.5", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e1b32deb9efc48def0c76b876860ad36f2123e89" + "reference": "7b355fca167fa5302c77bccdfa0af4d7abc6bd8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e1b32deb9efc48def0c76b876860ad36f2123e89", - "reference": "e1b32deb9efc48def0c76b876860ad36f2123e89", + "url": "https://api.github.com/repos/symfony/mailer/zipball/7b355fca167fa5302c77bccdfa0af4d7abc6bd8c", + "reference": "7b355fca167fa5302c77bccdfa0af4d7abc6bd8c", "shasum": "" }, "require": { @@ -4724,15 +4657,19 @@ "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", + "symfony/mime": "^6.2", "symfony/service-contracts": "^1.1|^2|^3" }, "conflict": { - "symfony/http-kernel": "<5.4" + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2" }, "require-dev": { + "symfony/console": "^5.4|^6.0", "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/messenger": "^5.4|^6.0" + "symfony/messenger": "^6.2", + "symfony/twig-bridge": "^6.2" }, "type": "library", "autoload": { @@ -4760,7 +4697,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.1.5" + "source": "https://github.com/symfony/mailer/tree/v6.2.0" }, "funding": [ { @@ -4776,20 +4713,20 @@ "type": "tidelift" } ], - "time": "2022-08-29T06:58:39+00:00" + "time": "2022-11-28T17:18:31+00:00" }, { "name": "symfony/mime", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "5ae192b9a39730435cfec025a499f79d05ac68a3" + "reference": "1e8005a7cbd79fb824ad81308ef2a76592a08bc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/5ae192b9a39730435cfec025a499f79d05ac68a3", - "reference": "5ae192b9a39730435cfec025a499f79d05ac68a3", + "url": "https://api.github.com/repos/symfony/mime/zipball/1e8005a7cbd79fb824ad81308ef2a76592a08bc0", + "reference": "1e8005a7cbd79fb824ad81308ef2a76592a08bc0", "shasum": "" }, "require": { @@ -4802,15 +4739,16 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" + "symfony/serializer": "<6.2" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", + "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": "^5.4.14|~6.0.14|^6.1.6" + "symfony/serializer": "^6.2" }, "type": "library", "autoload": { @@ -4842,7 +4780,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.1.6" + "source": "https://github.com/symfony/mime/tree/v6.2.0" }, "funding": [ { @@ -4858,20 +4796,20 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-28T12:28:19+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v6.1.2", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "1efd6a42b1dc80e03bd74d4a2fdc85e728dc2627" + "reference": "a549937e3d2da2753fdf816b05cc4fec8e5d68da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/1efd6a42b1dc80e03bd74d4a2fdc85e728dc2627", - "reference": "1efd6a42b1dc80e03bd74d4a2fdc85e728dc2627", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/a549937e3d2da2753fdf816b05cc4fec8e5d68da", + "reference": "a549937e3d2da2753fdf816b05cc4fec8e5d68da", "shasum": "" }, "require": { @@ -4925,7 +4863,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.1.2" + "source": "https://github.com/symfony/monolog-bridge/tree/v6.2.0" }, "funding": [ { @@ -4941,7 +4879,7 @@ "type": "tidelift" } ], - "time": "2022-06-21T08:28:57+00:00" + "time": "2022-10-20T07:00:24+00:00" }, { "name": "symfony/monolog-bundle", @@ -5026,16 +4964,16 @@ }, { "name": "symfony/options-resolver", - "version": "v6.1.0", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "a3016f5442e28386ded73c43a32a5b68586dd1c4" + "reference": "d28f02acde71ff75e957082cd36e973df395f626" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a3016f5442e28386ded73c43a32a5b68586dd1c4", - "reference": "a3016f5442e28386ded73c43a32a5b68586dd1c4", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/d28f02acde71ff75e957082cd36e973df395f626", + "reference": "d28f02acde71ff75e957082cd36e973df395f626", "shasum": "" }, "require": { @@ -5073,7 +5011,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.1.0" + "source": "https://github.com/symfony/options-resolver/tree/v6.2.0" }, "funding": [ { @@ -5089,20 +5027,20 @@ "type": "tidelift" } ], - "time": "2022-02-25T11:15:52+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/password-hasher", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "264894821636b77bb8282db6ec33b8b07b7a0678" + "reference": "955ce6bdbb53933897043ad00776a88ba916208a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/264894821636b77bb8282db6ec33b8b07b7a0678", - "reference": "264894821636b77bb8282db6ec33b8b07b7a0678", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/955ce6bdbb53933897043ad00776a88ba916208a", + "reference": "955ce6bdbb53933897043ad00776a88ba916208a", "shasum": "" }, "require": { @@ -5145,7 +5083,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.1.3" + "source": "https://github.com/symfony/password-hasher/tree/v6.2.0" }, "funding": [ { @@ -5161,20 +5099,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T14:45:06+00:00" + "time": "2022-09-01T02:03:18+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "" }, "require": { @@ -5189,7 +5127,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5227,7 +5165,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -5243,20 +5181,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "433d05519ce6990bf3530fba6957499d327395c2" + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", - "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", "shasum": "" }, "require": { @@ -5268,7 +5206,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5308,7 +5246,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" }, "funding": [ { @@ -5324,20 +5262,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "e407643d610e5f2c8a4b14189150f68934bf5e48" + "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e407643d610e5f2c8a4b14189150f68934bf5e48", - "reference": "e407643d610e5f2c8a4b14189150f68934bf5e48", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/a3d9148e2c363588e05abbdd4ee4f971f0a5330c", + "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c", "shasum": "" }, "require": { @@ -5349,7 +5287,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5395,7 +5333,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.27.0" }, "funding": [ { @@ -5411,20 +5349,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + "reference": "639084e360537a19f9ee352433b84ce831f3d2da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da", "shasum": "" }, "require": { @@ -5438,7 +5376,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5482,7 +5420,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" }, "funding": [ { @@ -5498,20 +5436,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-messageformatter", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-messageformatter.git", - "reference": "5c17bd6ee46b77d6bbb002c5a51ac1d5b5bb1452" + "reference": "861fe322b162bc23822a1ee0bd62d5c7eef8c6c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-messageformatter/zipball/5c17bd6ee46b77d6bbb002c5a51ac1d5b5bb1452", - "reference": "5c17bd6ee46b77d6bbb002c5a51ac1d5b5bb1452", + "url": "https://api.github.com/repos/symfony/polyfill-intl-messageformatter/zipball/861fe322b162bc23822a1ee0bd62d5c7eef8c6c7", + "reference": "861fe322b162bc23822a1ee0bd62d5c7eef8c6c7", "shasum": "" }, "require": { @@ -5523,7 +5461,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5566,7 +5504,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-messageformatter/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-messageformatter/tree/v1.27.0" }, "funding": [ { @@ -5582,20 +5520,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", "shasum": "" }, "require": { @@ -5607,7 +5545,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5650,7 +5588,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" }, "funding": [ { @@ -5666,20 +5604,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "" }, "require": { @@ -5694,7 +5632,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -5733,7 +5671,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -5749,24 +5687,25 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/property-access", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "25108ee9b62d6ef0815007d9c7cf6a7ba40bb7c5" + "reference": "ed937ca8e103fdcefb43020c8784f87d3e5d09c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/25108ee9b62d6ef0815007d9c7cf6a7ba40bb7c5", - "reference": "25108ee9b62d6ef0815007d9c7cf6a7ba40bb7c5", + "url": "https://api.github.com/repos/symfony/property-access/zipball/ed937ca8e103fdcefb43020c8784f87d3e5d09c3", + "reference": "ed937ca8e103fdcefb43020c8784f87d3e5d09c3", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/property-info": "^5.4|^6.0" }, "require-dev": { @@ -5812,7 +5751,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v6.1.3" + "source": "https://github.com/symfony/property-access/tree/v6.2.0" }, "funding": [ { @@ -5828,20 +5767,20 @@ "type": "tidelift" } ], - "time": "2022-06-27T17:24:16+00:00" + "time": "2022-10-28T16:24:13+00:00" }, { "name": "symfony/property-info", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "f28d0db9d2687f81d68d0dc6b2e42817647f5d64" + "reference": "ddfa5c49812d7bcfea21f9ad5341092daa82e4cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/f28d0db9d2687f81d68d0dc6b2e42817647f5d64", - "reference": "f28d0db9d2687f81d68d0dc6b2e42817647f5d64", + "url": "https://api.github.com/repos/symfony/property-info/zipball/ddfa5c49812d7bcfea21f9ad5341092daa82e4cc", + "reference": "ddfa5c49812d7bcfea21f9ad5341092daa82e4cc", "shasum": "" }, "require": { @@ -5901,7 +5840,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.1.6" + "source": "https://github.com/symfony/property-info/tree/v6.2.0" }, "funding": [ { @@ -5917,20 +5856,20 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-25T07:37:13+00:00" }, { "name": "symfony/routing", - "version": "v6.1.5", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c" + "reference": "857ac6f4df371470fbdefa2f5967a2618dbf1852" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c", - "reference": "f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c", + "url": "https://api.github.com/repos/symfony/routing/zipball/857ac6f4df371470fbdefa2f5967a2618dbf1852", + "reference": "857ac6f4df371470fbdefa2f5967a2618dbf1852", "shasum": "" }, "require": { @@ -5938,14 +5877,14 @@ }, "conflict": { "doctrine/annotations": "<1.12", - "symfony/config": "<5.4", + "symfony/config": "<6.2", "symfony/dependency-injection": "<5.4", "symfony/yaml": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", + "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", @@ -5989,7 +5928,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.1.5" + "source": "https://github.com/symfony/routing/tree/v6.2.0" }, "funding": [ { @@ -6005,20 +5944,20 @@ "type": "tidelift" } ], - "time": "2022-09-09T09:26:14+00:00" + "time": "2022-11-09T13:28:29+00:00" }, { "name": "symfony/runtime", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "e5d4d848656cbb1812d5f911b1bdec205c6e2fac" + "reference": "45a63a5885f92741c8def9cbd81c925e6b5b891d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/e5d4d848656cbb1812d5f911b1bdec205c6e2fac", - "reference": "e5d4d848656cbb1812d5f911b1bdec205c6e2fac", + "url": "https://api.github.com/repos/symfony/runtime/zipball/45a63a5885f92741c8def9cbd81c925e6b5b891d", + "reference": "45a63a5885f92741c8def9cbd81c925e6b5b891d", "shasum": "" }, "require": { @@ -6065,7 +6004,7 @@ "description": "Enables decoupling PHP applications from global state", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/runtime/tree/v6.1.3" + "source": "https://github.com/symfony/runtime/tree/v6.2.0" }, "funding": [ { @@ -6081,35 +6020,35 @@ "type": "tidelift" } ], - "time": "2022-06-27T17:24:16+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/security-bundle", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "1410129e36e5d0cf4bde73f4ed5d9e18acff06b3" + "reference": "25494608506638bcc004dcca6a36682aa425f1ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/1410129e36e5d0cf4bde73f4ed5d9e18acff06b3", - "reference": "1410129e36e5d0cf4bde73f4ed5d9e18acff06b3", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/25494608506638bcc004dcca6a36682aa425f1ea", + "reference": "25494608506638bcc004dcca6a36682aa425f1ea", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "ext-xml": "*", "php": ">=8.1", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", + "symfony/config": "^6.1", + "symfony/dependency-injection": "^6.2", "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", + "symfony/http-foundation": "^6.2", + "symfony/http-kernel": "^6.2", "symfony/password-hasher": "^5.4|^6.0", - "symfony/security-core": "^5.4|^6.0", + "symfony/security-core": "^6.2", "symfony/security-csrf": "^5.4|^6.0", - "symfony/security-http": "^5.4|^6.0" + "symfony/security-http": "^6.2" }, "conflict": { "symfony/browser-kit": "<5.4", @@ -6165,7 +6104,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.1.3" + "source": "https://github.com/symfony/security-bundle/tree/v6.2.0" }, "funding": [ { @@ -6181,20 +6120,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:46:29+00:00" + "time": "2022-11-30T13:46:03+00:00" }, { "name": "symfony/security-core", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "e42fb611d1a36e6e1e34f8cd715cea108a39cad5" + "reference": "aa8d792c3f4fd48f64e4be8f426a220c8fc8ac14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/e42fb611d1a36e6e1e34f8cd715cea108a39cad5", - "reference": "e42fb611d1a36e6e1e34f8cd715cea108a39cad5", + "url": "https://api.github.com/repos/symfony/security-core/zipball/aa8d792c3f4fd48f64e4be8f426a220c8fc8ac14", + "reference": "aa8d792c3f4fd48f64e4be8f426a220c8fc8ac14", "shasum": "" }, "require": { @@ -6256,7 +6195,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.1.6" + "source": "https://github.com/symfony/security-core/tree/v6.2.0" }, "funding": [ { @@ -6272,20 +6211,20 @@ "type": "tidelift" } ], - "time": "2022-10-02T08:30:52+00:00" + "time": "2022-11-18T07:19:04+00:00" }, { "name": "symfony/security-csrf", - "version": "v6.1.0", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "b44d74295a5651298de8c2760ba50bef3b97f34b" + "reference": "12d6ef4695f522566639e58b929d90e25b509379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/b44d74295a5651298de8c2760ba50bef3b97f34b", - "reference": "b44d74295a5651298de8c2760ba50bef3b97f34b", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/12d6ef4695f522566639e58b929d90e25b509379", + "reference": "12d6ef4695f522566639e58b929d90e25b509379", "shasum": "" }, "require": { @@ -6327,7 +6266,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v6.1.0" + "source": "https://github.com/symfony/security-csrf/tree/v6.2.0" }, "funding": [ { @@ -6343,29 +6282,30 @@ "type": "tidelift" } ], - "time": "2022-05-14T12:53:54+00:00" + "time": "2022-11-21T18:36:40+00:00" }, { "name": "symfony/security-http", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "789492510f7127035da8bb5dbb4fb745970e2348" + "reference": "14c79cf944acf24511b22eca631f5524b3d091a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/789492510f7127035da8bb5dbb4fb745970e2348", - "reference": "789492510f7127035da8bb5dbb4fb745970e2348", + "url": "https://api.github.com/repos/symfony/security-http/zipball/14c79cf944acf24511b22eca631f5524b3d091a8", + "reference": "14c79cf944acf24511b22eca631f5524b3d091a8", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^6.1", + "symfony/http-kernel": "^6.2", "symfony/polyfill-mbstring": "~1.0", "symfony/property-access": "^5.4|^6.0", - "symfony/security-core": "^5.4.7|^6.0" + "symfony/security-core": "^6.0" }, "conflict": { "symfony/event-dispatcher": "<5.4.9|>=6,<6.0.9", @@ -6375,6 +6315,7 @@ "require-dev": { "psr/log": "^1|^2|^3", "symfony/cache": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", "symfony/rate-limiter": "^5.4|^6.0", "symfony/routing": "^5.4|^6.0", "symfony/security-csrf": "^5.4|^6.0", @@ -6410,7 +6351,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.1.6" + "source": "https://github.com/symfony/security-http/tree/v6.2.0" }, "funding": [ { @@ -6426,7 +6367,7 @@ "type": "tidelift" } ], - "time": "2022-10-01T16:55:12+00:00" + "time": "2022-11-30T17:18:15+00:00" }, { "name": "symfony/service-contracts", @@ -6515,7 +6456,7 @@ }, { "name": "symfony/stopwatch", - "version": "v6.1.5", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", @@ -6557,7 +6498,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.1.5" + "source": "https://github.com/symfony/stopwatch/tree/v6.2.0" }, "funding": [ { @@ -6577,16 +6518,16 @@ }, { "name": "symfony/string", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "7e7e0ff180d4c5a6636eaad57b65092014b61864" + "reference": "145702685e0d12f81d755c71127bfff7582fdd36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/7e7e0ff180d4c5a6636eaad57b65092014b61864", - "reference": "7e7e0ff180d4c5a6636eaad57b65092014b61864", + "url": "https://api.github.com/repos/symfony/string/zipball/145702685e0d12f81d755c71127bfff7582fdd36", + "reference": "145702685e0d12f81d755c71127bfff7582fdd36", "shasum": "" }, "require": { @@ -6602,6 +6543,7 @@ "require-dev": { "symfony/error-handler": "^5.4|^6.0", "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", "symfony/translation-contracts": "^2.0|^3.0", "symfony/var-exporter": "^5.4|^6.0" }, @@ -6642,7 +6584,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.1.6" + "source": "https://github.com/symfony/string/tree/v6.2.0" }, "funding": [ { @@ -6658,20 +6600,20 @@ "type": "tidelift" } ], - "time": "2022-10-10T09:34:31+00:00" + "time": "2022-11-30T17:13:47+00:00" }, { "name": "symfony/translation", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "e6cd330e5a072518f88d65148f3f165541807494" + "reference": "c08de62caead8357244efcb809d0b1a2584f2198" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/e6cd330e5a072518f88d65148f3f165541807494", - "reference": "e6cd330e5a072518f88d65148f3f165541807494", + "url": "https://api.github.com/repos/symfony/translation/zipball/c08de62caead8357244efcb809d0b1a2584f2198", + "reference": "c08de62caead8357244efcb809d0b1a2584f2198", "shasum": "" }, "require": { @@ -6691,6 +6633,7 @@ "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { + "nikic/php-parser": "^4.13", "psr/log": "^1|^2|^3", "symfony/config": "^5.4|^6.0", "symfony/console": "^5.4|^6.0", @@ -6705,6 +6648,7 @@ "symfony/yaml": "^5.4|^6.0" }, "suggest": { + "nikic/php-parser": "To use PhpAstExtractor", "psr/log-implementation": "To use logging capability in translator", "symfony/config": "", "symfony/yaml": "" @@ -6738,7 +6682,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.1.6" + "source": "https://github.com/symfony/translation/tree/v6.2.0" }, "funding": [ { @@ -6754,7 +6698,7 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/translation-contracts", @@ -6839,16 +6783,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "368e9bac2dbaed85d943745b521077f8101b599d" + "reference": "45f9070b3409871237782135330acd7cc7d39b42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/368e9bac2dbaed85d943745b521077f8101b599d", - "reference": "368e9bac2dbaed85d943745b521077f8101b599d", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/45f9070b3409871237782135330acd7cc7d39b42", + "reference": "45f9070b3409871237782135330acd7cc7d39b42", "shasum": "" }, "require": { @@ -6862,13 +6806,15 @@ "symfony/console": "<5.4", "symfony/form": "<6.1", "symfony/http-foundation": "<5.4", - "symfony/http-kernel": "<5.4", + "symfony/http-kernel": "<6.2", + "symfony/mime": "<6.2", "symfony/translation": "<5.4", "symfony/workflow": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12", "egulias/email-validator": "^2.1.10|^3", + "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/asset": "^5.4|^6.0", "symfony/console": "^5.4|^6.0", @@ -6878,9 +6824,9 @@ "symfony/form": "^6.1", "symfony/html-sanitizer": "^6.1", "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", + "symfony/http-kernel": "^6.2", "symfony/intl": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", + "symfony/mime": "^6.2", "symfony/polyfill-intl-icu": "~1.0", "symfony/property-info": "^5.4|^6.0", "symfony/routing": "^5.4|^6.0", @@ -6888,7 +6834,7 @@ "symfony/security-core": "^5.4|^6.0", "symfony/security-csrf": "^5.4|^6.0", "symfony/security-http": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0", + "symfony/serializer": "^6.2", "symfony/stopwatch": "^5.4|^6.0", "symfony/translation": "^5.4|^6.0", "symfony/web-link": "^5.4|^6.0", @@ -6941,7 +6887,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.1.6" + "source": "https://github.com/symfony/twig-bridge/tree/v6.2.0" }, "funding": [ { @@ -6957,31 +6903,30 @@ "type": "tidelift" } ], - "time": "2022-10-12T05:10:31+00:00" + "time": "2022-11-04T07:42:34+00:00" }, { "name": "symfony/twig-bundle", - "version": "v6.1.1", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "a2abab10068525a7f5a879e40e411d369d688545" + "reference": "d1dfb3c8fbe7e70cef86a8940f6a86544c99e9b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/a2abab10068525a7f5a879e40e411d369d688545", - "reference": "a2abab10068525a7f5a879e40e411d369d688545", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d1dfb3c8fbe7e70cef86a8940f6a86544c99e9b1", + "reference": "d1dfb3c8fbe7e70cef86a8940f6a86544c99e9b1", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "php": ">=8.1", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", + "symfony/config": "^6.1", + "symfony/dependency-injection": "^6.1", "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/twig-bridge": "^5.4|^6.0", + "symfony/http-kernel": "^6.2", + "symfony/twig-bridge": "^6.2", "twig/twig": "^2.13|^3.0.4" }, "conflict": { @@ -7027,7 +6972,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.1.1" + "source": "https://github.com/symfony/twig-bundle/tree/v6.2.0" }, "funding": [ { @@ -7043,20 +6988,20 @@ "type": "tidelift" } ], - "time": "2022-05-27T16:55:36+00:00" + "time": "2022-09-13T06:25:34+00:00" }, { "name": "symfony/validator", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "e5589882403e1e19774d7c5ffb65d9c6466d216c" + "reference": "0f74ad1cab71f5899dca8233db774a50f8656de0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/e5589882403e1e19774d7c5ffb65d9c6466d216c", - "reference": "e5589882403e1e19774d7c5ffb65d9c6466d216c", + "url": "https://api.github.com/repos/symfony/validator/zipball/0f74ad1cab71f5899dca8233db774a50f8656de0", + "reference": "0f74ad1cab71f5899dca8233db774a50f8656de0", "shasum": "" }, "require": { @@ -7135,7 +7080,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.1.6" + "source": "https://github.com/symfony/validator/tree/v6.2.0" }, "funding": [ { @@ -7151,20 +7096,20 @@ "type": "tidelift" } ], - "time": "2022-10-02T08:30:52+00:00" + "time": "2022-11-25T08:42:40+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0f0adde127f24548e23cbde83bcaeadc491c551f" + "reference": "6228b11059d7b279be699682f164a107ba9a268d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0f0adde127f24548e23cbde83bcaeadc491c551f", - "reference": "0f0adde127f24548e23cbde83bcaeadc491c551f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6228b11059d7b279be699682f164a107ba9a268d", + "reference": "6228b11059d7b279be699682f164a107ba9a268d", "shasum": "" }, "require": { @@ -7223,7 +7168,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.1.6" + "source": "https://github.com/symfony/var-dumper/tree/v6.2.0" }, "funding": [ { @@ -7239,20 +7184,20 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-28T13:41:56+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef" + "reference": "0437f26ca0c648071cc15ddacd26152cc65f4cd6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b49350f45cebbba6e5286485264b912f2bcfc9ef", - "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0437f26ca0c648071cc15ddacd26152cc65f4cd6", + "reference": "0437f26ca0c648071cc15ddacd26152cc65f4cd6", "shasum": "" }, "require": { @@ -7292,10 +7237,12 @@ "export", "hydrate", "instantiate", + "lazy loading", + "proxy", "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.1.3" + "source": "https://github.com/symfony/var-exporter/tree/v6.2.0" }, "funding": [ { @@ -7311,7 +7258,7 @@ "type": "tidelift" } ], - "time": "2022-07-04T16:01:56+00:00" + "time": "2022-11-25T08:33:31+00:00" }, { "name": "symfony/webpack-encore-bundle", @@ -7388,16 +7335,16 @@ }, { "name": "symfony/yaml", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "66c6b0cf52b00f74614a2cf7ae7db08ea1095931" + "reference": "f2570f21bd4adc3589aa3133323273995109bae0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/66c6b0cf52b00f74614a2cf7ae7db08ea1095931", - "reference": "66c6b0cf52b00f74614a2cf7ae7db08ea1095931", + "url": "https://api.github.com/repos/symfony/yaml/zipball/f2570f21bd4adc3589aa3133323273995109bae0", + "reference": "f2570f21bd4adc3589aa3133323273995109bae0", "shasum": "" }, "require": { @@ -7442,7 +7389,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.1.6" + "source": "https://github.com/symfony/yaml/tree/v6.2.0" }, "funding": [ { @@ -7458,7 +7405,7 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-25T19:00:27+00:00" }, { "name": "twig/extra-bundle", @@ -7993,16 +7940,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.1", + "version": "v4.15.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", - "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", "shasum": "" }, "require": { @@ -8043,22 +7990,22 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" }, - "time": "2022-09-04T07:30:47+00:00" + "time": "2022-11-12T15:38:23+00:00" }, { "name": "phpstan/phpstan", - "version": "1.8.11", + "version": "1.9.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "46e223dd68a620da18855c23046ddb00940b4014" + "reference": "d6fdf01c53978b6429f1393ba4afeca39cc68afa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46e223dd68a620da18855c23046ddb00940b4014", - "reference": "46e223dd68a620da18855c23046ddb00940b4014", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d6fdf01c53978b6429f1393ba4afeca39cc68afa", + "reference": "d6fdf01c53978b6429f1393ba4afeca39cc68afa", "shasum": "" }, "require": { @@ -8088,7 +8035,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.8.11" + "source": "https://github.com/phpstan/phpstan/tree/1.9.2" }, "funding": [ { @@ -8104,20 +8051,20 @@ "type": "tidelift" } ], - "time": "2022-10-24T15:45:13+00:00" + "time": "2022-11-10T09:56:11+00:00" }, { "name": "symfony/browser-kit", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "2e3b6a4406c2af963c634d7bd0457402b67dcc56" + "reference": "5602fcc9a2a696f1743050ffcafa30741da94227" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2e3b6a4406c2af963c634d7bd0457402b67dcc56", - "reference": "2e3b6a4406c2af963c634d7bd0457402b67dcc56", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/5602fcc9a2a696f1743050ffcafa30741da94227", + "reference": "5602fcc9a2a696f1743050ffcafa30741da94227", "shasum": "" }, "require": { @@ -8159,7 +8106,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.1.3" + "source": "https://github.com/symfony/browser-kit/tree/v6.2.0" }, "funding": [ { @@ -8175,20 +8122,20 @@ "type": "tidelift" } ], - "time": "2022-07-27T15:50:51+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/css-selector", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "0dd5e36b80e1de97f8f74ed7023ac2b837a36443" + "reference": "91c342ffc99283c43653ed8eb47bc2a94db7f398" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/0dd5e36b80e1de97f8f74ed7023ac2b837a36443", - "reference": "0dd5e36b80e1de97f8f74ed7023ac2b837a36443", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/91c342ffc99283c43653ed8eb47bc2a94db7f398", + "reference": "91c342ffc99283c43653ed8eb47bc2a94db7f398", "shasum": "" }, "require": { @@ -8224,7 +8171,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.1.3" + "source": "https://github.com/symfony/css-selector/tree/v6.2.0" }, "funding": [ { @@ -8240,20 +8187,20 @@ "type": "tidelift" } ], - "time": "2022-06-27T17:24:16+00:00" + "time": "2022-08-26T05:51:22+00:00" }, { "name": "symfony/debug-bundle", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/debug-bundle.git", - "reference": "4084f86639bf0270d6dd2225fc8d7c317780dd6b" + "reference": "edf89d327c6dce1224d498421715e41257d85994" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/4084f86639bf0270d6dd2225fc8d7c317780dd6b", - "reference": "4084f86639bf0270d6dd2225fc8d7c317780dd6b", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/edf89d327c6dce1224d498421715e41257d85994", + "reference": "edf89d327c6dce1224d498421715e41257d85994", "shasum": "" }, "require": { @@ -8302,7 +8249,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.1.3" + "source": "https://github.com/symfony/debug-bundle/tree/v6.2.0" }, "funding": [ { @@ -8318,20 +8265,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:46:29+00:00" + "time": "2022-09-12T16:11:19+00:00" }, { "name": "symfony/dom-crawler", - "version": "v6.1.4", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "8cb4c6e6c8d30c26f70529ed5e50d79a09576c0c" + "reference": "c079db42bed39928fc77a24307cbfff7ac7757f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8cb4c6e6c8d30c26f70529ed5e50d79a09576c0c", - "reference": "8cb4c6e6c8d30c26f70529ed5e50d79a09576c0c", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c079db42bed39928fc77a24307cbfff7ac7757f7", + "reference": "c079db42bed39928fc77a24307cbfff7ac7757f7", "shasum": "" }, "require": { @@ -8372,7 +8319,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.1.4" + "source": "https://github.com/symfony/dom-crawler/tree/v6.2.0" }, "funding": [ { @@ -8388,20 +8335,20 @@ "type": "tidelift" } ], - "time": "2022-08-04T19:19:00+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/maker-bundle", - "version": "v1.47.0", + "version": "v1.48.0", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "e607f129d29a6c1e9a9e1ef3d229d653311d58f3" + "reference": "2e428e8432e9879187672fe08f1cc335e2a31dd6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/e607f129d29a6c1e9a9e1ef3d229d653311d58f3", - "reference": "e607f129d29a6c1e9a9e1ef3d229d653311d58f3", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/2e428e8432e9879187672fe08f1cc335e2a31dd6", + "reference": "2e428e8432e9879187672fe08f1cc335e2a31dd6", "shasum": "" }, "require": { @@ -8465,7 +8412,7 @@ ], "support": { "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.47.0" + "source": "https://github.com/symfony/maker-bundle/tree/v1.48.0" }, "funding": [ { @@ -8481,20 +8428,20 @@ "type": "tidelift" } ], - "time": "2022-10-04T15:05:10+00:00" + "time": "2022-11-14T10:48:46+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "07cf788ac9ae83b59d46599bb5098c3add88c68b" + "reference": "1bd3b17db6d2ec284efbdc916600e880d6d858df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/07cf788ac9ae83b59d46599bb5098c3add88c68b", - "reference": "07cf788ac9ae83b59d46599bb5098c3add88c68b", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/1bd3b17db6d2ec284efbdc916600e880d6d858df", + "reference": "1bd3b17db6d2ec284efbdc916600e880d6d858df", "shasum": "" }, "require": { @@ -8548,7 +8495,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.1.6" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.2.0" }, "funding": [ { @@ -8564,20 +8511,20 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-11-18T19:08:09+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v6.1.6", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "45d05cd8e967fd06bb1f66f748ed308c00674d32" + "reference": "94d1b790e3113c9c65b87e27325ca321f02afb2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/45d05cd8e967fd06bb1f66f748ed308c00674d32", - "reference": "45d05cd8e967fd06bb1f66f748ed308c00674d32", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/94d1b790e3113c9c65b87e27325ca321f02afb2f", + "reference": "94d1b790e3113c9c65b87e27325ca321f02afb2f", "shasum": "" }, "require": { @@ -8626,7 +8573,7 @@ "description": "Provides a development tool that gives detailed information about the execution of any request", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.1.6" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.2.0" }, "funding": [ { @@ -8642,12 +8589,14 @@ "type": "tidelift" } ], - "time": "2022-10-02T08:30:52+00:00" + "time": "2022-11-21T16:07:56+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "doctrine/doctrine-bundle": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { diff --git a/config/bundles.php b/config/bundles.php index f9091a193..5df8bc94a 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -4,7 +4,6 @@ Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], - Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true], diff --git a/config/packages/assets.yaml b/config/packages/assets.yaml deleted file mode 100644 index b538bd8e6..000000000 --- a/config/packages/assets.yaml +++ /dev/null @@ -1,2 +0,0 @@ -framework: - assets: ~ diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml index 140fb8662..2fce576c5 100644 --- a/config/packages/doctrine.yaml +++ b/config/packages/doctrine.yaml @@ -4,7 +4,7 @@ doctrine: # IMPORTANT: You MUST configure your server version, # either here or in the DATABASE_URL env var (see .env file) - #server_version: '13' + #server_version: '14' orm: auto_generate_proxy_classes: true naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware @@ -17,6 +17,12 @@ doctrine: prefix: 'App\Entity' alias: App +when@test: + doctrine: + dbal: + # "TEST_TOKEN" is typically set by ParaTest + dbname_suffix: '_test%env(default::TEST_TOKEN)%' + when@prod: doctrine: orm: @@ -35,9 +41,3 @@ when@prod: adapter: cache.app doctrine.system_cache_pool: adapter: cache.system - -when@test: - doctrine: - dbal: - # "TEST_TOKEN" is typically set by ParaTest - dbname_suffix: '_test%env(default::TEST_TOKEN)%' diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml index a0a17a084..29231d94b 100644 --- a/config/packages/doctrine_migrations.yaml +++ b/config/packages/doctrine_migrations.yaml @@ -3,4 +3,4 @@ doctrine_migrations: # namespace is arbitrary but should be different from App\Migrations # as migrations classes should NOT be autoloaded 'DoctrineMigrations': '%kernel.project_dir%/migrations' - enable_profiler: '%kernel.debug%' + enable_profiler: false diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml index 552a10707..51bebaba3 100644 --- a/config/packages/framework.yaml +++ b/config/packages/framework.yaml @@ -3,6 +3,7 @@ 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. # Remove or comment this section to explicitly disable session support. diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml index 7e0cb4bc3..bb524db0e 100644 --- a/config/packages/monolog.yaml +++ b/config/packages/monolog.yaml @@ -1,3 +1,7 @@ +monolog: + channels: + - deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists + when@dev: monolog: handlers: @@ -19,7 +23,7 @@ when@dev: process_psr_3_messages: false channels: ["!event", "!doctrine", "!console"] -when@prod: +when@test: monolog: handlers: main: @@ -27,18 +31,13 @@ when@prod: action_level: error handler: nested excluded_http_codes: [ 404, 405 ] - buffer_size: 50 # How many messages should be saved? Prevent memory leaks + channels: [ "!event" ] nested: type: stream - path: php://stderr + path: "%kernel.logs_dir%/%kernel.environment%.log" level: debug - formatter: monolog.formatter.json - console: - type: console - process_psr_3_messages: false - channels: [ "!event", "!doctrine" ] -when@test: +when@prod: monolog: handlers: main: @@ -46,8 +45,17 @@ when@test: action_level: error handler: nested excluded_http_codes: [ 404, 405 ] - channels: [ "!event" ] + buffer_size: 50 # How many messages should be saved? Prevent memory leaks nested: type: stream - path: "%kernel.logs_dir%/%kernel.environment%.log" + path: php://stderr level: debug + formatter: monolog.formatter.json + console: + type: console + process_psr_3_messages: false + channels: [ "!event", "!doctrine" ] + deprecation: + type: stream + channels: [deprecation] + path: php://stderr diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 2a598ecc1..4e90936e2 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -1,9 +1,4 @@ security: - # a new authentication system is available since Symfony 5.1 to make - # Symfony security more extensible and easier to understand - # https://symfony.com/doc/current/security.html - enable_authenticator_manager: true - password_hashers: # Our user class and the algorithm we'll use to encode passwords # 'auto' means to let Symfony choose the best possible password hasher (Argon2 or Bcrypt) @@ -83,6 +78,17 @@ when@test: # this configuration simplifies testing URLs protected by the security mechanism # See https://symfony.com/doc/current/testing/http_authentication.html security: + password_hashers: + # By default, password hashers are resource intensive and take time. This is + # important to generate secure password hashes. In tests however, secure hashes + # are not important, waste resources and increase test times. The following + # reduces the work factor to the lowest possible values. + Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: + algorithm: auto + cost: 4 # Lowest possible value for bcrypt + time_cost: 3 # Lowest possible value for argon + memory_cost: 10 # Lowest possible value for argon + firewalls: main: http_basic: ~ diff --git a/config/packages/sensio_framework_extra.yaml b/config/packages/sensio_framework_extra.yaml deleted file mode 100644 index 1821ccc07..000000000 --- a/config/packages/sensio_framework_extra.yaml +++ /dev/null @@ -1,3 +0,0 @@ -sensio_framework_extra: - router: - annotations: false diff --git a/config/packages/web_profiler.yaml b/config/packages/web_profiler.yaml index 17893da18..b94611102 100644 --- a/config/packages/web_profiler.yaml +++ b/config/packages/web_profiler.yaml @@ -4,7 +4,9 @@ when@dev: intercept_redirects: false framework: - profiler: { only_exceptions: false } + profiler: + only_exceptions: false + collect_serializer_data: true when@test: web_profiler: diff --git a/config/packages/webpack_encore.yaml b/config/packages/webpack_encore.yaml index 7d7d978dd..de1a214ca 100644 --- a/config/packages/webpack_encore.yaml +++ b/config/packages/webpack_encore.yaml @@ -34,8 +34,12 @@ webpack_encore: # Put in config/packages/prod/webpack_encore.yaml # cache: true -when@prod: - #webpack_encore: - # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes) - # Available in version 1.2 - #cache: true +#when@prod: +# webpack_encore: +# # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes) +# # Available in version 1.2 +# cache: true + +#when@test: +# webpack_encore: +# strict_mode: false diff --git a/config/routes.yaml b/config/routes.yaml index 21586e16b..cff373ec0 100644 --- a/config/routes.yaml +++ b/config/routes.yaml @@ -10,3 +10,14 @@ homepage: defaults: template: default/homepage.html.twig _locale: '%locale%' + +controllers: + resource: + path: '../src/Controller/' + namespace: App\Controller + type: attribute + prefix: /{_locale} + requirements: + _locale: '%app_locales%' + defaults: + _locale: '%locale%' diff --git a/config/routes/annotations.yaml b/config/routes/annotations.yaml deleted file mode 100644 index 3c41b75b0..000000000 --- a/config/routes/annotations.yaml +++ /dev/null @@ -1,8 +0,0 @@ -controllers: - resource: '../../src/Controller/' - type: annotation - prefix: /{_locale} - requirements: - _locale: '%app_locales%' - defaults: - _locale: '%locale%' diff --git a/config/routes/dev/web_profiler.yaml b/config/routes/dev/web_profiler.yaml deleted file mode 100644 index c82beff2f..000000000 --- a/config/routes/dev/web_profiler.yaml +++ /dev/null @@ -1,7 +0,0 @@ -web_profiler_wdt: - resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' - prefix: /_wdt - -web_profiler_profiler: - resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' - prefix: /_profiler diff --git a/config/routes/web_profiler.yaml b/config/routes/web_profiler.yaml new file mode 100644 index 000000000..8d85319fd --- /dev/null +++ b/config/routes/web_profiler.yaml @@ -0,0 +1,8 @@ +when@dev: + web_profiler_wdt: + resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' + prefix: /_wdt + + web_profiler_profiler: + resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' + prefix: /_profiler diff --git a/config/services.yaml b/config/services.yaml index 2c46868f2..83b5517f4 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -27,7 +27,6 @@ services: - '../src/DependencyInjection/' - '../src/Entity/' - '../src/Kernel.php' - - '../src/Tests/' # when the service definition only contains arguments, you can omit the # 'arguments' key and define the arguments just below the service class diff --git a/package.json b/package.json index cecd74a6b..128a3ac4b 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "devDependencies": { "@fortawesome/fontawesome-free": "^5.8.1", - "@symfony/stimulus-bridge": "^2.0.0", - "@symfony/webpack-encore": "^1.0.0", + "@symfony/stimulus-bridge": "^3.2.0", + "@symfony/webpack-encore": "^4.0.0", "bloodhound-js": "^1.2.3", "bootstrap-sass": "^3.3.7", "bootstrap-tagsinput": "^0.7.1", "bootswatch": "^3.3.7", - "core-js": "^3.0.0", + "core-js": "^3.23.0", "eonasdan-bootstrap-datetimepicker": "^4.17.47", "highlight.js": "^11.5.1", "imports-loader": "^0.8.0", @@ -18,7 +18,7 @@ "sass-loader": "^12.3", "stimulus": "^2.0.0", "typeahead.js": "^0.11.1", - "webpack-notifier": "^1.6.0" + "webpack-notifier": "^1.15.0" }, "license": "MIT", "private": true, diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index e83bca956..9009e1362 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -75,11 +75,6 @@ parameters: count: 1 path: src/Controller/Admin/BlogController.php - - - message: "#^Parameter \\#1 \\$author of method App\\\\Entity\\\\Post\\:\\:setAuthor\\(\\) expects App\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" - count: 1 - path: src/Controller/Admin/BlogController.php - - message: "#^Parameter \\#2 \\$token of method Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\:\\:isCsrfTokenValid\\(\\) expects string\\|null, bool\\|float\\|int\\|string\\|null given\\.$#" count: 1 @@ -95,11 +90,6 @@ parameters: count: 1 path: src/Controller/BlogController.php - - - message: "#^Parameter \\#1 \\$author of method App\\\\Entity\\\\Comment\\:\\:setAuthor\\(\\) expects App\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" - count: 1 - path: src/Controller/BlogController.php - - message: "#^Parameter \\#1 \\$query of method App\\\\Repository\\\\PostRepository\\:\\:findBySearchQuery\\(\\) expects string, bool\\|float\\|int\\|string\\|null given\\.$#" count: 1 @@ -120,16 +110,6 @@ parameters: count: 1 path: src/Controller/BlogController.php - - - message: "#^Cannot call method setPassword\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#" - count: 1 - path: src/Controller/UserController.php - - - - message: "#^Parameter \\#1 \\$user of method Symfony\\\\Component\\\\PasswordHasher\\\\Hasher\\\\UserPasswordHasherInterface\\:\\:hashPassword\\(\\) expects Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\PasswordAuthenticatedUserInterface, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" - count: 1 - path: src/Controller/UserController.php - - message: "#^Parameter \\#2 \\$plainPassword of method Symfony\\\\Component\\\\PasswordHasher\\\\Hasher\\\\UserPasswordHasherInterface\\:\\:hashPassword\\(\\) expects string, mixed given\\.$#" count: 1 @@ -255,21 +235,6 @@ parameters: count: 1 path: src/Form/DataTransformer/TagArrayToStringTransformer.php - - - message: "#^Parameter \\#1 \\$string of function Symfony\\\\Component\\\\String\\\\u expects string\\|null, mixed given\\.$#" - count: 2 - path: src/Form/DataTransformer/TagArrayToStringTransformer.php - - - - message: "#^Parameter \\#2 \\$array of function implode expects array\\, mixed given\\.$#" - count: 1 - path: src/Form/DataTransformer/TagArrayToStringTransformer.php - - - - message: "#^Parameter \\#2 \\$array of function implode expects array\\|null, mixed given\\.$#" - count: 1 - path: src/Form/DataTransformer/TagArrayToStringTransformer.php - - message: "#^Parameter \\#1 \\$format of method App\\\\Utils\\\\MomentFormatConverter\\:\\:convert\\(\\) expects string, mixed given\\.$#" count: 1 diff --git a/src/Controller/Admin/BlogController.php b/src/Controller/Admin/BlogController.php index 0af6a5839..869d85b07 100644 --- a/src/Controller/Admin/BlogController.php +++ b/src/Controller/Admin/BlogController.php @@ -12,16 +12,18 @@ namespace App\Controller\Admin; use App\Entity\Post; +use App\Entity\User; use App\Form\PostType; use App\Repository\PostRepository; use App\Security\PostVoter; use Doctrine\ORM\EntityManagerInterface; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Security\Http\Attribute\CurrentUser; +use Symfony\Component\Security\Http\Attribute\IsGranted; /** * Controller used to manage blog contents in the backend. @@ -51,9 +53,11 @@ class BlogController extends AbstractController */ #[Route('/', methods: ['GET'], name: 'admin_index')] #[Route('/', methods: ['GET'], name: 'admin_post_index')] - public function index(PostRepository $posts): Response - { - $authorPosts = $posts->findBy(['author' => $this->getUser()], ['publishedAt' => 'DESC']); + public function index( + #[CurrentUser] User $user, + PostRepository $posts, + ): Response { + $authorPosts = $posts->findBy(['author' => $user], ['publishedAt' => 'DESC']); return $this->render('admin/blog/index.html.twig', ['posts' => $authorPosts]); } @@ -66,10 +70,13 @@ public function index(PostRepository $posts): Response * it responds to all methods). */ #[Route('/new', methods: ['GET', 'POST'], name: 'admin_post_new')] - public function new(Request $request, EntityManagerInterface $entityManager): Response - { + public function new( + #[CurrentUser] User $user, + Request $request, + EntityManagerInterface $entityManager, + ): Response { $post = new Post(); - $post->setAuthor($this->getUser()); + $post->setAuthor($user); // See https://symfony.com/doc/current/form/multiple_buttons.html $form = $this->createForm(PostType::class, $post) diff --git a/src/Controller/BlogController.php b/src/Controller/BlogController.php index 6fbb64109..15abf11b4 100644 --- a/src/Controller/BlogController.php +++ b/src/Controller/BlogController.php @@ -13,19 +13,21 @@ use App\Entity\Comment; use App\Entity\Post; +use App\Entity\User; use App\Event\CommentCreatedEvent; use App\Form\CommentType; use App\Repository\PostRepository; use App\Repository\TagRepository; use Doctrine\ORM\EntityManagerInterface; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; +use Symfony\Bridge\Doctrine\Attribute\MapEntity; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpKernel\Attribute\Cache; use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Security\Http\Attribute\CurrentUser; +use Symfony\Component\Security\Http\Attribute\IsGranted; /** * Controller used to manage blog contents in the public part of the site. @@ -98,11 +100,15 @@ public function postShow(Post $post): Response */ #[Route('/comment/{postSlug}/new', methods: ['POST'], name: 'comment_new')] #[IsGranted('IS_AUTHENTICATED')] - #[ParamConverter('post', options: ['mapping' => ['postSlug' => 'slug']])] - public function commentNew(Request $request, Post $post, EventDispatcherInterface $eventDispatcher, EntityManagerInterface $entityManager): Response - { + public function commentNew( + #[CurrentUser] User $user, + Request $request, + #[MapEntity(mapping: ['postSlug' => 'slug'])] Post $post, + EventDispatcherInterface $eventDispatcher, + EntityManagerInterface $entityManager, + ): Response { $comment = new Comment(); - $comment->setAuthor($this->getUser()); + $comment->setAuthor($user); $post->addComment($comment); $form = $this->createForm(CommentType::class, $comment); diff --git a/src/Controller/SecurityController.php b/src/Controller/SecurityController.php index 20467934e..a943e6a4f 100644 --- a/src/Controller/SecurityController.php +++ b/src/Controller/SecurityController.php @@ -11,10 +11,12 @@ namespace App\Controller; +use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Security\Http\Attribute\CurrentUser; use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; use Symfony\Component\Security\Http\Util\TargetPathTrait; @@ -29,11 +31,18 @@ class SecurityController extends AbstractController { use TargetPathTrait; + /* + * The $user argument type (?User) must be nullable because the login page + * must be accessible to anonymous visitors too. + */ #[Route('/login', name: 'security_login')] - public function login(Request $request, AuthenticationUtils $helper): Response - { + public function login( + #[CurrentUser] ?User $user, + Request $request, + AuthenticationUtils $helper, + ): Response { // if user is already logged in, don't display the login page again - if ($this->getUser()) { + if ($user) { return $this->redirectToRoute('blog_index'); } diff --git a/src/Controller/UserController.php b/src/Controller/UserController.php index f9cd31d50..425d8e720 100644 --- a/src/Controller/UserController.php +++ b/src/Controller/UserController.php @@ -11,18 +11,23 @@ namespace App\Controller; +use App\Entity\User; use App\Form\Type\ChangePasswordType; use App\Form\UserType; use Doctrine\ORM\EntityManagerInterface; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Security\Http\Attribute\CurrentUser; +use Symfony\Component\Security\Http\Attribute\IsGranted; /** - * Controller used to manage current user. + * Controller used to manage current user. The #[CurrentUser] attribute + * tells Symfony to inject the currently logged user into the given argument. + * It can only be used in controllers and it's an alternative to the + * $this->getUser() method, which still works inside controllers. * * @author Romain Monteil */ @@ -30,10 +35,11 @@ class UserController extends AbstractController { #[Route('/edit', methods: ['GET', 'POST'], name: 'user_edit')] - public function edit(Request $request, EntityManagerInterface $entityManager): Response - { - $user = $this->getUser(); - + public function edit( + #[CurrentUser] User $user, + Request $request, + EntityManagerInterface $entityManager, + ): Response { $form = $this->createForm(UserType::class, $user); $form->handleRequest($request); @@ -52,10 +58,12 @@ public function edit(Request $request, EntityManagerInterface $entityManager): R } #[Route('/change-password', methods: ['GET', 'POST'], name: 'user_change_password')] - public function changePassword(Request $request, UserPasswordHasherInterface $passwordHasher, EntityManagerInterface $entityManager): Response - { - $user = $this->getUser(); - + public function changePassword( + #[CurrentUser] User $user, + Request $request, + UserPasswordHasherInterface $passwordHasher, + EntityManagerInterface $entityManager, + ): Response { $form = $this->createForm(ChangePasswordType::class); $form->handleRequest($request); diff --git a/src/Form/DataTransformer/TagArrayToStringTransformer.php b/src/Form/DataTransformer/TagArrayToStringTransformer.php index fba08c42d..ce4b4d289 100644 --- a/src/Form/DataTransformer/TagArrayToStringTransformer.php +++ b/src/Form/DataTransformer/TagArrayToStringTransformer.php @@ -24,6 +24,8 @@ * * @author Yonel Ceruto * @author Jonathan Boyer + * + * @template-implements DataTransformerInterface */ class TagArrayToStringTransformer implements DataTransformerInterface { diff --git a/symfony.lock b/symfony.lock index 21ef2c20e..d6484a452 100644 --- a/symfony.lock +++ b/symfony.lock @@ -15,16 +15,14 @@ "version": "v3.0.1" }, "doctrine/annotations": { - "version": "1.0", + "version": "1.13", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "1.0", - "ref": "a2759dd6123694c8d901d0ec80006e044c2e6457" + "branch": "main", + "version": "1.10", + "ref": "64d8583af5ea57b7afa4aba4b159907f3a148b05" }, - "files": [ - "config/routes/annotations.yaml" - ] + "files": [] }, "doctrine/cache": { "version": "2.1.1" @@ -45,19 +43,17 @@ "version": "v0.5.3" }, "doctrine/doctrine-bundle": { - "version": "2.4", + "version": "2.7", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", + "branch": "main", "version": "2.4", - "ref": "032f52ed50a27762b78ca6a2aaf432958c473553" + "ref": "d562b46dd8075ab2de3d58bf7895cf6b8365cb72" }, "files": [ "config/packages/doctrine.yaml", - "config/packages/test/doctrine.yaml", - "config/packages/prod/doctrine.yaml", - "src/Repository/.gitignore", - "src/Entity/.gitignore" + "src/Entity/.gitignore", + "src/Repository/.gitignore" ] }, "doctrine/doctrine-fixtures-bundle": { @@ -73,12 +69,12 @@ ] }, "doctrine/doctrine-migrations-bundle": { - "version": "3.1", + "version": "3.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", + "branch": "main", "version": "3.1", - "ref": "ee609429c9ee23e22d6fa5728211768f51ed2818" + "ref": "1d01ec03c6ecbd67c3375c5478c9a423ae5d6a33" }, "files": [ "config/packages/doctrine_migrations.yaml", @@ -163,18 +159,6 @@ "psr/log": { "version": "1.1.4" }, - "sensio/framework-extra-bundle": { - "version": "5.2", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "5.2", - "ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b" - }, - "files": [ - "config/packages/sensio_framework_extra.yaml" - ] - }, "symfony/apache-pack": { "version": "1.0", "recipe": { @@ -218,15 +202,15 @@ "version": "v6.0.0" }, "symfony/debug-bundle": { - "version": "4.1", + "version": "6.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "4.1", - "ref": "0ce7a032d344fb7b661cd25d31914cd703ad445b" + "branch": "main", + "version": "5.3", + "ref": "5aa8aa48234c8eb6dbdd7b3cd5d791485d2cec4b" }, "files": [ - "config/packages/dev/debug.yaml" + "config/packages/debug.yaml" ] }, "symfony/dependency-injection": { @@ -263,12 +247,12 @@ "version": "v6.0.0" }, "symfony/flex": { - "version": "1.0", + "version": "2.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", + "branch": "main", "version": "1.0", - "ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e" + "ref": "146251ae39e06a95be0fe3d13c807bcf3938b172" }, "files": [ ".env" @@ -278,22 +262,22 @@ "version": "v6.0.0" }, "symfony/framework-bundle": { - "version": "5.4", + "version": "6.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "5.4", - "ref": "d4131812e20853626928e73d3effef44014944c0" + "branch": "main", + "version": "6.2", + "ref": "af47254c5e4cd543e6af3e4508298ffebbdaddd3" }, "files": [ - "config/services.yaml", - "config/routes/framework.yaml", - "config/preload.php", "config/packages/cache.yaml", "config/packages/framework.yaml", + "config/preload.php", + "config/routes/framework.yaml", + "config/services.yaml", "public/index.php", - "src/Kernel.php", - "src/Controller/.gitignore" + "src/Controller/.gitignore", + "src/Kernel.php" ] }, "symfony/html-sanitizer": { @@ -315,12 +299,12 @@ "version": "v6.0.0" }, "symfony/mailer": { - "version": "5.4", + "version": "6.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", + "branch": "main", "version": "4.3", - "ref": "bbfc7e27257d3a3f12a6fb0a42540a42d9623a37" + "ref": "97a61eabb351d7f6cb7702039bcfe07fe9d7e03c" }, "files": [ "config/packages/mailer.yaml" @@ -342,18 +326,15 @@ "version": "v6.0.0" }, "symfony/monolog-bundle": { - "version": "3.7", + "version": "3.8", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", + "branch": "main", "version": "3.7", - "ref": "a7bace7dbc5a7ed5608dbe2165e0774c87175fe6" + "ref": "213676c4ec929f046dfde5ea8e97625b81bc0578" }, "files": [ - "config/packages/test/monolog.yaml", - "config/packages/prod/monolog.yaml", - "config/packages/prod/deprecations.yaml", - "config/packages/dev/monolog.yaml" + "config/packages/monolog.yaml" ] }, "symfony/options-resolver": { @@ -405,12 +386,12 @@ "version": "v6.0.0" }, "symfony/routing": { - "version": "6.0", + "version": "6.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "6.0", - "ref": "ab9ad892b7bba7ac584f6dc2ccdb659d358c63c5" + "branch": "main", + "version": "6.2", + "ref": "e0a11b4ccb8c9e70b574ff5ad3dfdcd41dec5aa6" }, "files": [ "config/packages/routing.yaml", @@ -421,12 +402,12 @@ "version": "v6.0.0" }, "symfony/security-bundle": { - "version": "5.4", + "version": "6.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "5.3", - "ref": "3307d76caa2d12fb10ade57975beb3d8975df396" + "branch": "main", + "version": "6.0", + "ref": "8a5b112826f7d3d5b07027f93786ae11a1c7de48" }, "files": [ "config/packages/security.yaml" @@ -470,12 +451,12 @@ "version": "v6.0.0" }, "symfony/twig-bundle": { - "version": "6.0", + "version": "6.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", + "branch": "main", "version": "5.4", - "ref": "bffbb8f1a849736e64006735afae730cb428b6ff" + "ref": "bb2178c57eee79e6be0b297aa96fc0c0def81387" }, "files": [ "config/packages/twig.yaml", @@ -483,16 +464,15 @@ ] }, "symfony/validator": { - "version": "5.4", + "version": "6.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "4.3", - "ref": "3eb8df139ec05414489d55b97603c5f6ca0c44cb" + "branch": "main", + "version": "5.3", + "ref": "c32cfd98f714894c4f128bb99aa2530c1227603c" }, "files": [ - "config/packages/validator.yaml", - "config/packages/test/validator.yaml" + "config/packages/validator.yaml" ] }, "symfony/var-dumper": { @@ -502,37 +482,33 @@ "version": "v6.0.0" }, "symfony/web-profiler-bundle": { - "version": "3.3", + "version": "6.2", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "3.3", - "ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6" + "branch": "main", + "version": "6.1", + "ref": "e42b3f0177df239add25373083a564e5ead4e13a" }, "files": [ - "config/packages/dev/web_profiler.yaml", - "config/packages/test/web_profiler.yaml", - "config/routes/dev/web_profiler.yaml" + "config/packages/web_profiler.yaml", + "config/routes/web_profiler.yaml" ] }, "symfony/webpack-encore-bundle": { - "version": "1.12", + "version": "1.16", "recipe": { "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "1.9", - "ref": "0f274572ea315eb3b5884518a50ca43f211b4534" + "branch": "main", + "version": "1.10", + "ref": "5878c7c28468ca0fdce2497a04cfc66bab0dc3ef" }, "files": [ - "assets/styles/app.css", - "assets/controllers.json", - "assets/controllers/hello_controller.js", "assets/app.js", "assets/bootstrap.js", + "assets/controllers.json", + "assets/controllers/hello_controller.js", + "assets/styles/app.css", "config/packages/webpack_encore.yaml", - "config/packages/test/webpack_encore.yaml", - "config/packages/prod/webpack_encore.yaml", - "config/packages/assets.yaml", "package.json", "webpack.config.js" ] diff --git a/webpack.config.js b/webpack.config.js index 83ebcffff..7ec7dd24c 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -11,7 +11,7 @@ Encore .setOutputPath('public/build/') // public path used by the web server to access the output path .setPublicPath('/build') - // only needed for CDN's or sub-directory deploy + // only needed for CDN's or subdirectory deploy //.setManifestKeyPrefix('build/') /* @@ -48,14 +48,15 @@ Encore // enables hashed filenames (e.g. app.abc123.css) .enableVersioning(Encore.isProduction()) + // configure Babel .configureBabel((config) => { config.plugins.push('@babel/plugin-proposal-class-properties'); }) - // enables @babel/preset-env polyfills + // enables and configure @babel/preset-env polyfills .configureBabelPresetEnv((config) => { config.useBuiltIns = 'usage'; - config.corejs = 3; + config.corejs = '3.23'; }) // enables Sass/SCSS support