diff --git a/composer.json b/composer.json
index a06f49c2..9f8d440b 100644
--- a/composer.json
+++ b/composer.json
@@ -18,11 +18,11 @@
"composer/installers": "^1.12",
"cweagans/composer-patches": "^1.7",
"drupal/consumer_image_styles": "^4.0",
- "drupal/core": "^9.3",
- "drupal/core-composer-scaffold": "9.3.*",
- "drupal/core-project-message": "9.3.*",
- "drupal/core-recommended": "9.3.*",
- "drupal/core-vendor-hardening": "9.3.*",
+ "drupal/core": "^9.4",
+ "drupal/core-composer-scaffold": "9.4.*",
+ "drupal/core-project-message": "9.4.*",
+ "drupal/core-recommended": "9.4.*",
+ "drupal/core-vendor-hardening": "9.4.*",
"drupal/entity": "^1.3",
"drupal/filefield_paths": "^1.0@beta",
"drupal/image_style_warmer": "^1.1",
@@ -128,10 +128,10 @@
}
},
"require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7",
"drupal/admin_toolbar": "^3.0",
"drupal/coder": "^8.3",
- "drupal/core-dev": "9.3.*",
+ "drupal/core-dev": "9.4.*",
"drupal/devel": "^4.1",
"drupal/devel_mail_logger": "^1.0@beta",
"drupal/druqs": "2.0.x-dev@dev",
@@ -146,7 +146,7 @@
"phpcompatibility/php-compatibility": "^9.3",
"phpspec/prophecy-phpunit": "^2",
"phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan": "^1.8",
"phpstan/phpstan-deprecation-rules": "^1.0"
},
"scripts": {
diff --git a/composer.lock b/composer.lock
index 34978c3a..83b4d0ae 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": "b98d6b6c4a267adfb46af44a83eea61a",
+ "content-hash": "d1ca8a1a747c54f04e6e7f606d98f997",
"packages": [
{
"name": "asm89/stack-cors",
@@ -267,23 +267,23 @@
},
{
"name": "composer/semver",
- "version": "3.2.6",
+ "version": "3.3.2",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "83e511e247de329283478496f7a1e114c9517506"
+ "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506",
- "reference": "83e511e247de329283478496f7a1e114c9517506",
+ "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^0.12.54",
+ "phpstan/phpstan": "^1.4",
"symfony/phpunit-bridge": "^4.2 || ^5"
},
"type": "library",
@@ -328,7 +328,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.2.6"
+ "source": "https://github.com/composer/semver/tree/3.3.2"
},
"funding": [
{
@@ -344,7 +344,7 @@
"type": "tidelift"
}
],
- "time": "2021-10-25T11:34:17+00:00"
+ "time": "2022-04-01T19:23:25+00:00"
},
{
"name": "consolidation/annotated-command",
@@ -1117,16 +1117,16 @@
},
{
"name": "doctrine/annotations",
- "version": "1.13.2",
+ "version": "1.13.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "5b668aef16090008790395c02c893b1ba13f7e08"
+ "reference": "648b0343343565c4a056bfc8392201385e8d89f0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08",
- "reference": "5b668aef16090008790395c02c893b1ba13f7e08",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0",
+ "reference": "648b0343343565c4a056bfc8392201385e8d89f0",
"shasum": ""
},
"require": {
@@ -1138,9 +1138,10 @@
"require-dev": {
"doctrine/cache": "^1.11 || ^2.0",
"doctrine/coding-standard": "^6.0 || ^8.1",
- "phpstan/phpstan": "^0.12.20",
+ "phpstan/phpstan": "^1.4.10 || ^1.8.0",
"phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
- "symfony/cache": "^4.4 || ^5.2"
+ "symfony/cache": "^4.4 || ^5.2",
+ "vimeo/psalm": "^4.10"
},
"type": "library",
"autoload": {
@@ -1183,38 +1184,34 @@
],
"support": {
"issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/1.13.2"
+ "source": "https://github.com/doctrine/annotations/tree/1.13.3"
},
- "time": "2021-08-05T19:00:23+00:00"
+ "time": "2022-07-02T10:48:51+00:00"
},
{
"name": "doctrine/lexer",
- "version": "1.2.1",
+ "version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
+ "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
- "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
+ "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^6.0",
- "phpstan/phpstan": "^0.11.8",
- "phpunit/phpunit": "^8.2"
+ "doctrine/coding-standard": "^9.0",
+ "phpstan/phpstan": "^1.3",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "vimeo/psalm": "^4.11"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
@@ -1249,7 +1246,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/1.2.1"
+ "source": "https://github.com/doctrine/lexer/tree/1.2.3"
},
"funding": [
{
@@ -1265,20 +1262,20 @@
"type": "tidelift"
}
],
- "time": "2020-05-25T17:44:05+00:00"
+ "time": "2022-02-28T11:07:21+00:00"
},
{
"name": "doctrine/reflection",
- "version": "1.2.2",
+ "version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/reflection.git",
- "reference": "fa587178be682efe90d005e3a322590d6ebb59a5"
+ "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/reflection/zipball/fa587178be682efe90d005e3a322590d6ebb59a5",
- "reference": "fa587178be682efe90d005e3a322590d6ebb59a5",
+ "url": "https://api.github.com/repos/doctrine/reflection/zipball/1034e5e71f89978b80f9c1570e7226f6c3b9b6fb",
+ "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb",
"shasum": ""
},
"require": {
@@ -1290,18 +1287,13 @@
"doctrine/common": "<2.9"
},
"require-dev": {
- "doctrine/coding-standard": "^6.0 || ^8.2.0",
- "doctrine/common": "^2.10",
- "phpstan/phpstan": "^0.11.0 || ^0.12.20",
- "phpstan/phpstan-phpunit": "^0.11.0 || ^0.12.16",
- "phpunit/phpunit": "^7.5 || ^9.1.5"
+ "doctrine/coding-standard": "^9",
+ "doctrine/common": "^3.3",
+ "phpstan/phpstan": "^1.4.10",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "lib/Doctrine/Common"
@@ -1345,10 +1337,10 @@
],
"support": {
"issues": "https://github.com/doctrine/reflection/issues",
- "source": "https://github.com/doctrine/reflection/tree/1.2.2"
+ "source": "https://github.com/doctrine/reflection/tree/1.2.3"
},
"abandoned": "roave/better-reflection",
- "time": "2020-10-27T21:46:55+00:00"
+ "time": "2022-05-31T18:46:25+00:00"
},
{
"name": "drupal/consumer_image_styles",
@@ -1447,24 +1439,24 @@
},
{
"name": "drupal/core",
- "version": "9.3.17",
+ "version": "9.4.1",
"source": {
"type": "git",
"url": "https://github.com/drupal/core.git",
- "reference": "20c4f2c5ad062295d5c40f42bc27547570513c8c"
+ "reference": "81489e8f0d5fdcd5d502b561f0f8cdf5ccdda614"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/drupal/core/zipball/20c4f2c5ad062295d5c40f42bc27547570513c8c",
- "reference": "20c4f2c5ad062295d5c40f42bc27547570513c8c",
+ "url": "https://api.github.com/repos/drupal/core/zipball/81489e8f0d5fdcd5d502b561f0f8cdf5ccdda614",
+ "reference": "81489e8f0d5fdcd5d502b561f0f8cdf5ccdda614",
"shasum": ""
},
"require": {
- "asm89/stack-cors": "^1.1",
- "composer/semver": "^3.0",
- "doctrine/annotations": "^1.12",
- "doctrine/reflection": "^1.1",
- "egulias/email-validator": "^2.1.22|^3.0",
+ "asm89/stack-cors": "^1.3",
+ "composer/semver": "^3.3",
+ "doctrine/annotations": "^1.13",
+ "doctrine/reflection": "^1.2",
+ "egulias/email-validator": "^2.1.22|^3.2",
"ext-date": "*",
"ext-dom": "*",
"ext-filter": "*",
@@ -1478,35 +1470,36 @@
"ext-spl": "*",
"ext-tokenizer": "*",
"ext-xml": "*",
- "guzzlehttp/guzzle": "^6.5.8",
- "laminas/laminas-diactoros": "^2.1",
- "laminas/laminas-feed": "^2.12",
- "masterminds/html5": "^2.1",
+ "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
+ "laminas/laminas-diactoros": "^2.11",
+ "laminas/laminas-feed": "^2.17",
+ "masterminds/html5": "^2.7",
"pear/archive_tar": "^1.4.14",
"php": ">=7.3.0",
- "psr/log": "^1.0",
+ "psr/log": "^1.1",
"stack/builder": "^1.0",
- "symfony-cmf/routing": "^2.1",
+ "symfony-cmf/routing": "^2.3",
"symfony/console": "^4.4",
"symfony/dependency-injection": "^4.4",
"symfony/event-dispatcher": "^4.4",
"symfony/http-foundation": "^4.4.7",
"symfony/http-kernel": "^4.4",
"symfony/mime": "^5.4",
- "symfony/polyfill-iconv": "^1.0",
- "symfony/polyfill-php80": "^1.16",
+ "symfony/polyfill-iconv": "^1.25",
+ "symfony/polyfill-php80": "^1.25",
"symfony/process": "^4.4",
- "symfony/psr-http-message-bridge": "^2.0",
+ "symfony/psr-http-message-bridge": "^2.1",
"symfony/routing": "^4.4",
"symfony/serializer": "^4.4",
"symfony/translation": "^4.4",
"symfony/validator": "^4.4",
"symfony/yaml": "^4.4.19",
- "twig/twig": "^2.12.0",
+ "twig/twig": "^2.15",
"typo3/phar-stream-wrapper": "^3.1.3"
},
"conflict": {
- "drush/drush": "<8.1.10"
+ "drush/drush": "<8.1.10",
+ "symfony/http-foundation": "4.4.42"
},
"replace": {
"drupal/action": "self.version",
@@ -1590,12 +1583,14 @@
"drupal/migrate_drupal_multilingual": "self.version",
"drupal/migrate_drupal_ui": "self.version",
"drupal/minimal": "self.version",
+ "drupal/mysql": "self.version",
"drupal/node": "self.version",
"drupal/olivero": "self.version",
"drupal/options": "self.version",
"drupal/page_cache": "self.version",
"drupal/path": "self.version",
"drupal/path_alias": "self.version",
+ "drupal/pgsql": "self.version",
"drupal/quickedit": "self.version",
"drupal/rdf": "self.version",
"drupal/responsive_image": "self.version",
@@ -1605,6 +1600,7 @@
"drupal/settings_tray": "self.version",
"drupal/seven": "self.version",
"drupal/shortcut": "self.version",
+ "drupal/sqlite": "self.version",
"drupal/standard": "self.version",
"drupal/stark": "self.version",
"drupal/statistics": "self.version",
@@ -1679,9 +1675,6 @@
"lib/Drupal/Core/Cache/DatabaseCacheTagsChecksum.php",
"lib/Drupal/Core/Database/Connection.php",
"lib/Drupal/Core/Database/Database.php",
- "lib/Drupal/Core/Database/Driver/mysql/Connection.php",
- "lib/Drupal/Core/Database/Driver/pgsql/Connection.php",
- "lib/Drupal/Core/Database/Driver/sqlite/Connection.php",
"lib/Drupal/Core/Database/Statement.php",
"lib/Drupal/Core/Database/StatementInterface.php",
"lib/Drupal/Core/DependencyInjection/Container.php",
@@ -1698,22 +1691,22 @@
],
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"support": {
- "source": "https://github.com/drupal/core/tree/9.3.17"
+ "source": "https://github.com/drupal/core/tree/9.4.1"
},
- "time": "2022-06-21T20:57:41+00:00"
+ "time": "2022-06-21T20:53:48+00:00"
},
{
"name": "drupal/core-composer-scaffold",
- "version": "9.3.17",
+ "version": "9.4.1",
"source": {
"type": "git",
"url": "https://github.com/drupal/core-composer-scaffold.git",
- "reference": "a9dd9def8891e1c388719474720b57d3fe929a2f"
+ "reference": "5f37a9e4008b34e3e4f6bb34ce0b3f7e5ec8984f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/a9dd9def8891e1c388719474720b57d3fe929a2f",
- "reference": "a9dd9def8891e1c388719474720b57d3fe929a2f",
+ "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/5f37a9e4008b34e3e4f6bb34ce0b3f7e5ec8984f",
+ "reference": "5f37a9e4008b34e3e4f6bb34ce0b3f7e5ec8984f",
"shasum": ""
},
"require": {
@@ -1748,22 +1741,22 @@
"drupal"
],
"support": {
- "source": "https://github.com/drupal/core-composer-scaffold/tree/9.3.17"
+ "source": "https://github.com/drupal/core-composer-scaffold/tree/9.4.1"
},
- "time": "2022-02-24T17:40:56+00:00"
+ "time": "2022-06-19T16:14:23+00:00"
},
{
"name": "drupal/core-project-message",
- "version": "9.3.17",
+ "version": "9.4.1",
"source": {
"type": "git",
"url": "https://github.com/drupal/core-project-message.git",
- "reference": "69664743736977676e11f824301ea3e925a712fc"
+ "reference": "5dfa0b75a057caf6542be67f61e7531c737db48c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/drupal/core-project-message/zipball/69664743736977676e11f824301ea3e925a712fc",
- "reference": "69664743736977676e11f824301ea3e925a712fc",
+ "url": "https://api.github.com/repos/drupal/core-project-message/zipball/5dfa0b75a057caf6542be67f61e7531c737db48c",
+ "reference": "5dfa0b75a057caf6542be67f61e7531c737db48c",
"shasum": ""
},
"require": {
@@ -1789,81 +1782,81 @@
"drupal"
],
"support": {
- "source": "https://github.com/drupal/core-project-message/tree/9.3.17"
+ "source": "https://github.com/drupal/core-project-message/tree/9.4.1"
},
- "time": "2022-02-24T17:40:56+00:00"
+ "time": "2022-02-24T17:40:53+00:00"
},
{
"name": "drupal/core-recommended",
- "version": "9.3.17",
+ "version": "9.4.1",
"source": {
"type": "git",
"url": "https://github.com/drupal/core-recommended.git",
- "reference": "f14b8cb930b1cfde94b37f3dfa968733e1085eb5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/drupal/core-recommended/zipball/f14b8cb930b1cfde94b37f3dfa968733e1085eb5",
- "reference": "f14b8cb930b1cfde94b37f3dfa968733e1085eb5",
- "shasum": ""
- },
- "require": {
- "asm89/stack-cors": "1.3.0",
- "composer/semver": "3.2.6",
- "doctrine/annotations": "1.13.2",
- "doctrine/lexer": "1.2.1",
- "doctrine/reflection": "1.2.2",
- "drupal/core": "9.3.17",
- "egulias/email-validator": "3.1.2",
- "guzzlehttp/guzzle": "6.5.8",
- "guzzlehttp/promises": "1.5.1",
- "guzzlehttp/psr7": "1.9.0",
- "laminas/laminas-diactoros": "2.8.0",
- "laminas/laminas-escaper": "2.9.0",
- "laminas/laminas-feed": "2.15.0",
- "laminas/laminas-stdlib": "3.6.1",
- "masterminds/html5": "2.7.5",
- "pear/archive_tar": "1.4.14",
- "pear/console_getopt": "v1.4.3",
- "pear/pear-core-minimal": "v1.10.11",
- "pear/pear_exception": "v1.0.2",
- "psr/cache": "1.0.1",
- "psr/container": "1.1.1",
- "psr/http-factory": "1.0.1",
- "psr/http-message": "1.0.1",
- "psr/log": "1.1.4",
- "ralouphie/getallheaders": "3.0.3",
- "stack/builder": "v1.0.6",
- "symfony-cmf/routing": "2.3.4",
- "symfony/console": "v4.4.34",
- "symfony/debug": "v4.4.31",
- "symfony/dependency-injection": "v4.4.34",
- "symfony/deprecation-contracts": "v2.5.0",
- "symfony/error-handler": "v4.4.34",
- "symfony/event-dispatcher": "v4.4.34",
- "symfony/event-dispatcher-contracts": "v1.1.11",
- "symfony/http-client-contracts": "v2.5.0",
- "symfony/http-foundation": "v4.4.34",
- "symfony/http-kernel": "v4.4.35",
- "symfony/mime": "v5.4.0",
- "symfony/polyfill-ctype": "v1.23.0",
- "symfony/polyfill-iconv": "v1.23.0",
- "symfony/polyfill-intl-idn": "v1.23.0",
- "symfony/polyfill-intl-normalizer": "v1.23.0",
- "symfony/polyfill-mbstring": "v1.23.1",
- "symfony/polyfill-php80": "v1.23.1",
- "symfony/process": "v4.4.35",
- "symfony/psr-http-message-bridge": "v2.1.2",
- "symfony/routing": "v4.4.34",
- "symfony/serializer": "v4.4.35",
- "symfony/service-contracts": "v2.5.0",
- "symfony/translation": "v4.4.34",
- "symfony/translation-contracts": "v2.5.0",
- "symfony/validator": "v4.4.35",
- "symfony/var-dumper": "v5.4.0",
- "symfony/yaml": "v4.4.34",
- "twig/twig": "v2.14.11",
- "typo3/phar-stream-wrapper": "v3.1.7"
+ "reference": "a3ae54715ba7792fe596c2f6a73dfcef217b0577"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/drupal/core-recommended/zipball/a3ae54715ba7792fe596c2f6a73dfcef217b0577",
+ "reference": "a3ae54715ba7792fe596c2f6a73dfcef217b0577",
+ "shasum": ""
+ },
+ "require": {
+ "asm89/stack-cors": "~1.3.0",
+ "composer/semver": "~3.3.2",
+ "doctrine/annotations": "~1.13.2",
+ "doctrine/lexer": "~1.2.3",
+ "doctrine/reflection": "~1.2.3",
+ "drupal/core": "9.4.1",
+ "egulias/email-validator": "~3.2",
+ "guzzlehttp/guzzle": "~6.5.8",
+ "guzzlehttp/promises": "~1.5.1",
+ "guzzlehttp/psr7": "~1.9.0",
+ "laminas/laminas-diactoros": "~2.11.0",
+ "laminas/laminas-escaper": "~2.9.0",
+ "laminas/laminas-feed": "~2.17.0",
+ "laminas/laminas-stdlib": "~3.7.1",
+ "masterminds/html5": "~2.7.5",
+ "pear/archive_tar": "~1.4.14",
+ "pear/console_getopt": "~v1.4.3",
+ "pear/pear-core-minimal": "~v1.10.11",
+ "pear/pear_exception": "~v1.0.2",
+ "psr/cache": "~1.0.1",
+ "psr/container": "~1.1.1",
+ "psr/http-factory": "~1.0.1",
+ "psr/http-message": "~1.0.1",
+ "psr/log": "~1.1.4",
+ "ralouphie/getallheaders": "~3.0.3",
+ "stack/builder": "~v1.0.6",
+ "symfony-cmf/routing": "~2.3.4",
+ "symfony/console": "~v4.4.42",
+ "symfony/debug": "~v4.4.41",
+ "symfony/dependency-injection": "~v4.4.42",
+ "symfony/deprecation-contracts": "~v2.5.1",
+ "symfony/error-handler": "~v4.4.41",
+ "symfony/event-dispatcher": "~v4.4.42",
+ "symfony/event-dispatcher-contracts": "~v1.1.12",
+ "symfony/http-client-contracts": "~v2.5.1",
+ "symfony/http-foundation": "~v4.4.41",
+ "symfony/http-kernel": "~v4.4.42",
+ "symfony/mime": "~v5.4.9",
+ "symfony/polyfill-ctype": "~v1.25.0",
+ "symfony/polyfill-iconv": "~v1.25.0",
+ "symfony/polyfill-intl-idn": "~v1.25.0",
+ "symfony/polyfill-intl-normalizer": "~v1.25.0",
+ "symfony/polyfill-mbstring": "~v1.25.0",
+ "symfony/polyfill-php80": "~v1.25.0",
+ "symfony/process": "~v4.4.41",
+ "symfony/psr-http-message-bridge": "~v2.1.2",
+ "symfony/routing": "~v4.4.41",
+ "symfony/serializer": "~v4.4.42",
+ "symfony/service-contracts": "~v2.5.1",
+ "symfony/translation": "~v4.4.41",
+ "symfony/translation-contracts": "~v2.5.1",
+ "symfony/validator": "~v4.4.41",
+ "symfony/var-dumper": "~v5.4.9",
+ "symfony/yaml": "~v4.4.37",
+ "twig/twig": "~v2.15.1",
+ "typo3/phar-stream-wrapper": "~v3.1.7"
},
"conflict": {
"webflo/drupal-core-strict": "*"
@@ -1873,24 +1866,24 @@
"license": [
"GPL-2.0-or-later"
],
- "description": "Locked core dependencies; require this project INSTEAD OF drupal/core.",
+ "description": "Core and its dependencies with known-compatible minor versions. Require this project INSTEAD OF drupal/core.",
"support": {
- "source": "https://github.com/drupal/core-recommended/tree/9.3.17"
+ "source": "https://github.com/drupal/core-recommended/tree/9.4.1"
},
- "time": "2022-06-21T20:57:41+00:00"
+ "time": "2022-06-21T20:53:48+00:00"
},
{
"name": "drupal/core-vendor-hardening",
- "version": "9.3.17",
+ "version": "9.4.1",
"source": {
"type": "git",
"url": "https://github.com/drupal/core-vendor-hardening.git",
- "reference": "1c867b32b93200ef00840c5f153ae7750fa3ca7b"
+ "reference": "6e2b95d65ca2aac7350039c5826175cab5a81881"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/drupal/core-vendor-hardening/zipball/1c867b32b93200ef00840c5f153ae7750fa3ca7b",
- "reference": "1c867b32b93200ef00840c5f153ae7750fa3ca7b",
+ "url": "https://api.github.com/repos/drupal/core-vendor-hardening/zipball/6e2b95d65ca2aac7350039c5826175cab5a81881",
+ "reference": "6e2b95d65ca2aac7350039c5826175cab5a81881",
"shasum": ""
},
"require": {
@@ -1916,9 +1909,9 @@
"drupal"
],
"support": {
- "source": "https://github.com/drupal/core-vendor-hardening/tree/9.3.17"
+ "source": "https://github.com/drupal/core-vendor-hardening/tree/9.4.1"
},
- "time": "2022-02-24T17:40:56+00:00"
+ "time": "2022-02-24T17:40:53+00:00"
},
{
"name": "drupal/entity",
@@ -3075,16 +3068,16 @@
},
{
"name": "egulias/email-validator",
- "version": "3.1.2",
+ "version": "3.2.1",
"source": {
"type": "git",
"url": "https://github.com/egulias/EmailValidator.git",
- "reference": "ee0db30118f661fb166bcffbf5d82032df484697"
+ "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697",
- "reference": "ee0db30118f661fb166bcffbf5d82032df484697",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f88dcf4b14af14a98ad96b14b2b317969eab6715",
+ "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715",
"shasum": ""
},
"require": {
@@ -3131,7 +3124,7 @@
],
"support": {
"issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/3.1.2"
+ "source": "https://github.com/egulias/EmailValidator/tree/3.2.1"
},
"funding": [
{
@@ -3139,7 +3132,7 @@
"type": "github"
}
],
- "time": "2021-10-11T09:18:27+00:00"
+ "time": "2022-06-18T20:57:19+00:00"
},
{
"name": "enlightn/security-checker",
@@ -3803,16 +3796,16 @@
},
{
"name": "laminas/laminas-diactoros",
- "version": "2.8.0",
+ "version": "2.11.2",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-diactoros.git",
- "reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199"
+ "reference": "78846cbce0550ec174508a646f46fd6dee76099b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/0c26ef1d95b6d7e6e3943a243ba3dc0797227199",
- "reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199",
+ "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/78846cbce0550ec174508a646f46fd6dee76099b",
+ "reference": "78846cbce0550ec174508a646f46fd6dee76099b",
"shasum": ""
},
"require": {
@@ -3898,7 +3891,7 @@
"type": "community_bridge"
}
],
- "time": "2021-09-22T03:54:36+00:00"
+ "time": "2022-06-29T14:15:02+00:00"
},
{
"name": "laminas/laminas-escaper",
@@ -3964,16 +3957,16 @@
},
{
"name": "laminas/laminas-feed",
- "version": "2.15.0",
+ "version": "2.17.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-feed.git",
- "reference": "3ef837a12833c74b438d2c3780023c4244e0abae"
+ "reference": "1ccb024ea615606ed1d676ba0fa3f22a398f3ac0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/3ef837a12833c74b438d2c3780023c4244e0abae",
- "reference": "3ef837a12833c74b438d2c3780023c4244e0abae",
+ "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/1ccb024ea615606ed1d676ba0fa3f22a398f3ac0",
+ "reference": "1ccb024ea615606ed1d676ba0fa3f22a398f3ac0",
"shasum": ""
},
"require": {
@@ -4037,20 +4030,20 @@
"type": "community_bridge"
}
],
- "time": "2021-09-20T18:11:11+00:00"
+ "time": "2022-03-24T10:26:04+00:00"
},
{
"name": "laminas/laminas-stdlib",
- "version": "3.6.1",
+ "version": "3.7.1",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-stdlib.git",
- "reference": "db581851a092246ad99e12d4fddf105184924c71"
+ "reference": "bcd869e2fe88d567800057c1434f2380354fe325"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/db581851a092246ad99e12d4fddf105184924c71",
- "reference": "db581851a092246ad99e12d4fddf105184924c71",
+ "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/bcd869e2fe88d567800057c1434f2380354fe325",
+ "reference": "bcd869e2fe88d567800057c1434f2380354fe325",
"shasum": ""
},
"require": {
@@ -4061,8 +4054,8 @@
},
"require-dev": {
"laminas/laminas-coding-standard": "~2.3.0",
- "phpbench/phpbench": "^0.17.1",
- "phpunit/phpunit": "~9.3.7",
+ "phpbench/phpbench": "^1.0",
+ "phpunit/phpunit": "^9.3.7",
"psalm/plugin-phpunit": "^0.16.0",
"vimeo/psalm": "^4.7"
},
@@ -4096,7 +4089,7 @@
"type": "community_bridge"
}
],
- "time": "2021-11-10T11:33:52+00:00"
+ "time": "2022-01-21T15:50:46+00:00"
},
{
"name": "lcobucci/clock",
@@ -4456,16 +4449,16 @@
},
{
"name": "league/uri",
- "version": "6.6.0",
+ "version": "6.7.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri.git",
- "reference": "4147f19b9de3b5af6a258f35d7a0efbbf9963298"
+ "reference": "2d7c87a0860f3126a39f44a8a9bf2fed402dcfea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri/zipball/4147f19b9de3b5af6a258f35d7a0efbbf9963298",
- "reference": "4147f19b9de3b5af6a258f35d7a0efbbf9963298",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/2d7c87a0860f3126a39f44a8a9bf2fed402dcfea",
+ "reference": "2d7c87a0860f3126a39f44a8a9bf2fed402dcfea",
"shasum": ""
},
"require": {
@@ -4479,6 +4472,7 @@
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^v3.3.2",
+ "nyholm/psr7": "^1.5",
"php-http/psr7-integration-tests": "^1.1",
"phpstan/phpstan": "^1.2.0",
"phpstan/phpstan-deprecation-rules": "^1.0",
@@ -4542,7 +4536,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri/issues",
- "source": "https://github.com/thephpleague/uri/tree/6.6.0"
+ "source": "https://github.com/thephpleague/uri/tree/6.7.1"
},
"funding": [
{
@@ -4550,7 +4544,7 @@
"type": "github"
}
],
- "time": "2022-05-28T05:44:35+00:00"
+ "time": "2022-06-29T09:48:18+00:00"
},
{
"name": "league/uri-interfaces",
@@ -5191,20 +5185,20 @@
},
{
"name": "psr/container",
- "version": "1.1.1",
+ "version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
"shasum": ""
},
"require": {
- "php": ">=7.2.0"
+ "php": ">=7.4.0"
},
"type": "library",
"autoload": {
@@ -5233,9 +5227,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.1"
+ "source": "https://github.com/php-fig/container/tree/1.1.2"
},
- "time": "2021-03-05T17:36:06+00:00"
+ "time": "2021-11-05T16:50:12+00:00"
},
{
"name": "psr/http-factory",
@@ -5725,16 +5719,16 @@
},
{
"name": "symfony/console",
- "version": "v4.4.34",
+ "version": "v4.4.43",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "329b3a75cc6b16d435ba1b1a41df54a53382a3f0"
+ "reference": "8a2628d2d5639f35113dc1b833ecd91e1ed1cf46"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/329b3a75cc6b16d435ba1b1a41df54a53382a3f0",
- "reference": "329b3a75cc6b16d435ba1b1a41df54a53382a3f0",
+ "url": "https://api.github.com/repos/symfony/console/zipball/8a2628d2d5639f35113dc1b833ecd91e1ed1cf46",
+ "reference": "8a2628d2d5639f35113dc1b833ecd91e1ed1cf46",
"shasum": ""
},
"require": {
@@ -5795,7 +5789,7 @@
"description": "Eases the creation of beautiful and testable command line interfaces",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/console/tree/v4.4.34"
+ "source": "https://github.com/symfony/console/tree/v4.4.43"
},
"funding": [
{
@@ -5811,20 +5805,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-04T12:23:33+00:00"
+ "time": "2022-06-23T12:22:25+00:00"
},
{
"name": "symfony/debug",
- "version": "v4.4.31",
+ "version": "v4.4.41",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
- "reference": "43ede438d4cb52cd589ae5dc070e9323866ba8e0"
+ "reference": "6637e62480b60817b9a6984154a533e8e64c6bd5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/43ede438d4cb52cd589ae5dc070e9323866ba8e0",
- "reference": "43ede438d4cb52cd589ae5dc070e9323866ba8e0",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/6637e62480b60817b9a6984154a533e8e64c6bd5",
+ "reference": "6637e62480b60817b9a6984154a533e8e64c6bd5",
"shasum": ""
},
"require": {
@@ -5863,7 +5857,7 @@
"description": "Provides tools to ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/debug/tree/v4.4.31"
+ "source": "https://github.com/symfony/debug/tree/v4.4.41"
},
"funding": [
{
@@ -5880,20 +5874,20 @@
}
],
"abandoned": "symfony/error-handler",
- "time": "2021-09-24T13:30:14+00:00"
+ "time": "2022-04-12T15:19:55+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v4.4.34",
+ "version": "v4.4.43",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "117d7f132ed7efbd535ec947709d49bec1b9d24b"
+ "reference": "8d0ae6d87ceea5f3a352413f9d1f71ed2234dcbd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/117d7f132ed7efbd535ec947709d49bec1b9d24b",
- "reference": "117d7f132ed7efbd535ec947709d49bec1b9d24b",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8d0ae6d87ceea5f3a352413f9d1f71ed2234dcbd",
+ "reference": "8d0ae6d87ceea5f3a352413f9d1f71ed2234dcbd",
"shasum": ""
},
"require": {
@@ -5906,7 +5900,7 @@
"symfony/config": "<4.3|>=5.0",
"symfony/finder": "<3.4",
"symfony/proxy-manager-bridge": "<3.4",
- "symfony/yaml": "<3.4"
+ "symfony/yaml": "<4.4.26"
},
"provide": {
"psr/container-implementation": "1.0",
@@ -5915,7 +5909,7 @@
"require-dev": {
"symfony/config": "^4.3",
"symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/yaml": "^4.4|^5.0"
+ "symfony/yaml": "^4.4.26|^5.0"
},
"suggest": {
"symfony/config": "",
@@ -5950,7 +5944,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/v4.4.34"
+ "source": "https://github.com/symfony/dependency-injection/tree/v4.4.43"
},
"funding": [
{
@@ -5966,20 +5960,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-15T14:42:25+00:00"
+ "time": "2022-06-22T15:01:38+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v2.5.0",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8"
+ "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
- "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+ "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
"shasum": ""
},
"require": {
@@ -6017,7 +6011,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -6033,20 +6027,20 @@
"type": "tidelift"
}
],
- "time": "2021-07-12T14:48:14+00:00"
+ "time": "2022-01-02T09:53:40+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v4.4.34",
+ "version": "v4.4.41",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "17785c374645def1e884d8ec49976c156c61db4d"
+ "reference": "529feb0e03133dbd5fd3707200147cc4903206da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/17785c374645def1e884d8ec49976c156c61db4d",
- "reference": "17785c374645def1e884d8ec49976c156c61db4d",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/529feb0e03133dbd5fd3707200147cc4903206da",
+ "reference": "529feb0e03133dbd5fd3707200147cc4903206da",
"shasum": ""
},
"require": {
@@ -6085,7 +6079,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/v4.4.34"
+ "source": "https://github.com/symfony/error-handler/tree/v4.4.41"
},
"funding": [
{
@@ -6101,20 +6095,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-12T14:57:39+00:00"
+ "time": "2022-04-12T15:19:55+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v4.4.34",
+ "version": "v4.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8"
+ "reference": "708e761740c16b02c86e3f0c932018a06b895d40"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8",
- "reference": "1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/708e761740c16b02c86e3f0c932018a06b895d40",
+ "reference": "708e761740c16b02c86e3f0c932018a06b895d40",
"shasum": ""
},
"require": {
@@ -6169,7 +6163,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/v4.4.34"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.42"
},
"funding": [
{
@@ -6185,20 +6179,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-15T14:42:25+00:00"
+ "time": "2022-05-05T15:33:49+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v1.1.11",
+ "version": "v1.1.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c"
+ "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/01e9a4efac0ee33a05dfdf93b346f62e7d0e998c",
- "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e",
+ "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e",
"shasum": ""
},
"require": {
@@ -6248,7 +6242,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.11"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13"
},
"funding": [
{
@@ -6264,7 +6258,7 @@
"type": "tidelift"
}
],
- "time": "2021-03-23T15:25:38+00:00"
+ "time": "2022-01-02T09:41:36+00:00"
},
{
"name": "symfony/filesystem",
@@ -6393,16 +6387,16 @@
},
{
"name": "symfony/http-client-contracts",
- "version": "v2.5.0",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client-contracts.git",
- "reference": "ec82e57b5b714dbb69300d348bd840b345e24166"
+ "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ec82e57b5b714dbb69300d348bd840b345e24166",
- "reference": "ec82e57b5b714dbb69300d348bd840b345e24166",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
+ "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
"shasum": ""
},
"require": {
@@ -6451,7 +6445,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.0"
+ "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -6467,20 +6461,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-03T09:24:47+00:00"
+ "time": "2022-04-12T15:48:08+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v4.4.34",
+ "version": "v4.4.43",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "f4cbbb6fc428588ce8373802461e7fe84e6809ab"
+ "reference": "4441dada27f9208e03f449d73cb9253c639e53c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f4cbbb6fc428588ce8373802461e7fe84e6809ab",
- "reference": "f4cbbb6fc428588ce8373802461e7fe84e6809ab",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/4441dada27f9208e03f449d73cb9253c639e53c5",
+ "reference": "4441dada27f9208e03f449d73cb9253c639e53c5",
"shasum": ""
},
"require": {
@@ -6519,7 +6513,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v4.4.34"
+ "source": "https://github.com/symfony/http-foundation/tree/v4.4.43"
},
"funding": [
{
@@ -6535,20 +6529,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-04T12:23:33+00:00"
+ "time": "2022-06-19T13:07:44+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v4.4.35",
+ "version": "v4.4.43",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "fb793f1381c34b79a43596a532a6a49bd729c9db"
+ "reference": "c4c33fb9203e6f166ac0f318ce34e00686702522"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fb793f1381c34b79a43596a532a6a49bd729c9db",
- "reference": "fb793f1381c34b79a43596a532a6a49bd729c9db",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c4c33fb9203e6f166ac0f318ce34e00686702522",
+ "reference": "c4c33fb9203e6f166ac0f318ce34e00686702522",
"shasum": ""
},
"require": {
@@ -6623,7 +6617,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/v4.4.35"
+ "source": "https://github.com/symfony/http-kernel/tree/v4.4.43"
},
"funding": [
{
@@ -6639,20 +6633,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-24T08:40:10+00:00"
+ "time": "2022-06-26T16:51:30+00:00"
},
{
"name": "symfony/mime",
- "version": "v5.4.0",
+ "version": "v5.4.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "d4365000217b67c01acff407573906ff91bcfb34"
+ "reference": "02265e1e5111c3cd7480387af25e82378b7ab9cc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/d4365000217b67c01acff407573906ff91bcfb34",
- "reference": "d4365000217b67c01acff407573906ff91bcfb34",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/02265e1e5111c3cd7480387af25e82378b7ab9cc",
+ "reference": "02265e1e5111c3cd7480387af25e82378b7ab9cc",
"shasum": ""
},
"require": {
@@ -6706,7 +6700,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.4.0"
+ "source": "https://github.com/symfony/mime/tree/v5.4.10"
},
"funding": [
{
@@ -6722,25 +6716,28 @@
"type": "tidelift"
}
],
- "time": "2021-11-23T10:19:22+00:00"
+ "time": "2022-06-09T12:22:40+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.23.0",
+ "version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
+ "reference": "30885182c981ab175d4d034db0f6f469898070ab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
- "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
+ "reference": "30885182c981ab175d4d034db0f6f469898070ab",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
+ "provide": {
+ "ext-ctype": "*"
+ },
"suggest": {
"ext-ctype": "For best performance"
},
@@ -6785,7 +6782,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0"
},
"funding": [
{
@@ -6801,25 +6798,28 @@
"type": "tidelift"
}
],
- "time": "2021-02-19T12:13:01+00:00"
+ "time": "2021-10-20T20:35:02+00:00"
},
{
"name": "symfony/polyfill-iconv",
- "version": "v1.23.0",
+ "version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-iconv.git",
- "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933"
+ "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/63b5bb7db83e5673936d6e3b8b3e022ff6474933",
- "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933",
+ "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40",
+ "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
+ "provide": {
+ "ext-iconv": "*"
+ },
"suggest": {
"ext-iconv": "For best performance"
},
@@ -6865,7 +6865,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-iconv/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-iconv/tree/v1.25.0"
},
"funding": [
{
@@ -6881,20 +6881,20 @@
"type": "tidelift"
}
],
- "time": "2021-05-27T09:27:20+00:00"
+ "time": "2022-01-04T09:04:05+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.23.0",
+ "version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65"
+ "reference": "749045c69efb97c70d25d7463abba812e91f3a44"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/65bd267525e82759e7d8c4e8ceea44f398838e65",
- "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44",
+ "reference": "749045c69efb97c70d25d7463abba812e91f3a44",
"shasum": ""
},
"require": {
@@ -6952,7 +6952,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0"
},
"funding": [
{
@@ -6968,11 +6968,11 @@
"type": "tidelift"
}
],
- "time": "2021-05-27T09:27:20+00:00"
+ "time": "2021-09-14T14:02:44+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.23.0",
+ "version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@@ -7036,7 +7036,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0"
},
"funding": [
{
@@ -7056,21 +7056,24 @@
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.23.1",
+ "version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6"
+ "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6",
- "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
+ "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
+ "provide": {
+ "ext-mbstring": "*"
+ },
"suggest": {
"ext-mbstring": "For best performance"
},
@@ -7116,7 +7119,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0"
},
"funding": [
{
@@ -7132,7 +7135,7 @@
"type": "tidelift"
}
],
- "time": "2021-05-27T12:26:48+00:00"
+ "time": "2021-11-30T18:21:41+00:00"
},
{
"name": "symfony/polyfill-php72",
@@ -7291,16 +7294,16 @@
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.23.1",
+ "version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be"
+ "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be",
- "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c",
+ "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c",
"shasum": ""
},
"require": {
@@ -7354,7 +7357,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0"
},
"funding": [
{
@@ -7370,20 +7373,20 @@
"type": "tidelift"
}
],
- "time": "2021-07-28T13:41:28+00:00"
+ "time": "2022-03-04T08:16:47+00:00"
},
{
"name": "symfony/process",
- "version": "v4.4.35",
+ "version": "v4.4.41",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "c2098705326addae6e6742151dfade47ac71da1b"
+ "reference": "9eedd60225506d56e42210a70c21bb80ca8456ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/c2098705326addae6e6742151dfade47ac71da1b",
- "reference": "c2098705326addae6e6742151dfade47ac71da1b",
+ "url": "https://api.github.com/repos/symfony/process/zipball/9eedd60225506d56e42210a70c21bb80ca8456ce",
+ "reference": "9eedd60225506d56e42210a70c21bb80ca8456ce",
"shasum": ""
},
"require": {
@@ -7416,7 +7419,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v4.4.35"
+ "source": "https://github.com/symfony/process/tree/v4.4.41"
},
"funding": [
{
@@ -7432,7 +7435,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-22T22:36:24+00:00"
+ "time": "2022-04-04T10:19:07+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
@@ -7524,16 +7527,16 @@
},
{
"name": "symfony/routing",
- "version": "v4.4.34",
+ "version": "v4.4.41",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "fc9dda0c8496f8ef0a89805c2eabfc43b8cef366"
+ "reference": "c25e38d403c00d5ddcfc514f016f1b534abdf052"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/fc9dda0c8496f8ef0a89805c2eabfc43b8cef366",
- "reference": "fc9dda0c8496f8ef0a89805c2eabfc43b8cef366",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/c25e38d403c00d5ddcfc514f016f1b534abdf052",
+ "reference": "c25e38d403c00d5ddcfc514f016f1b534abdf052",
"shasum": ""
},
"require": {
@@ -7593,7 +7596,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v4.4.34"
+ "source": "https://github.com/symfony/routing/tree/v4.4.41"
},
"funding": [
{
@@ -7609,20 +7612,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-04T12:23:33+00:00"
+ "time": "2022-04-12T15:19:55+00:00"
},
{
"name": "symfony/serializer",
- "version": "v4.4.35",
+ "version": "v4.4.43",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "1b2ae02cb1b923987947e013688c51954a80b751"
+ "reference": "bd020a578d786952cf5d67f8140dfacc161f58a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/1b2ae02cb1b923987947e013688c51954a80b751",
- "reference": "1b2ae02cb1b923987947e013688c51954a80b751",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/bd020a578d786952cf5d67f8140dfacc161f58a4",
+ "reference": "bd020a578d786952cf5d67f8140dfacc161f58a4",
"shasum": ""
},
"require": {
@@ -7647,7 +7650,7 @@
"symfony/error-handler": "^4.4|^5.0",
"symfony/http-foundation": "^3.4|^4.0|^5.0",
"symfony/mime": "^4.4|^5.0",
- "symfony/property-access": "^3.4.41|^4.4.9|^5.0.9",
+ "symfony/property-access": "^4.4.36|^5.3.13",
"symfony/property-info": "^3.4.13|~4.0|^5.0",
"symfony/validator": "^3.4|^4.0|^5.0",
"symfony/yaml": "^3.4|^4.0|^5.0"
@@ -7687,7 +7690,7 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/serializer/tree/v4.4.35"
+ "source": "https://github.com/symfony/serializer/tree/v4.4.43"
},
"funding": [
{
@@ -7703,26 +7706,26 @@
"type": "tidelift"
}
],
- "time": "2021-11-24T08:12:42+00:00"
+ "time": "2022-06-24T10:10:05+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.5.0",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc"
+ "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
- "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1"
+ "symfony/deprecation-contracts": "^2.1|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
@@ -7770,7 +7773,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.5.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -7786,20 +7789,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-04T16:48:04+00:00"
+ "time": "2022-05-30T19:17:29+00:00"
},
{
"name": "symfony/translation",
- "version": "v4.4.34",
+ "version": "v4.4.41",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "26d330720627b234803595ecfc0191eeabc65190"
+ "reference": "dcb67eae126e74507e0b4f0b9ac6ef35b37c3331"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/26d330720627b234803595ecfc0191eeabc65190",
- "reference": "26d330720627b234803595ecfc0191eeabc65190",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/dcb67eae126e74507e0b4f0b9ac6ef35b37c3331",
+ "reference": "dcb67eae126e74507e0b4f0b9ac6ef35b37c3331",
"shasum": ""
},
"require": {
@@ -7859,7 +7862,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v4.4.34"
+ "source": "https://github.com/symfony/translation/tree/v4.4.41"
},
"funding": [
{
@@ -7875,20 +7878,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-04T12:23:33+00:00"
+ "time": "2022-04-21T07:22:34+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v2.5.0",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e"
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/d28150f0f44ce854e942b671fc2620a98aae1b1e",
- "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
"shasum": ""
},
"require": {
@@ -7937,7 +7940,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v2.5.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -7953,20 +7956,20 @@
"type": "tidelift"
}
],
- "time": "2021-08-17T14:20:01+00:00"
+ "time": "2022-06-27T16:58:25+00:00"
},
{
"name": "symfony/validator",
- "version": "v4.4.35",
+ "version": "v4.4.43",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
- "reference": "629f420d8350634fd8ed686d4472c1f10044b265"
+ "reference": "5ae0de59615dff1896d44bc986ad87600ea121e7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/validator/zipball/629f420d8350634fd8ed686d4472c1f10044b265",
- "reference": "629f420d8350634fd8ed686d4472c1f10044b265",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/5ae0de59615dff1896d44bc986ad87600ea121e7",
+ "reference": "5ae0de59615dff1896d44bc986ad87600ea121e7",
"shasum": ""
},
"require": {
@@ -7977,7 +7980,7 @@
"symfony/translation-contracts": "^1.1|^2"
},
"conflict": {
- "doctrine/lexer": "<1.0.2",
+ "doctrine/lexer": "<1.1",
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
"symfony/dependency-injection": "<3.4",
"symfony/http-kernel": "<4.4",
@@ -8043,7 +8046,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/validator/tree/v4.4.35"
+ "source": "https://github.com/symfony/validator/tree/v4.4.43"
},
"funding": [
{
@@ -8059,20 +8062,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-22T21:43:32+00:00"
+ "time": "2022-06-05T18:35:51+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v5.4.0",
+ "version": "v5.4.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "89ab66eaef230c9cd1992de2e9a1b26652b127b9"
+ "reference": "af52239a330fafd192c773795520dc2dd62b5657"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/89ab66eaef230c9cd1992de2e9a1b26652b127b9",
- "reference": "89ab66eaef230c9cd1992de2e9a1b26652b127b9",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/af52239a330fafd192c773795520dc2dd62b5657",
+ "reference": "af52239a330fafd192c773795520dc2dd62b5657",
"shasum": ""
},
"require": {
@@ -8132,7 +8135,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.0"
+ "source": "https://github.com/symfony/var-dumper/tree/v5.4.9"
},
"funding": [
{
@@ -8148,20 +8151,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-29T15:30:56+00:00"
+ "time": "2022-05-21T10:24:18+00:00"
},
{
"name": "symfony/yaml",
- "version": "v4.4.34",
+ "version": "v4.4.43",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "2c309e258adeb9970229042be39b360d34986fad"
+ "reference": "07e392f0ef78376d080d5353c081a5e5704835bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/2c309e258adeb9970229042be39b360d34986fad",
- "reference": "2c309e258adeb9970229042be39b360d34986fad",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/07e392f0ef78376d080d5353c081a5e5704835bd",
+ "reference": "07e392f0ef78376d080d5353c081a5e5704835bd",
"shasum": ""
},
"require": {
@@ -8203,7 +8206,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v4.4.34"
+ "source": "https://github.com/symfony/yaml/tree/v4.4.43"
},
"funding": [
{
@@ -8219,20 +8222,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-18T18:49:23+00:00"
+ "time": "2022-06-20T08:31:17+00:00"
},
{
"name": "twig/twig",
- "version": "v2.14.11",
+ "version": "v2.15.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "66baa66f29ee30e487e05f1679903e36eb01d727"
+ "reference": "3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/66baa66f29ee30e487e05f1679903e36eb01d727",
- "reference": "66baa66f29ee30e487e05f1679903e36eb01d727",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4",
+ "reference": "3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4",
"shasum": ""
},
"require": {
@@ -8248,7 +8251,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.14-dev"
+ "dev-master": "2.15-dev"
}
},
"autoload": {
@@ -8287,7 +8290,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v2.14.11"
+ "source": "https://github.com/twigphp/Twig/tree/v2.15.1"
},
"funding": [
{
@@ -8299,7 +8302,7 @@
"type": "tidelift"
}
],
- "time": "2022-02-04T06:57:25+00:00"
+ "time": "2022-05-17T05:46:24+00:00"
},
{
"name": "typo3/phar-stream-wrapper",
@@ -8783,16 +8786,16 @@
},
{
"name": "composer/composer",
- "version": "2.2.14",
+ "version": "2.2.15",
"source": {
"type": "git",
"url": "https://github.com/composer/composer.git",
- "reference": "8c7a2d200bb0e66d6fafeff2f9c9a27188e52842"
+ "reference": "509dcbd4f8d459e0ef2ef223a231b8c31bceed78"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/composer/zipball/8c7a2d200bb0e66d6fafeff2f9c9a27188e52842",
- "reference": "8c7a2d200bb0e66d6fafeff2f9c9a27188e52842",
+ "url": "https://api.github.com/repos/composer/composer/zipball/509dcbd4f8d459e0ef2ef223a231b8c31bceed78",
+ "reference": "509dcbd4f8d459e0ef2ef223a231b8c31bceed78",
"shasum": ""
},
"require": {
@@ -8862,7 +8865,7 @@
"support": {
"irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/composer/issues",
- "source": "https://github.com/composer/composer/tree/2.2.14"
+ "source": "https://github.com/composer/composer/tree/2.2.15"
},
"funding": [
{
@@ -8878,7 +8881,7 @@
"type": "tidelift"
}
],
- "time": "2022-06-06T14:32:50+00:00"
+ "time": "2022-07-01T10:01:26+00:00"
},
{
"name": "composer/metadata-minifier",
@@ -10000,22 +10003,22 @@
},
{
"name": "drupal/core-dev",
- "version": "9.3.17",
+ "version": "9.4.1",
"source": {
"type": "git",
"url": "https://github.com/drupal/core-dev.git",
- "reference": "d093ec9dd1106069fd01535235dd5797662a61cb"
+ "reference": "72ddd684df05fc22e97d42ddba5fb6c5ee9f9b29"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/drupal/core-dev/zipball/d093ec9dd1106069fd01535235dd5797662a61cb",
- "reference": "d093ec9dd1106069fd01535235dd5797662a61cb",
+ "url": "https://api.github.com/repos/drupal/core-dev/zipball/72ddd684df05fc22e97d42ddba5fb6c5ee9f9b29",
+ "reference": "72ddd684df05fc22e97d42ddba5fb6c5ee9f9b29",
"shasum": ""
},
"require": {
"behat/mink": "^1.8",
"behat/mink-selenium2-driver": "^1.4",
- "composer/composer": "^2.0.2",
+ "composer/composer": "^2.2.12",
"drupal/coder": "^8.3.10",
"easyrdf/easyrdf": "^0.9 || ^1.0",
"friends-of-behat/mink-browserkit-driver": "^1.4",
@@ -10044,9 +10047,9 @@
],
"description": "require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.",
"support": {
- "source": "https://github.com/drupal/core-dev/tree/9.3.17"
+ "source": "https://github.com/drupal/core-dev/tree/9.4.1"
},
- "time": "2021-11-30T05:41:29+00:00"
+ "time": "2022-04-14T00:37:13+00:00"
},
{
"name": "drupal/devel",
@@ -11730,16 +11733,16 @@
},
{
"name": "phpstan/phpstan",
- "version": "1.7.15",
+ "version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a"
+ "reference": "b7648d4ee9321665acaf112e49da9fd93df8fbd5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a",
- "reference": "cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b7648d4ee9321665acaf112e49da9fd93df8fbd5",
+ "reference": "b7648d4ee9321665acaf112e49da9fd93df8fbd5",
"shasum": ""
},
"require": {
@@ -11765,7 +11768,7 @@
"description": "PHPStan - PHP Static Analysis Tool",
"support": {
"issues": "https://github.com/phpstan/phpstan/issues",
- "source": "https://github.com/phpstan/phpstan/tree/1.7.15"
+ "source": "https://github.com/phpstan/phpstan/tree/1.8.0"
},
"funding": [
{
@@ -11785,7 +11788,7 @@
"type": "tidelift"
}
],
- "time": "2022-06-20T08:29:01+00:00"
+ "time": "2022-06-29T08:53:31+00:00"
},
{
"name": "phpstan/phpstan-deprecation-rules",
diff --git a/composer.patches.json b/composer.patches.json
index c34b5324..effa177f 100644
--- a/composer.patches.json
+++ b/composer.patches.json
@@ -1,15 +1,15 @@
{
"patches": {
"drupal/core": {
- "Issue #1356276: Introduce base profiles (Scheduled Drupal 9.4.0)": "patches/drupal/D93x-1356276-675.patch",
- "Issue #2924549: Invoke hook after a site install is complete (Scheduled Drupal 9.4.0)": "patches/drupal/D91x-2924549-38.patch",
- "Issue #3181946: ReplicaKillSwitch unnecessarily starts a session on each request (Scheduled Drupal 9.4.0)": "patches/drupal/D94x-3181946-23.patch",
- "Issue #3098935: JSON:API can't handle exceptions thrown during authentication (Scheduled Drupal 9.4.0)": "patches/drupal/D94x-3098935-16.patch",
+ "Issue #1356276: Introduce base profiles (Scheduled Drupal 9.5.0)": "patches/drupal/D94x-1356276-686.patch",
+ "Issue #2924549: Invoke hook after a site install is complete (Scheduled Drupal 9.5.0)": "patches/drupal/D91x-2924549-38.patch",
+ "Issue #3181946: ReplicaKillSwitch unnecessarily starts a session on each request (Scheduled Drupal 9.5.0)": "patches/drupal/D94x-3181946-23.patch",
+ "Issue #3098935: JSON:API can't handle exceptions thrown during authentication (Scheduled Drupal 9.5.0)": "patches/drupal/D94x-3098935-16.patch",
"Custom: Change file upload route for jsonapi extras": "patches/drupal/custom-change-file-upload-route-for-jsonapi-extras.patch",
"Custom: Modify upload user avatar access check": "patches/drupal/custom-modify-upload-user-avatar-access-check.patch",
"Custom: Jsonapi Upload route is recognized as jsonapi request": "patches/drupal/custom-file-upload-route-is-jsonapi-request.patch",
"Custom: Hide meta drupal IDs in JSON:API response": "patches/drupal/custom-hide-meta-drupal-ids-jsonapi.patch",
- "Issue #3050383: PageCache getCacheId doesnt compare cid of the following subrequests in subrequest queue calls": "patches/drupal/page-cache-id-doesnt-compare-cid-subrequests.patch"
+ "Custom Issue #3050383: PageCache getCacheId doesnt compare cid of the following subrequests in subrequest queue calls": "patches/drupal/page-cache-id-doesnt-compare-cid-subrequests.patch"
},
"drupal/jsonapi_include": {
"Issue #3131167: Infinite recursion for nested include": "patches/jsonapi_include/JAI8x14-3131167-6.patch",
diff --git a/patches/drupal/D93x-1356276-675.patch b/patches/drupal/D94x-1356276-686.patch
similarity index 93%
rename from patches/drupal/D93x-1356276-675.patch
rename to patches/drupal/D94x-1356276-686.patch
index ea65105b..3537bf75 100644
--- a/patches/drupal/D93x-1356276-675.patch
+++ b/patches/drupal/D94x-1356276-686.patch
@@ -1,8 +1,8 @@
diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
-index 5a5f92339b..dede4b9f7b 100644
+index 4375abdebd..f2a1b6853a 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
-@@ -464,6 +464,12 @@ function install_begin_request($class_loader, &$install_state) {
+@@ -465,6 +465,12 @@ function install_begin_request($class_loader, &$install_state) {
if (isset($install_state['profile_info']['distribution']['install']['theme'])) {
$install_state['theme'] = $install_state['profile_info']['distribution']['install']['theme'];
}
@@ -13,10 +13,10 @@ index 5a5f92339b..dede4b9f7b 100644
+ }, $profiles);
+ $listing->setProfileDirectories($profile_directories);
}
-
+
// Before having installed the system module and being able to do a module
-@@ -847,18 +853,22 @@ function install_tasks($install_state) {
-
+@@ -848,18 +854,22 @@ function install_tasks($install_state) {
+
// Now add any tasks defined by the installation profile.
if (!empty($install_state['parameters']['profile'])) {
- // Load the profile install file, because it is not always loaded when
@@ -50,8 +50,8 @@ index 5a5f92339b..dede4b9f7b 100644
}
}
}
-@@ -876,11 +886,13 @@ function install_tasks($install_state) {
-
+@@ -877,11 +887,13 @@ function install_tasks($install_state) {
+
// Allow the installation profile to modify the full list of tasks.
if (!empty($install_state['parameters']['profile'])) {
- $profile = $install_state['parameters']['profile'];
@@ -69,7 +69,7 @@ index 5a5f92339b..dede4b9f7b 100644
}
}
}
-@@ -1264,7 +1276,9 @@ function install_select_profile(&$install_state) {
+@@ -1266,7 +1278,9 @@ function install_select_profile(&$install_state) {
* - For interactive installations via request query parameters.
* - For non-interactive installations via install_drupal() settings.
* - One of the available profiles is a distribution. If multiple profiles are
@@ -80,7 +80,7 @@ index 5a5f92339b..dede4b9f7b 100644
* - Only one visible profile is available.
*
* @param array $install_state
-@@ -1289,12 +1303,9 @@ function _install_select_profile(&$install_state) {
+@@ -1291,12 +1305,9 @@ function _install_select_profile(&$install_state) {
return $profile;
}
}
@@ -96,7 +96,7 @@ index 5a5f92339b..dede4b9f7b 100644
}
// Get all visible (not hidden) profiles.
$visible_profiles = array_filter($install_state['profiles'], function ($profile) {
-@@ -1522,7 +1533,9 @@ function _install_get_version_info($version) {
+@@ -1524,7 +1535,9 @@ function _install_get_version_info($version) {
*/
function install_load_profile(&$install_state) {
$profile = $install_state['parameters']['profile'];
@@ -105,12 +105,12 @@ index 5a5f92339b..dede4b9f7b 100644
+ $install_state['profiles'][$profile_id]->load();
+ }
$install_state['profile_info'] = install_profile_info($profile, $install_state['parameters']['langcode'] ?? 'en');
-
+
$sync_directory = Settings::get('config_sync_directory');
-@@ -1656,6 +1669,10 @@ function install_install_profile(&$install_state) {
-
+@@ -1658,6 +1671,10 @@ function install_install_profile(&$install_state) {
+
\Drupal::service('module_installer')->install([$install_state['parameters']['profile']], FALSE);
-
+
+ // Install all the profiles.
+ $profiles = \Drupal::service('extension.list.profile')->getAncestors();
+ \Drupal::service('module_installer')->install(array_keys($profiles), FALSE);
@@ -119,18 +119,18 @@ index 5a5f92339b..dede4b9f7b 100644
// @see _drupal_maintenance_theme()
\Drupal::theme()->resetActiveTheme();
diff --git a/core/includes/install.inc b/core/includes/install.inc
-index dcb7ffa691..aaedfb415c 100644
+index adc4a787e3..1a4fb5bbe5 100644
--- a/core/includes/install.inc
+++ b/core/includes/install.inc
-@@ -532,7 +532,6 @@ function _drupal_rewrite_settings_dump_one(\stdClass $variable, $prefix = '', $s
+@@ -533,7 +533,6 @@ function _drupal_rewrite_settings_dump_one(\stdClass $variable, $prefix = '', $s
* The list of modules to install.
*/
function drupal_verify_profile($install_state) {
- $profile = $install_state['parameters']['profile'];
$info = $install_state['profile_info'];
-
+
// Get the list of available modules for the selected installation profile.
-@@ -541,10 +540,11 @@ function drupal_verify_profile($install_state) {
+@@ -542,10 +541,11 @@ function drupal_verify_profile($install_state) {
foreach ($listing->scan('module') as $present_module) {
$present_modules[] = $present_module->getName();
}
@@ -143,10 +143,10 @@ index dcb7ffa691..aaedfb415c 100644
+ foreach ($listing->scan('profile') as $present_profile) {
+ $present_modules[] = $present_profile->getName();
+ }
-
+
// Verify that all of the profile's required modules are present.
$missing_modules = array_diff($info['install'], $present_modules);
-@@ -1076,6 +1076,9 @@ function drupal_check_module($module) {
+@@ -1087,6 +1087,9 @@ function drupal_check_module($module) {
* Drupal's default installer theme.
* - finish_url: A destination to visit after the installation of the
* distribution is finished
@@ -156,21 +156,44 @@ index dcb7ffa691..aaedfb415c 100644
*
* Note that this function does an expensive file system scan to get info file
* information for dependencies. If you only need information from the info
-@@ -1115,8 +1118,8 @@ function install_profile_info($profile, $langcode = 'en') {
- 'config_install_path' => NULL,
- ];
+@@ -1114,22 +1117,9 @@ function install_profile_info($profile, $langcode = 'en') {
+ static $cache = [];
+
+ if (!isset($cache[$profile][$langcode])) {
+- // Set defaults for module info.
+- $defaults = [
+- 'dependencies' => [],
+- 'install' => [],
+- 'themes' => ['stark'],
+- 'description' => '',
+- 'version' => NULL,
+- 'hidden' => FALSE,
+- 'php' => \Drupal::MINIMUM_PHP,
+- 'config_install_path' => NULL,
+- ];
$profile_path = \Drupal::service('extension.list.profile')->getPath($profile);
-- $info = \Drupal::service('info_parser')->parse("$profile_path/$profile.info.yml");
+- /** @var \Drupal\Core\Extension\InfoParserInterface $parser */
+- $parser = \Drupal::service('info_parser');
+- $info = $parser->parse("$profile_path/$profile.info.yml");
- $info += $defaults;
+ $info = \Drupal::service('extension.list.profile')->getExtensionInfo($profile);
+ $ancestors = \Drupal::service('extension.list.profile')->getAncestors($profile);
-
+
$dependency_name_function = function ($dependency) {
return Dependency::createFromString($dependency)->getName();
-@@ -1137,6 +1140,9 @@ function install_profile_info($profile, $langcode = 'en') {
+@@ -1140,6 +1130,8 @@ function install_profile_info($profile, $langcode = 'en') {
+ // Convert install key in [project:module] format.
+ $info['install'] = array_map($dependency_name_function, $info['install']);
+
++ /** @var \Drupal\Core\Extension\InfoParserInterface $parser */
++ $parser = \Drupal::service('info_parser');
+ // Get a list of core's required modules.
+ $required = [];
+ $listing = new ExtensionDiscovery(\Drupal::root());
+@@ -1157,6 +1149,9 @@ function install_profile_info($profile, $langcode = 'en') {
// remove any duplicates.
$info['install'] = array_unique(array_merge($info['install'], $required, $info['dependencies'], $locale));
-
+
+ // Remove the base profiles from the install list.
+ $info['install'] = array_diff($info['install'], array_keys($ancestors));
+
@@ -182,7 +205,7 @@ index 107ca8a071..4e4c14a94b 100644
--- a/core/lib/Drupal/Core/Config/ConfigInstaller.php
+++ b/core/lib/Drupal/Core/Config/ConfigInstaller.php
@@ -4,6 +4,7 @@
-
+
use Drupal\Component\Utility\Crypt;
use Drupal\Core\Config\Entity\ConfigDependencyManager;
+use Drupal\Core\Extension\ProfileExtensionList;
@@ -192,7 +215,7 @@ index 107ca8a071..4e4c14a94b 100644
@@ -52,6 +53,13 @@ class ConfigInstaller implements ConfigInstallerInterface {
*/
protected $sourceStorage;
-
+
+ /**
+ * The profile list.
+ *
@@ -223,7 +246,7 @@ index 107ca8a071..4e4c14a94b 100644
@trigger_error('Calling ConfigInstaller::__construct() without the $extension_path_resolver argument is deprecated in drupal:9.3.0 and is removed from drupal:10.0.0. See https://www.drupal.org/node/2940438', E_USER_DEPRECATED);
$extension_path_resolver = \Drupal::service('extension.path.resolver');
@@ -532,7 +543,8 @@ public function checkConfigurationToInstall($type, $name) {
-
+
// Install profiles can not have config clashes. Configuration that
// has the same name as a module's configuration will be used instead.
- if ($name != $this->drupalGetProfile()) {
@@ -238,10 +261,10 @@ index 1006013f5f..6aae5ef046 100644
+++ b/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php
@@ -3,6 +3,7 @@
namespace Drupal\Core\Config;
-
+
use Drupal\Core\Extension\ExtensionDiscovery;
+use Drupal\Core\Extension\ProfileExtensionList;
-
+
/**
* Storage to access configuration and schema in enabled extensions.
@@ -50,9 +51,11 @@ class ExtensionInstallStorage extends InstallStorage {
@@ -264,7 +287,7 @@ index 1006013f5f..6aae5ef046 100644
$this->folders = [];
- $this->folders += $this->getCoreNames();
+ $this->folders = $this->getCoreNames() + $this->folders;
-
+
$extensions = $this->configStorage->read('core.extension');
// @todo Remove this scan as part of https://www.drupal.org/node/2186491
$listing = new ExtensionDiscovery(\Drupal::root());
@@ -303,7 +326,7 @@ index 1006013f5f..6aae5ef046 100644
- $this->folders += $this->getComponentNames($theme_list);
+ $this->folders = $this->getComponentNames($theme_list) + $this->folders;
}
-
+
if ($this->includeProfile) {
- // The install profile can override module default configuration. We do
- // this by replacing the config file path from the module/theme with the
@@ -331,17 +354,17 @@ index a21388b3cb..01f25285b4 100644
--- a/core/lib/Drupal/Core/Config/InstallStorage.php
+++ b/core/lib/Drupal/Core/Config/InstallStorage.php
@@ -4,6 +4,7 @@
-
+
use Drupal\Core\Extension\ExtensionDiscovery;
use Drupal\Core\Extension\Extension;
+use Drupal\Core\Extension\ProfileExtensionList;
-
+
/**
* Storage used by the Drupal installer.
@@ -47,6 +48,13 @@ class InstallStorage extends FileStorage {
*/
protected $directory;
-
+
+ /**
+ * The profile list, used to find additional folders to scan for config.
+ *
@@ -366,7 +389,7 @@ index a21388b3cb..01f25285b4 100644
+ $this->profileList = $profile_list ?: \Drupal::service('extension.list.profile');
+ }
}
-
+
/**
@@ -150,7 +163,9 @@ public function listAll($prefix = '') {
protected function getAllFolders() {
@@ -396,7 +419,7 @@ index a21388b3cb..01f25285b4 100644
return $this->folders;
}
diff --git a/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php
-index 99b933754d..c2dd38d769 100644
+index 0547a14d3a..fdc3f9fb71 100644
--- a/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/ConfigImportSubscriber.php
@@ -7,6 +7,7 @@
@@ -404,13 +427,13 @@ index 99b933754d..c2dd38d769 100644
use Drupal\Core\Config\ConfigImportValidateEventSubscriberBase;
use Drupal\Core\Config\ConfigNameException;
+use Drupal\Core\Extension\Extension;
+ use Drupal\Core\Extension\ConfigImportModuleUninstallValidatorInterface;
use Drupal\Core\Extension\ModuleExtensionList;
- use Drupal\Core\Extension\ThemeHandlerInterface;
- use Drupal\Core\Installer\InstallerKernel;
-@@ -119,12 +120,18 @@ protected function validateModules(ConfigImporter $config_importer) {
+ use Drupal\Core\Extension\ModuleUninstallValidatorInterface;
+@@ -138,12 +139,18 @@ protected function validateModules(ConfigImporter $config_importer) {
$config_importer->logError($this->t('Unable to install the %module module since it does not exist.', ['%module' => $module]));
}
-
+
+ // Get a list of parent profiles and the main profile.
+ /** @var \Drupal\Core\Extension\Extension[] $profiles */
+ $profiles = \Drupal::service('extension.list.profile')->getAncestors();
@@ -427,7 +450,7 @@ index 99b933754d..c2dd38d769 100644
$missing_dependencies[] = $module_data[$required_module]->info['name'];
}
}
-@@ -144,18 +151,44 @@ protected function validateModules(ConfigImporter $config_importer) {
+@@ -163,10 +170,15 @@ protected function validateModules(ConfigImporter $config_importer) {
$uninstalls = $config_importer->getExtensionChangelist('module', 'uninstall');
foreach ($uninstalls as $module) {
foreach (array_keys($module_data[$module]->required_by) as $dependent_module) {
@@ -446,8 +469,11 @@ index 99b933754d..c2dd38d769 100644
+ }
}
}
+ // Ensure that modules can be uninstalled.
+@@ -181,10 +193,31 @@ protected function validateModules(ConfigImporter $config_importer) {
+ }
}
-
+
- // Ensure that the install profile is not being uninstalled.
- if (in_array($install_profile, $uninstalls, TRUE)) {
- $profile_name = $module_data[$install_profile]->info['name'];
@@ -479,15 +505,15 @@ index 99b933754d..c2dd38d769 100644
+ }
}
}
-
+
diff --git a/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php b/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php
-index 266886ba95..3874e08b87 100644
+index 76d6f1947b..f5938fd3df 100644
--- a/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php
+++ b/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php
@@ -91,6 +91,15 @@ class ExtensionDiscovery {
*/
protected $sitePath;
-
+
+ /**
+ * The profile list.
+ *
@@ -524,7 +550,7 @@ index 266886ba95..3874e08b87 100644
+ $this->profileList = \Drupal::service('extension.list.profile');
+ }
}
-
+
/**
@@ -229,7 +250,19 @@ public function scan($type, $include_tests = NULL) {
public function setProfileDirectoriesFromSettings() {
@@ -548,7 +574,7 @@ index 266886ba95..3874e08b87 100644
return $this;
}
diff --git a/core/lib/Drupal/Core/Extension/ModuleExtensionList.php b/core/lib/Drupal/Core/Extension/ModuleExtensionList.php
-index 5aed60c0b0..efc482d905 100644
+index 6337cd0894..affdf7f506 100644
--- a/core/lib/Drupal/Core/Extension/ModuleExtensionList.php
+++ b/core/lib/Drupal/Core/Extension/ModuleExtensionList.php
@@ -42,7 +42,7 @@ class ModuleExtensionList extends ExtensionList {
@@ -559,7 +585,7 @@ index 5aed60c0b0..efc482d905 100644
+ * @var \Drupal\Core\Extension\ProfileExtensionList
*/
protected $profileList;
-
+
@@ -63,14 +63,14 @@ class ModuleExtensionList extends ExtensionList {
* The state.
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
@@ -575,19 +601,20 @@ index 5aed60c0b0..efc482d905 100644
- public function __construct($root, $type, CacheBackendInterface $cache, InfoParserInterface $info_parser, ModuleHandlerInterface $module_handler, StateInterface $state, ConfigFactoryInterface $config_factory, ExtensionList $profile_list, $install_profile, array $container_modules_info = []) {
+ public function __construct($root, $type, CacheBackendInterface $cache, InfoParserInterface $info_parser, ModuleHandlerInterface $module_handler, StateInterface $state, ConfigFactoryInterface $config_factory, ProfileExtensionList $profile_list, $install_profile, array $container_modules_info = []) {
parent::__construct($root, $type, $cache, $info_parser, $module_handler, $state, $install_profile);
-
+
$this->configFactory = $config_factory;
-@@ -107,8 +107,7 @@ protected function getExtensionDiscovery() {
+@@ -106,9 +106,7 @@ protected function getExtensionDiscovery() {
+ */
protected function getProfileDirectories(ExtensionDiscovery $discovery) {
$discovery->setProfileDirectories([]);
- $all_profiles = $discovery->scan('profile');
+- $all_profiles = $discovery->scan('profile');
- $active_profile = $all_profiles[$this->installProfile];
- $profiles = array_intersect_key($all_profiles, $this->configFactory->get('core.extension')->get('module') ?: [$active_profile->getName() => 0]);
+ $profiles = $this->profileList->getAncestors($this->installProfile);
-
+
$profile_directories = array_map(function (Extension $profile) {
return $profile->getPath();
-@@ -136,13 +135,9 @@ protected function getActiveProfile() {
+@@ -136,13 +134,9 @@ protected function getActiveProfile() {
*/
protected function doScanExtensions() {
$extensions = parent::doScanExtensions();
@@ -601,24 +628,24 @@ index 5aed60c0b0..efc482d905 100644
+ // Merge in the install profile and any profile ancestors.
+ $profiles = $this->profileList->getAncestors($this->installProfile);
+ $extensions = array_merge($extensions, $profiles);
-
+
return $extensions;
}
diff --git a/core/lib/Drupal/Core/Extension/ModuleInstaller.php b/core/lib/Drupal/Core/Extension/ModuleInstaller.php
-index 21970253e9..6640e0044e 100644
+index 909f0eb6c4..27d79a6978 100644
--- a/core/lib/Drupal/Core/Extension/ModuleInstaller.php
+++ b/core/lib/Drupal/Core/Extension/ModuleInstaller.php
-@@ -421,7 +421,7 @@ public function uninstall(array $module_list, $uninstall_dependents = TRUE) {
+@@ -416,7 +416,7 @@ public function uninstall(array $module_list, $uninstall_dependents = TRUE) {
return FALSE;
}
-
+
- // Skip already uninstalled modules.
+ // Skip already uninstalled modules and dependencies of profiles.
if (isset($installed_modules[$dependent]) && !isset($module_list[$dependent])) {
$module_list[$dependent] = $dependent;
}
diff --git a/core/lib/Drupal/Core/Extension/ProfileExtensionList.php b/core/lib/Drupal/Core/Extension/ProfileExtensionList.php
-index 5ef9c451fd..5f139a00ed 100644
+index 5ef9c451fd..426c92a654 100644
--- a/core/lib/Drupal/Core/Extension/ProfileExtensionList.php
+++ b/core/lib/Drupal/Core/Extension/ProfileExtensionList.php
@@ -23,13 +23,172 @@ class ProfileExtensionList extends ExtensionList {
@@ -629,7 +656,7 @@ index 5ef9c451fd..5f139a00ed 100644
+ 'hidden' => FALSE,
+ 'base profile' => '',
];
-
+
+ /**
+ * {@inheritdoc}
+ */
@@ -706,7 +733,7 @@ index 5ef9c451fd..5f139a00ed 100644
+ }
+
+ // Remove any distributions which are extended by another one.
-+ foreach ($distributions as $profile_name => $profile) {
++ foreach ($distributions as $profile) {
+ if (!empty($profile->info['base profile'])) {
+ $base_profile = $profile->info['base profile'];
+ unset($distributions[$base_profile]);
@@ -793,7 +820,7 @@ index 5ef9c451fd..5f139a00ed 100644
- return [$this->installProfile];
+ return array_keys($this->getAncestors());
}
-
+
}
diff --git a/core/lib/Drupal/Core/Installer/InstallerProfileExtensionList.php b/core/lib/Drupal/Core/Installer/InstallerProfileExtensionList.php
new file mode 100644
@@ -864,13 +891,13 @@ index a35905b587..82923801a0 100644
--- a/core/lib/Drupal/Core/Installer/NormalInstallerServiceProvider.php
+++ b/core/lib/Drupal/Core/Installer/NormalInstallerServiceProvider.php
@@ -53,6 +53,7 @@ public function register(ContainerBuilder $container) {
-
+
// Use performance-optimized extension lists.
$container->getDefinition('extension.list.module')->setClass(InstallerModuleExtensionList::class);
+ $container->getDefinition('extension.list.profile')->setClass(InstallerProfileExtensionList::class);
$container->getDefinition('extension.list.theme')->setClass(InstallerThemeExtensionList::class);
$container->getDefinition('extension.list.theme_engine')->setClass(InstallerThemeEngineExtensionList::class);
-
+
diff --git a/core/modules/config/tests/config_test/src/TestInstallStorage.php b/core/modules/config/tests/config_test/src/TestInstallStorage.php
index e3c4918df4..6d140815b7 100644
--- a/core/modules/config/tests/config_test/src/TestInstallStorage.php
@@ -891,10 +918,10 @@ index e3c4918df4..6d140815b7 100644
}
diff --git a/core/modules/config/tests/src/Functional/ConfigImportBaseInstallProfileTest.php b/core/modules/config/tests/src/Functional/ConfigImportBaseInstallProfileTest.php
new file mode 100644
-index 0000000000..583c31153b
+index 0000000000..d1fb659c06
--- /dev/null
+++ b/core/modules/config/tests/src/Functional/ConfigImportBaseInstallProfileTest.php
-@@ -0,0 +1,96 @@
+@@ -0,0 +1,100 @@
+webUser = $this->drupalCreateUser(['synchronize configuration']);
@@ -945,17 +972,19 @@ index 0000000000..583c31153b
+ unset($core['module']['testing']);
+ $sync->write('core.extension', $core);
+
-+ $this->drupalPostForm('admin/config/development/configuration', [], t('Import all'));
-+ $this->assertText('The configuration cannot be imported because it failed validation for the following reasons:');
-+ $this->assertText('Unable to uninstall the Testing profile since it is a parent of another installed profile.');
++ $this->drupalGet('admin/config/development/configuration');
++ $this->submitForm([], 'Import all');
++ $this->assertSession()->pageTextContains('The configuration cannot be imported because it failed validation for the following reasons:');
++ $this->assertSession()->pageTextContains('Unable to uninstall the Testing profile since it is a parent of another installed profile.');
+
+ // Uninstall dependencies of parent profile.
+ $core['module']['testing'] = 0;
+ unset($core['module']['dynamic_page_cache']);
+ $sync->write('core.extension', $core);
+ $sync->deleteAll('dynamic_page_cache.');
-+ $this->drupalPostForm('admin/config/development/configuration', [], t('Import all'));
-+ $this->assertText('The configuration was imported successfully.');
++ $this->drupalGet('admin/config/development/configuration');
++ $this->submitForm([], 'Import all');
++ $this->assertSession()->pageTextContains('The configuration was imported successfully.');
+ $this->rebuildContainer();
+ $this->assertFalse(\Drupal::moduleHandler()->moduleExists('dynamic_page_cache'), 'The dynamic_page_cache module has been uninstalled.');
+ }
@@ -975,24 +1004,26 @@ index 0000000000..583c31153b
+ unset($core['module']['testing_inherited']);
+ $sync->write('core.extension', $core);
+
-+ $this->drupalPostForm('admin/config/development/configuration', [], t('Import all'));
-+ $this->assertText('The configuration cannot be imported because it failed validation for the following reasons:');
-+ $this->assertText('Unable to uninstall the Testing Inherited profile since it is the main install profile.');
++ $this->drupalGet('admin/config/development/configuration');
++ $this->submitForm([], 'Import all');
++ $this->assertSession()->pageTextContains('The configuration cannot be imported because it failed validation for the following reasons:');
++ $this->assertSession()->pageTextContains('Unable to uninstall the Testing Inherited profile since it is the main install profile.');
+
+ // Uninstall dependencies of main profile.
+ $core['module']['testing_inherited'] = 0;
+ unset($core['module']['syslog']);
+ $sync->write('core.extension', $core);
+ $sync->deleteAll('syslog.');
-+ $this->drupalPostForm('admin/config/development/configuration', [], t('Import all'));
-+ $this->assertText('The configuration was imported successfully.');
++ $this->drupalGet('admin/config/development/configuration');
++ $this->submitForm([], 'Import all');
++ $this->assertSession()->pageTextContains('The configuration was imported successfully.');
+ $this->rebuildContainer();
+ $this->assertFalse(\Drupal::moduleHandler()->moduleExists('syslog'), 'The syslog module has been uninstalled.');
+ }
+
+}
diff --git a/core/modules/config/tests/src/Functional/ConfigImportInstallProfileTest.php b/core/modules/config/tests/src/Functional/ConfigImportInstallProfileTest.php
-index 9766979d4e..b870aeed33 100644
+index cadd96ad32..644ad7f902 100644
--- a/core/modules/config/tests/src/Functional/ConfigImportInstallProfileTest.php
+++ b/core/modules/config/tests/src/Functional/ConfigImportInstallProfileTest.php
@@ -62,7 +62,7 @@ public function testInstallProfileValidation() {
@@ -1001,30 +1032,30 @@ index 9766979d4e..b870aeed33 100644
$this->assertSession()->pageTextContains('The configuration cannot be imported because it failed validation for the following reasons:');
- $this->assertSession()->pageTextContains('Unable to uninstall the Testing config import profile since it is the install profile.');
+ $this->assertSession()->pageTextContains('Unable to uninstall the Testing config import profile since it is the main install profile.');
-
+
// Uninstall dependencies of testing_config_import.
$core['module']['testing_config_import'] = 0;
diff --git a/core/modules/system/src/Form/ModulesUninstallForm.php b/core/modules/system/src/Form/ModulesUninstallForm.php
-index 0719511e8e..0e4f80f503 100644
+index 82c014c230..e8bbec424d 100644
--- a/core/modules/system/src/Form/ModulesUninstallForm.php
+++ b/core/modules/system/src/Form/ModulesUninstallForm.php
-@@ -143,10 +143,15 @@ public function buildForm(array $form, FormStateInterface $form_state) {
+@@ -146,10 +146,15 @@ public function buildForm(array $form, FormStateInterface $form_state) {
return $form;
}
-
+
+ $profiles = \Drupal::service('extension.list.profile')->getAncestors();
+
// Sort all modules by their name.
uasort($uninstallable, [ModuleExtensionList::class, 'sortByName']);
$validation_reasons = $this->moduleInstaller->validateUninstall(array_keys($uninstallable));
-
+
+ // Remove any profiles from the list.
+ $uninstallable = array_diff_key($uninstallable, $profiles);
+
$form['uninstall'] = ['#tree' => TRUE];
foreach ($uninstallable as $module_key => $module) {
$name = $module->info['name'] ?: $module->getName();
-@@ -167,7 +172,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
+@@ -185,7 +190,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
$form['uninstall'][$module->getName()]['#disabled'] = TRUE;
}
// All modules which depend on this one must be uninstalled first, before
@@ -1311,11 +1342,11 @@ index 0000000000..e14705d581
+
+}
diff --git a/core/tests/Drupal/KernelTests/Core/Config/ConfigImporterTest.php b/core/tests/Drupal/KernelTests/Core/Config/ConfigImporterTest.php
-index 14a51290b2..d14233b8b5 100644
+index 63d2169754..f73d00b4f9 100644
--- a/core/tests/Drupal/KernelTests/Core/Config/ConfigImporterTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Config/ConfigImporterTest.php
-@@ -732,7 +732,7 @@ public function testInstallProfileMisMatch() {
- $error_log = $this->configImporter->getErrors();
+@@ -735,7 +735,7 @@ public function testInstallProfileMisMatch() {
+ $error_log = $config_importer->getErrors();
// Install profiles can not be changed. Note that KernelTestBase currently
// does not use an install profile. This situation should be impossible
- // to get in but site's can removed the install profile setting from
@@ -1325,7 +1356,7 @@ index 14a51290b2..d14233b8b5 100644
}
diff --git a/core/tests/Drupal/KernelTests/Core/Extension/ProfileExtensionListTest.php b/core/tests/Drupal/KernelTests/Core/Extension/ProfileExtensionListTest.php
new file mode 100644
-index 0000000000..0c8faa21c4
+index 0000000000..1d7674533a
--- /dev/null
+++ b/core/tests/Drupal/KernelTests/Core/Extension/ProfileExtensionListTest.php
@@ -0,0 +1,145 @@
@@ -1416,7 +1447,7 @@ index 0000000000..0c8faa21c4
+ */
+ public function testSelectDistribution() {
+ $profile_list = new TestProfileExtensionList(
-+ $this->container->get('app.root'),
++ $this->container->getParameter('app.root'),
+ 'profile',
+ $this->container->get('cache.default'),
+ $this->container->get('info_parser'),
@@ -1474,4 +1505,3 @@ index 0000000000..0c8faa21c4
+ }
+
+}
-
diff --git a/web/.htaccess b/web/.htaccess
index 285cb298..fbce6b58 100644
--- a/web/.htaccess
+++ b/web/.htaccess
@@ -32,6 +32,11 @@ AddEncoding gzip svgz
php_value assert.active 0
+# PHP 8, Apache 1 and 2.
+
+ php_value assert.active 0
+
+
# Requires mod_expires to be enabled.
# Enable expirations.
diff --git a/web/.htaccess.orig b/web/.htaccess.orig
new file mode 100644
index 00000000..4d19147c
--- /dev/null
+++ b/web/.htaccess.orig
@@ -0,0 +1,187 @@
+#
+# Apache/PHP/Drupal settings:
+#
+
+# Protect files and directories from prying eyes.
+
+
+ Require all denied
+
+
+ Order allow,deny
+
+
+
+# Don't show directory listings for URLs which map to a directory.
+Options -Indexes
+
+# Set the default handler.
+DirectoryIndex index.php index.html index.htm
+
+# Add correct encoding for SVGZ.
+AddType image/svg+xml svg svgz
+AddEncoding gzip svgz
+
+# Most of the following PHP settings cannot be changed at runtime. See
+# sites/default/default.settings.php and
+# Drupal\Core\DrupalKernel::bootEnvironment() for settings that can be
+# changed at runtime.
+
+# PHP 7, Apache 1 and 2.
+
+ php_value assert.active 0
+
+
+# PHP 8, Apache 1 and 2.
+
+ php_value assert.active 0
+
+
+# Requires mod_expires to be enabled.
+
+ # Enable expirations.
+ ExpiresActive On
+
+ # Cache all files for 2 weeks after access (A).
+ ExpiresDefault A1209600
+
+
+ # Do not allow PHP scripts to be cached unless they explicitly send cache
+ # headers themselves. Otherwise all scripts would have to overwrite the
+ # headers set by mod_expires if they want another caching behavior. This may
+ # fail if an error occurs early in the bootstrap process, and it may cause
+ # problems if a non-Drupal PHP file is installed in a subdirectory.
+ ExpiresActive Off
+
+
+
+# Set a fallback resource if mod_rewrite is not enabled. This allows Drupal to
+# work without clean URLs. This requires Apache version >= 2.2.16. If Drupal is
+# not accessed by the top level URL (i.e.: http://example.com/drupal/ instead of
+# http://example.com/), the path to index.php will need to be adjusted.
+
+ FallbackResource /index.php
+
+
+# Various rewrite rules.
+
+ RewriteEngine on
+
+ # Set "protossl" to "s" if we were accessed via https://. This is used later
+ # if you enable "www." stripping or enforcement, in order to ensure that
+ # you don't bounce between http and https.
+ RewriteRule ^ - [E=protossl]
+ RewriteCond %{HTTPS} on
+ RewriteRule ^ - [E=protossl:s]
+
+ # Make sure Authorization HTTP header is available to PHP
+ # even when running as CGI or FastCGI.
+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ # Block access to "hidden" directories whose names begin with a period. This
+ # includes directories used by version control systems such as Subversion or
+ # Git to store control files. Files whose names begin with a period, as well
+ # as the control files used by CVS, are protected by the FilesMatch directive
+ # above.
+ #
+ # NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, it is
+ # not possible to block access to entire directories from .htaccess because
+ # is not allowed here.
+ #
+ # If you do not have mod_rewrite installed, you should remove these
+ # directories from your webroot or otherwise protect them from being
+ # downloaded.
+ RewriteRule "/\.|^\.(?!well-known/)" - [F]
+
+ # If your site can be accessed both with and without the 'www.' prefix, you
+ # can use one of the following settings to redirect users to your preferred
+ # URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
+ #
+ # To redirect all users to access the site WITH the 'www.' prefix,
+ # (http://example.com/foo will be redirected to http://www.example.com/foo)
+ # uncomment the following:
+ # RewriteCond %{HTTP_HOST} .
+ # RewriteCond %{HTTP_HOST} !^www\. [NC]
+ # RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
+ #
+ # To redirect all users to access the site WITHOUT the 'www.' prefix,
+ # (http://www.example.com/foo will be redirected to http://example.com/foo)
+ # uncomment the following:
+ # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
+ # RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
+
+ # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
+ # VirtualDocumentRoot and the rewrite rules are not working properly.
+ # For example if your site is at http://example.com/drupal uncomment and
+ # modify the following line:
+ # RewriteBase /drupal
+ #
+ # If your site is running in a VirtualDocumentRoot at http://example.com/,
+ # uncomment the following line:
+ # RewriteBase /
+
+ # Redirect common PHP files to their new locations.
+ RewriteCond %{REQUEST_URI} ^(.*)?/(install\.php) [OR]
+ RewriteCond %{REQUEST_URI} ^(.*)?/(rebuild\.php)
+ RewriteCond %{REQUEST_URI} !core
+ RewriteRule ^ %1/core/%2 [L,QSA,R=301]
+
+ # Rewrite install.php during installation to see if mod_rewrite is working
+ RewriteRule ^core/install\.php core/install.php?rewrite=ok [QSA,L]
+
+ # Pass all requests not referring directly to files in the filesystem to
+ # index.php.
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_URI} !=/favicon.ico
+ RewriteRule ^ index.php [L]
+
+ # For security reasons, deny access to other PHP files on public sites.
+ # Note: The following URI conditions are not anchored at the start (^),
+ # because Drupal may be located in a subdirectory. To further improve
+ # security, you can replace '!/' with '!^/'.
+ # Allow access to PHP files in /core (like authorize.php or install.php):
+ RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$
+ # Allow access to test-specific PHP files:
+ RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?\.php
+ # Allow access to Statistics module's custom front controller.
+ # Copy and adapt this rule to directly execute PHP files in contributed or
+ # custom modules or to run another PHP application in the same directory.
+ RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics\.php$
+ # Deny access to any other PHP files that do not match the rules above.
+ # Specifically, disallow autoload.php from being served directly.
+ RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
+
+ # Rules to correctly serve gzip compressed CSS and JS files.
+ # Requires both mod_rewrite and mod_headers to be enabled.
+
+ # Serve gzip compressed CSS files if they exist and the client accepts gzip.
+ RewriteCond %{HTTP:Accept-encoding} gzip
+ RewriteCond %{REQUEST_FILENAME}\.gz -s
+ RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
+
+ # Serve gzip compressed JS files if they exist and the client accepts gzip.
+ RewriteCond %{HTTP:Accept-encoding} gzip
+ RewriteCond %{REQUEST_FILENAME}\.gz -s
+ RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
+
+ # Serve correct content types, and prevent double compression.
+ RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=no-brotli:1]
+ RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=no-brotli:1]
+
+
+ # Serve correct encoding type.
+ Header set Content-Encoding gzip
+ # Force proxies to cache gzipped & non-gzipped css/js files separately.
+ Header append Vary Accept-Encoding
+
+
+
+
+# Various header fixes.
+
+ # Disable content sniffing, since it's an attack vector.
+ Header always set X-Content-Type-Options nosniff
+ # Disable Proxy header, since it's an attack vector.
+ RequestHeader unset Proxy
+