From e663b0e9fa2b0017b32c37ced08491b33a18f08d Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 09:00:06 +0200 Subject: [PATCH 01/10] Updated drupal core --- composer.json | 8 +- composer.lock | 2367 +++++++++++++++++++++++++----------------------- web/.gitignore | 1 + 3 files changed, 1248 insertions(+), 1128 deletions(-) create mode 100644 web/.gitignore diff --git a/composer.json b/composer.json index 7a1661ed..a8809805 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,6 @@ "php": "^8.4", "ext-dom": "*", "ext-libxml": "*", - "chx/drupal-issue-fork": "dev-main", "composer/installers": "^2.0", "cweagans/composer-patches": "^1.7", "drupal/better_exposed_filters": "^7.0", @@ -69,7 +68,6 @@ "prefer-stable": true, "config": { "allow-plugins": { - "chx/drupal-issue-fork": true, "composer/installers": true, "cweagans/composer-patches": true, "dealerdirect/phpcodesniffer-composer-installer": true, @@ -78,6 +76,7 @@ "ergebnis/composer-normalize": true, "php-http/discovery": true, "phpstan/extension-installer": true, + "symfony/runtime": true, "tbachert/spi": true }, "sort-packages": true @@ -141,9 +140,8 @@ }, "patches": { "drupal/core": { - "Add an Autowire trait for plugins (https://www.drupal.org/project/drupal/issues/3294266)": "https://www.drupal.org/files/issues/2023-08-18/3294266-24.patch", - "Disable forced configuration langcode (https://www.drupal.org/project/drupal/issues/3150540#comment-16204218)": "https://www.drupal.org/files/issues/2025-07-24/drupal-3150540-D1122_0.patch", - "Missing menu active trail on views (https://www.drupal.org/project/drupal/issues/3359511#comment-16330338)": "https://www.drupal.org/files/issues/2025-11-03/3359511-142-d11.2-no-tests.patch", + "Disable forced configuration langcode (https://www.drupal.org/project/drupal/issues/3150540#comment-16204218)": "https://www.drupal.org/files/issues/2026-07-08/drupal-3150540-60.patch", + "Missing menu active trail on views (https://www.drupal.org/project/drupal/issues/3359511#comment-16330338)": "https://www.drupal.org/files/issues/2026-09-16/drupal-3359511-regression-missing-menu-11.4.x.patch", "Add an option to 'hide filter tips' on text fields (https://www.drupal.org/project/drupal/issues/3323007)": "https://git.drupalcode.org/project/drupal/-/merge_requests/5453.diff" }, "drupal/masquerade": { diff --git a/composer.lock b/composer.lock index 0d611760..558d6ac3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,26 +4,26 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9f33723394130d627e006907b1d52d81", + "content-hash": "8c3c8273ea8219864716dd5b9e24faa5", "packages": [ { "name": "asm89/stack-cors", - "version": "v2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/asm89/stack-cors.git", - "reference": "acf3142e6c5eafa378dc8ef3c069ab4558993f70" + "reference": "33dcc9955bd5c683e1246f0162f48df73fe799f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/acf3142e6c5eafa378dc8ef3c069ab4558993f70", - "reference": "acf3142e6c5eafa378dc8ef3c069ab4558993f70", + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/33dcc9955bd5c683e1246f0162f48df73fe799f6", + "reference": "33dcc9955bd5c683e1246f0162f48df73fe799f6", "shasum": "" }, "require": { "php": "^7.3|^8.0", - "symfony/http-foundation": "^5.3|^6|^7", - "symfony/http-kernel": "^5.3|^6|^7" + "symfony/http-foundation": "^5.3|^6|^7|^8", + "symfony/http-kernel": "^5.3|^6|^7|^8" }, "require-dev": { "phpunit/phpunit": "^9", @@ -58,9 +58,9 @@ ], "support": { "issues": "https://github.com/asm89/stack-cors/issues", - "source": "https://github.com/asm89/stack-cors/tree/v2.3.0" + "source": "https://github.com/asm89/stack-cors/tree/v2.4.0" }, - "time": "2025-03-13T08:50:04+00:00" + "time": "2026-01-28T13:08:04+00:00" }, { "name": "chi-teck/drupal-code-generator", @@ -123,54 +123,6 @@ }, "time": "2025-06-01T13:48:30+00:00" }, - { - "name": "chx/drupal-issue-fork", - "version": "dev-main", - "source": { - "type": "git", - "url": "https://github.com/chx/drupal-issue-fork.git", - "reference": "e2b09d91efb2a6bea310e334da425a91a4999fdd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/chx/drupal-issue-fork/zipball/e2b09d91efb2a6bea310e334da425a91a4999fdd", - "reference": "e2b09d91efb2a6bea310e334da425a91a4999fdd", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2.0", - "php": ">=8.1.0" - }, - "require-dev": { - "composer/composer": "^2.6" - }, - "default-branch": true, - "type": "composer-plugin", - "extra": { - "class": "chx\\Composer\\Plugin\\DrupalIssueFork" - }, - "autoload": { - "psr-4": { - "chx\\Composer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Karoly Negyesi", - "email": "chx1975@gmail.com" - } - ], - "description": "Sets up a project to use an issue fork", - "support": { - "issues": "https://github.com/chx/drupal-issue-fork/issues", - "source": "https://github.com/chx/drupal-issue-fork/tree/1.0.0" - }, - "time": "2025-05-09T13:21:37+00:00" - }, { "name": "composer/installers", "version": "v2.3.0", @@ -978,155 +930,27 @@ }, "time": "2024-07-08T12:26:09+00:00" }, - { - "name": "doctrine/annotations", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/901c2ee5d26eb64ff43c47976e114bf00843acf7", - "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^2 || ^3", - "ext-tokenizer": "*", - "php": "^7.2 || ^8.0", - "psr/cache": "^1 || ^2 || ^3" - }, - "require-dev": { - "doctrine/cache": "^2.0", - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.10.28", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^5.4 || ^6.4 || ^7", - "vimeo/psalm": "^4.30 || ^5.14" - }, - "suggest": { - "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/2.0.2" - }, - "abandoned": true, - "time": "2024-09-05T10:17:24+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.6", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", - "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=14" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^14", - "phpstan/phpstan": "1.4.10 || 2.1.30", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.6" - }, - "time": "2026-02-07T07:09:04+00:00" - }, { "name": "doctrine/lexer", - "version": "2.1.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6" + "reference": "e96fe45e92a54233726014a7cc7340abf29bb14c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", - "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e96fe45e92a54233726014a7cc7340abf29bb14c", + "reference": "e96fe45e92a54233726014a7cc7340abf29bb14c", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", - "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^4.11 || ^5.21" + "doctrine/coding-standard": "^14", + "phpstan/phpstan": "^2", + "phpunit/phpunit": "^10.5.58 || ^12.5.4" }, "type": "library", "autoload": { @@ -1163,7 +987,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/2.1.1" + "source": "https://github.com/doctrine/lexer/tree/3.0.2" }, "funding": [ { @@ -1179,21 +1003,21 @@ "type": "tidelift" } ], - "time": "2024-02-05T11:35:39+00:00" + "time": "2026-06-14T20:44:06+00:00" }, { "name": "drupal/better_exposed_filters", - "version": "7.1.2", + "version": "7.1.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/better_exposed_filters.git", - "reference": "7.1.2" + "reference": "7.1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-7.1.2.zip", - "reference": "7.1.2", - "shasum": "44aaa7ba5c95721cbe6ec25bcef0267ec6a9ad15" + "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-7.1.3.zip", + "reference": "7.1.3", + "shasum": "802c4a2823c5393b78750a540ac4d2e2c95767e5" }, "require": { "drupal/core": "^10.3 || ^11", @@ -1202,8 +1026,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "7.1.2", - "datestamp": "1779237916", + "version": "7.1.3", + "datestamp": "1785945788", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -1257,30 +1081,32 @@ }, { "name": "drupal/config_ignore", - "version": "3.3.0", + "version": "3.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_ignore.git", - "reference": "8.x-3.3" + "reference": "8.x-3.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_ignore-8.x-3.3.zip", - "reference": "8.x-3.3", - "shasum": "4446811ecb023820a57c227d35c034e0d4363a70" + "url": "https://ftp.drupal.org/files/projects/config_ignore-8.x-3.4.zip", + "reference": "8.x-3.4", + "shasum": "81f8876d72d92b219990c298ae61cd15906044a1" }, "require": { "drupal/core": "^8.8 || ^9 || ^10 || ^11" }, "require-dev": { - "drupal/config_filter": "^1.8||^2.2", - "drush/drush": "^10 || ^11 || ^12" + "composer-runtime-api": "^2.0", + "drupal/config_filter": "^1.8 || ^2.2", + "drupal/potx": "^1.1", + "drush/drush": ">=10" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.3", - "datestamp": "1713299496", + "version": "8.x-3.4", + "datestamp": "1777109835", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -1347,24 +1173,24 @@ }, { "name": "drupal/core", - "version": "11.2.14", + "version": "11.4.7", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "c0ccc1f713398bf06e52a309fd64488308c1a242" + "reference": "093cabca228b49f5df2283fc02d7e212ce31b6e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/c0ccc1f713398bf06e52a309fd64488308c1a242", - "reference": "c0ccc1f713398bf06e52a309fd64488308c1a242", + "url": "https://api.github.com/repos/drupal/core/zipball/093cabca228b49f5df2283fc02d7e212ce31b6e3", + "reference": "093cabca228b49f5df2283fc02d7e212ce31b6e3", "shasum": "" }, "require": { "asm89/stack-cors": "^2.3", "composer-runtime-api": "^2.1", "composer/semver": "^3.3", - "doctrine/annotations": "^2.0", - "doctrine/lexer": "^2.0", + "doctrine/lexer": "^2 || ^3", + "drupal/core-composer-scaffold": "self.version", "egulias/email-validator": "^3.2.1|^4.0", "ext-date": "*", "ext-dom": "*", @@ -1380,34 +1206,39 @@ "ext-tokenizer": "*", "ext-xml": "*", "ext-zlib": "*", - "guzzlehttp/guzzle": "^7.5", - "guzzlehttp/psr7": "^2.10.2", + "guzzlehttp/guzzle": "^7.10", + "guzzlehttp/psr7": "^2.8.0", + "justinrainbow/json-schema": "^5.2 || ^6.5.2", "masterminds/html5": "^2.7", - "mck89/peast": "^1.14", + "mck89/peast": "^1.17.4", "pear/archive_tar": "^1.4.14", "php": ">=8.3.0", "php-tuf/composer-stager": "^2.0", "psr/log": "^3.0", "revolt/event-loop": "^1.0", "sebastian/diff": "^4 || ^5 || ^6 || ^7", - "symfony/console": "^7.3", - "symfony/dependency-injection": "^7.3", - "symfony/event-dispatcher": "^7.3", - "symfony/filesystem": "^7.3", - "symfony/finder": "^7.3", + "symfony/console": "^7.4", + "symfony/dependency-injection": "^7.4", + "symfony/event-dispatcher": "^7.4", + "symfony/filesystem": "^7.4", + "symfony/finder": "^7.4", "symfony/http-foundation": "^7.4.13", "symfony/http-kernel": "^7.4.12", "symfony/mailer": "^7.4.12", "symfony/mime": "^7.4.12", "symfony/polyfill-iconv": "^1.32", "symfony/polyfill-php84": "^1.32", - "symfony/process": "^7.3", - "symfony/psr-http-message-bridge": "^7.3", + "symfony/polyfill-php85": "^1.32", + "symfony/polyfill-php86": "^1.37", + "symfony/process": "^7.4.5", + "symfony/psr-http-message-bridge": "^7.4", "symfony/routing": "^7.4.13", - "symfony/serializer": "^7.3", - "symfony/validator": "^7.3", + "symfony/runtime": "^7.4", + "symfony/serializer": "^7.4", + "symfony/validator": "^7.4", "symfony/yaml": "^7.4.12", - "twig/twig": "^3.27.0" + "twig/html-extra": "^3.23", + "twig/twig": "^3.28.0" }, "conflict": { "dealerdirect/phpcodesniffer-composer-installer": "1.1.0", @@ -1439,13 +1270,23 @@ "drupal/core-transliteration": "self.version", "drupal/core-utility": "self.version", "drupal/core-uuid": "self.version", - "drupal/core-version": "self.version" + "drupal/core-version": "self.version", + "drupal/search": "*", + "drupal/settings_tray": "*", + "drupal/shortcut": "*", + "drupal/toolbar": "*" }, "suggest": { "ext-zip": "Needed to extend the plugin.manager.archiver service capability with the handling of files in the ZIP format." }, + "bin": [ + "scripts/dr" + ], "type": "drupal-core", "extra": { + "branch-alias": { + "dev-main": "11.x-dev" + }, "drupal-scaffold": { "file-mapping": { "[web-root]/.htaccess": "assets/scaffold/files/htaccess", @@ -1513,22 +1354,28 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/11.2.14" + "source": "https://github.com/drupal/core/tree/11.4.7" }, - "time": "2026-06-17T16:00:08+00:00" + "funding": [ + { + "url": "https://www.drupal.org/composer-fund", + "type": "other" + } + ], + "time": "2026-09-16T14:39:21+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "11.2.14", + "version": "11.4.7", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "891b4615c479e17245c81571c9be0156be4b03f8" + "reference": "678f9ecb912958ebb046d6f9122b84a0cc6401ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/891b4615c479e17245c81571c9be0156be4b03f8", - "reference": "891b4615c479e17245c81571c9be0156be4b03f8", + "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/678f9ecb912958ebb046d6f9122b84a0cc6401ff", + "reference": "678f9ecb912958ebb046d6f9122b84a0cc6401ff", "shasum": "" }, "require": { @@ -1545,7 +1392,7 @@ "extra": { "class": "Drupal\\Composer\\Plugin\\Scaffold\\Plugin", "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "11.x-dev" } }, "autoload": { @@ -1563,22 +1410,22 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/11.2.14" + "source": "https://github.com/drupal/core-composer-scaffold/tree/11.4.7" }, - "time": "2025-05-05T16:18:58+00:00" + "time": "2026-07-09T23:23:24+00:00" }, { "name": "drupal/core-project-message", - "version": "11.2.14", + "version": "11.4.7", "source": { "type": "git", "url": "https://github.com/drupal/core-project-message.git", - "reference": "656efa00f296415ed6be2ff366ef67ae2725d7d6" + "reference": "f921f1c88502d559f77a9c86c87ce9bfd8082d07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-project-message/zipball/656efa00f296415ed6be2ff366ef67ae2725d7d6", - "reference": "656efa00f296415ed6be2ff366ef67ae2725d7d6", + "url": "https://api.github.com/repos/drupal/core-project-message/zipball/f921f1c88502d559f77a9c86c87ce9bfd8082d07", + "reference": "f921f1c88502d559f77a9c86c87ce9bfd8082d07", "shasum": "" }, "require": { @@ -1587,7 +1434,10 @@ }, "type": "composer-plugin", "extra": { - "class": "Drupal\\Composer\\Plugin\\ProjectMessage\\MessagePlugin" + "class": "Drupal\\Composer\\Plugin\\ProjectMessage\\MessagePlugin", + "branch-alias": { + "dev-main": "11.x-dev" + } }, "autoload": { "psr-4": { @@ -1604,52 +1454,48 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-project-message/tree/11.3.12" + "source": "https://github.com/drupal/core-project-message/tree/11.4.7" }, - "time": "2025-02-03T10:59:29+00:00" + "time": "2026-01-07T19:00:53+00:00" }, { "name": "drupal/core-recommended", - "version": "11.2.14", + "version": "11.4.7", "source": { "type": "git", "url": "https://github.com/drupal/core-recommended.git", - "reference": "bc69c12cf1817639fbaeee22d3669ebe8eb66224" + "reference": "c033d0c3f0a12627e5a6c879b8a869ff268e3efe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-recommended/zipball/bc69c12cf1817639fbaeee22d3669ebe8eb66224", - "reference": "bc69c12cf1817639fbaeee22d3669ebe8eb66224", + "url": "https://api.github.com/repos/drupal/core-recommended/zipball/c033d0c3f0a12627e5a6c879b8a869ff268e3efe", + "reference": "c033d0c3f0a12627e5a6c879b8a869ff268e3efe", "shasum": "" }, "require": { - "asm89/stack-cors": "~v2.3.0", - "composer/semver": "~3.4.3", - "doctrine/annotations": "~2.0.2", - "doctrine/deprecations": "~1.1.5", - "doctrine/lexer": "~2.1.1", - "drupal/core": "11.2.14", + "asm89/stack-cors": "~v2.4.0", + "composer/semver": "~3.4.4", + "doctrine/lexer": "~3.0.1", + "drupal/core": "11.4.7", "egulias/email-validator": "~4.0.4", - "guzzlehttp/guzzle": "~7.9.3", - "guzzlehttp/promises": "~2.2.0", - "guzzlehttp/psr7": "~2.10.4", - "masterminds/html5": "~2.9.0", - "mck89/peast": "~v1.17.0", - "pear/archive_tar": "~1.5.0", + "justinrainbow/json-schema": "~6.8.2", + "marc-mabe/php-enum": "~v4.7.2", + "masterminds/html5": "~2.10.0", + "mck89/peast": "~v1.17.6", + "pear/archive_tar": "~1.6.0", "pear/console_getopt": "~v1.4.3", - "pear/pear-core-minimal": "~v1.10.16", + "pear/pear-core-minimal": "~v1.10.18", "pear/pear_exception": "~v1.0.2", - "php-tuf/composer-stager": "~v2.0.1", - "psr/cache": "~3.0.0", + "php-tuf/composer-stager": "~v2.1.0", "psr/container": "~2.0.2", "psr/event-dispatcher": "~1.0.0", "psr/http-client": "~1.0.3", "psr/http-factory": "~1.1.0", "psr/log": "~3.0.2", "ralouphie/getallheaders": "~3.0.3", - "revolt/event-loop": "~v1.0.7", - "symfony/console": "~v7.4.11", - "symfony/dependency-injection": "~v7.4.10", + "revolt/event-loop": "~v1.0.9", + "symfony/console": "~v7.4.13", + "symfony/dependency-injection": "~v7.4.13", "symfony/deprecation-contracts": "~v3.7.0", "symfony/error-handler": "~v7.4.8", "symfony/event-dispatcher": "~v7.4.9", @@ -1657,57 +1503,52 @@ "symfony/filesystem": "~v7.4.11", "symfony/finder": "~v7.4.8", "symfony/http-foundation": "~v7.4.13", - "symfony/http-kernel": "~v7.4.12", + "symfony/http-kernel": "~v7.4.13", "symfony/mailer": "~v7.4.12", - "symfony/mime": "~v7.4.12", - "symfony/polyfill-ctype": "~v1.37.0", - "symfony/polyfill-iconv": "~v1.37.0", - "symfony/polyfill-intl-grapheme": "~v1.37.0", - "symfony/polyfill-intl-idn": "~v1.38.1", - "symfony/polyfill-intl-normalizer": "~v1.37.0", - "symfony/polyfill-mbstring": "~v1.37.0", - "symfony/polyfill-php84": "~v1.37.0", - "symfony/polyfill-php85": "~v1.37.0", - "symfony/process": "~v7.4.11", + "symfony/mime": "~v7.4.13", + "symfony/process": "~v7.4.13", "symfony/psr-http-message-bridge": "~v7.4.8", "symfony/routing": "~v7.4.13", + "symfony/runtime": "~v7.4.13", "symfony/serializer": "~v7.4.10", "symfony/service-contracts": "~v3.7.0", - "symfony/string": "~v7.4.11", + "symfony/string": "~v7.4.13", "symfony/translation-contracts": "~v3.7.0", "symfony/validator": "~v7.4.10", "symfony/var-dumper": "~v7.4.8", "symfony/var-exporter": "~v7.4.9", - "symfony/yaml": "~v7.4.12", - "twig/twig": "~v3.27.0" + "symfony/yaml": "~v7.4.13" }, "conflict": { "webflo/drupal-core-strict": "*" }, "type": "metapackage", + "extra": { + "branch-alias": [] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0-or-later" ], "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/11.2.14" + "source": "https://github.com/drupal/core-recommended/tree/11.4.7" }, - "time": "2026-06-17T16:00:08+00:00" + "time": "2026-09-16T14:39:21+00:00" }, { "name": "drupal/entity", - "version": "1.6.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/entity.git", - "reference": "8.x-1.6" + "reference": "8.x-1.8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.6.zip", - "reference": "8.x-1.6", - "shasum": "dfb214fd45bd6ad79604d23a39a96b3d4c38f8e1" + "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.8.zip", + "reference": "8.x-1.8", + "shasum": "61349682d0db8dead9d6b571ac6b4aeae08abb0f" }, "require": { "drupal/core": "^10.1 || ^11" @@ -1715,8 +1556,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.6", - "datestamp": "1740006812", + "version": "8.x-1.8", + "datestamp": "1787858234", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -1748,6 +1589,10 @@ "name": "fago", "homepage": "https://www.drupal.org/user/16747" }, + { + "name": "klausi", + "homepage": "https://www.drupal.org/user/262198" + }, { "name": "mglaman", "homepage": "https://www.drupal.org/user/2416470" @@ -1770,17 +1615,17 @@ }, { "name": "drupal/externalauth", - "version": "2.0.11", + "version": "2.0.13", "source": { "type": "git", "url": "https://git.drupalcode.org/project/externalauth.git", - "reference": "2.0.11" + "reference": "2.0.13" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/externalauth-2.0.11.zip", - "reference": "2.0.11", - "shasum": "f0f1eb7a386efda1066a392fd960792ac92386d6" + "url": "https://ftp.drupal.org/files/projects/externalauth-2.0.13.zip", + "reference": "2.0.13", + "shasum": "7daa85bd385c850e1a9c7a92fad15f394e7891b9" }, "require": { "drupal/core": "^10.1 || ^11" @@ -1788,8 +1633,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.11", - "datestamp": "1772135408", + "version": "2.0.13", + "datestamp": "1786557339", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -1805,14 +1650,6 @@ "name": "Sven Decabooter", "homepage": "https://www.drupal.org/u/svendecabooter", "role": "Maintainer" - }, - { - "name": "snufkin", - "homepage": "https://www.drupal.org/user/58645" - }, - { - "name": "svendecabooter", - "homepage": "https://www.drupal.org/user/35369" } ], "description": "Helper module to authenticate users using an external site / service and storing identification details", @@ -2134,17 +1971,17 @@ }, { "name": "drupal/publishcontent", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/publishcontent.git", - "reference": "8.x-1.7" + "reference": "8.x-1.8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/publishcontent-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "01221c91ca320c7b3f40b5905ae283c473a172b0" + "url": "https://ftp.drupal.org/files/projects/publishcontent-8.x-1.8.zip", + "reference": "8.x-1.8", + "shasum": "cbf12ecf96001a12afdad8b9610d66674f44bf12" }, "require": { "drupal/core": "^10.2 || ^11" @@ -2152,8 +1989,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.7", - "datestamp": "1728047118", + "version": "8.x-1.8", + "datestamp": "1773160688", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2270,17 +2107,17 @@ }, { "name": "drupal/webform", - "version": "6.3.0-rc2", + "version": "6.3.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/webform.git", - "reference": "6.3.0-rc2" + "reference": "6.3.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webform-6.3.0-rc2.zip", - "reference": "6.3.0-rc2", - "shasum": "833904081e5eab7e8e36250fea3652c797ddfb28" + "url": "https://ftp.drupal.org/files/projects/webform-6.3.1.zip", + "reference": "6.3.1", + "shasum": "f737cb4e614df7f54b9bb77fe40109e7abab789b" }, "require": { "drupal/core": "^10.3 || ^11.0" @@ -2295,6 +2132,7 @@ "drupal/entity": "^1.0", "drupal/entity_print": "^2.0", "drupal/hal": "^2.0", + "drupal/honeypot": "^2.0", "drupal/jquery_ui": "^1.0", "drupal/jquery_ui_button": "^2.0", "drupal/jquery_ui_checkboxradio": "^2.0", @@ -2325,11 +2163,11 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.3.0-rc2", - "datestamp": "1782137794", + "version": "6.3.1", + "datestamp": "1790179518", "security-coverage": { - "status": "not-covered", - "message": "RC releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } }, "drush": { @@ -2377,16 +2215,16 @@ }, { "name": "drush/drush", - "version": "13.7.4", + "version": "13.8.0", "source": { "type": "git", "url": "https://github.com/drush-ops/drush.git", - "reference": "90123a96db5a4d2e0faa97242eef69785aa0e67d" + "reference": "a5529118232c722c052ad6ae3be587df43c7d6fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/90123a96db5a4d2e0faa97242eef69785aa0e67d", - "reference": "90123a96db5a4d2e0faa97242eef69785aa0e67d", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/a5529118232c722c052ad6ae3be587df43c7d6fa", + "reference": "a5529118232c722c052ad6ae3be587df43c7d6fa", "shasum": "" }, "require": { @@ -2514,7 +2352,7 @@ "issues": "https://github.com/drush-ops/drush/issues", "security": "https://github.com/drush-ops/drush/security/advisories", "slack": "https://drupal.slack.com/messages/C62H9CWQM", - "source": "https://github.com/drush-ops/drush/tree/13.7.4" + "source": "https://github.com/drush-ops/drush/tree/13.8.0" }, "funding": [ { @@ -2522,7 +2360,7 @@ "type": "github" } ], - "time": "2026-06-15T20:22:19+00:00" + "time": "2026-09-08T18:24:55+00:00" }, { "name": "egulias/email-validator", @@ -2701,25 +2539,26 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.9.x-dev", + "version": "7.15.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" + "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", - "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a", + "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.3", - "guzzlehttp/psr7": "^2.7.0", + "guzzlehttp/promises": "^2.5.3", + "guzzlehttp/psr7": "^2.13.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" }, "provide": { "psr/http-client-implementation": "1.0" @@ -2727,9 +2566,10 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "guzzle/client-integration-tests": "3.0.2", + "guzzle/client-integration-tests": "3.0.3", + "guzzlehttp/test-server": "^0.7", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "phpunit/phpunit": "^8.5.52 || ^9.6.34", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -2807,7 +2647,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.3" + "source": "https://github.com/guzzle/guzzle/tree/7.15.5" }, "funding": [ { @@ -2823,28 +2663,29 @@ "type": "tidelift" } ], - "time": "2025-03-27T13:37:11+00:00" + "time": "2026-08-24T09:21:06+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.2.0", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" + "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", - "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", + "url": "https://api.github.com/repos/guzzle/promises/zipball/cde49999552d185d64715fe9c1f77a2aadd2f9f1", + "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0" + "php": "^7.2.5 || ^8.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "phpunit/phpunit": "^8.5.52 || ^9.6.34" }, "type": "library", "extra": { @@ -2890,7 +2731,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.2.0" + "source": "https://github.com/guzzle/promises/tree/2.5.3" }, "funding": [ { @@ -2906,27 +2747,29 @@ "type": "tidelift" } ], - "time": "2025-03-27T13:27:01+00:00" + "time": "2026-08-24T09:11:28+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.10.x-dev", + "version": "2.13.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "d2a1a094e396da8957e797489fddaf860c340cfc" + "reference": "95e7828100de18b4e269fb1703be530082d5166d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/d2a1a094e396da8957e797489fddaf860c340cfc", - "reference": "d2a1a094e396da8957e797489fddaf860c340cfc", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/95e7828100de18b4e269fb1703be530082d5166d", + "reference": "95e7828100de18b4e269fb1703be530082d5166d", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", "psr/http-message": "^1.1 || ^2.0", - "ralouphie/getallheaders": "^3.0" + "ralouphie/getallheaders": "^3.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" }, "provide": { "psr/http-factory-implementation": "1.0", @@ -3007,7 +2850,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.10" + "source": "https://github.com/guzzle/psr7/tree/2.13.1" }, "funding": [ { @@ -3023,20 +2866,95 @@ "type": "tidelift" } ], - "time": "2026-05-29T12:59:07+00:00" + "time": "2026-08-24T09:13:11+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "6.8.2", + "source": { + "type": "git", + "url": "https://github.com/jsonrainbow/json-schema.git", + "reference": "2c89ebb95ca9cedc9347f780333f7b25792dcb76" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/2c89ebb95ca9cedc9347f780333f7b25792dcb76", + "reference": "2c89ebb95ca9cedc9347f780333f7b25792dcb76", + "shasum": "" + }, + "require": { + "ext-json": "*", + "marc-mabe/php-enum": "^4.4", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "3.3.0", + "json-schema/json-schema-test-suite": "dev-main", + "marc-mabe/php-enum-phpstan": "^2.0", + "phpspec/prophecy": "^1.19", + "phpstan/phpstan": "^1.12", + "phpunit/phpunit": "^8.5" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/jsonrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/jsonrainbow/json-schema/issues", + "source": "https://github.com/jsonrainbow/json-schema/tree/6.8.2" + }, + "time": "2026-05-05T05:39:01+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.21", + "version": "v0.3.24", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "7753c65c281c2550c7c183f14e18062073b7d821" + "reference": "5d3cdef29e93ca3b62b1871359db3078cd99908b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/7753c65c281c2550c7c183f14e18062073b7d821", - "reference": "7753c65c281c2550c7c183f14e18062073b7d821", + "url": "https://api.github.com/repos/laravel/prompts/zipball/5d3cdef29e93ca3b62b1871359db3078cd99908b", + "reference": "5d3cdef29e93ca3b62b1871359db3078cd99908b", "shasum": "" }, "require": { @@ -3080,9 +2998,9 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.21" + "source": "https://github.com/laravel/prompts/tree/v0.3.24" }, - "time": "2026-06-26T00:11:25+00:00" + "time": "2026-08-20T12:55:36+00:00" }, { "name": "league/container", @@ -3167,25 +3085,98 @@ "time": "2025-05-20T12:55:37+00:00" }, { - "name": "masterminds/html5", - "version": "2.9.0", + "name": "marc-mabe/php-enum", + "version": "v4.7.2", "source": { "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" + "url": "https://github.com/marc-mabe/php-enum.git", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", - "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", "shasum": "" }, "require": { - "ext-dom": "*", - "php": ">=5.3.0" - }, + "ext-reflection": "*", + "php": "^7.1 | ^8.0" + }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + "phpbench/phpbench": "^0.16.10 || ^1.0.4", + "phpstan/phpstan": "^1.3.1", + "phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11", + "vimeo/psalm": "^4.17.0 | ^5.26.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.2-dev", + "dev-master": "4.7-dev" + } + }, + "autoload": { + "psr-4": { + "MabeEnum\\": "src/" + }, + "classmap": [ + "stubs/Stringable.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Marc Bennewitz", + "email": "dev@mabe.berlin", + "homepage": "https://mabe.berlin/", + "role": "Lead" + } + ], + "description": "Simple and fast implementation of enumerations with native PHP", + "homepage": "https://github.com/marc-mabe/php-enum", + "keywords": [ + "enum", + "enum-map", + "enum-set", + "enumeration", + "enumerator", + "enummap", + "enumset", + "map", + "set", + "type", + "type-hint", + "typehint" + ], + "support": { + "issues": "https://github.com/marc-mabe/php-enum/issues", + "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" + }, + "time": "2025-09-14T11:18:39+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.10.1", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "fd5018f6815fff903946d0564977b44ce8010e29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fd5018f6815fff903946d0564977b44ce8010e29", + "reference": "fd5018f6815fff903946d0564977b44ce8010e29", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9 || ^10" }, "type": "library", "extra": { @@ -3229,22 +3220,22 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" + "source": "https://github.com/Masterminds/html5-php/tree/2.10.1" }, - "time": "2024-03-31T07:05:07+00:00" + "time": "2026-06-23T18:43:15+00:00" }, { "name": "mck89/peast", - "version": "v1.17.6", + "version": "v1.17.7", "source": { "type": "git", "url": "https://github.com/mck89/peast.git", - "reference": "b8b4184b1e6912669f9af155caef9050509d9f18" + "reference": "89ee39f81e82cb7ed36cc5abaf2edd43cef71770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mck89/peast/zipball/b8b4184b1e6912669f9af155caef9050509d9f18", - "reference": "b8b4184b1e6912669f9af155caef9050509d9f18", + "url": "https://api.github.com/repos/mck89/peast/zipball/89ee39f81e82cb7ed36cc5abaf2edd43cef71770", + "reference": "89ee39f81e82cb7ed36cc5abaf2edd43cef71770", "shasum": "" }, "require": { @@ -3257,7 +3248,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17.6-dev" + "dev-master": "1.17.7-dev" } }, "autoload": { @@ -3278,26 +3269,25 @@ "description": "Peast is PHP library that generates AST for JavaScript code", "support": { "issues": "https://github.com/mck89/peast/issues", - "source": "https://github.com/mck89/peast/tree/v1.17.6" + "source": "https://github.com/mck89/peast/tree/v1.17.7" }, - "time": "2026-04-24T08:04:05+00:00" + "time": "2026-07-21T11:56:06+00:00" }, { "name": "nikic/php-parser", - "version": "v5.7.0", + "version": "v5.9.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", "shasum": "" }, "require": { - "ext-ctype": "*", "ext-json": "*", "ext-tokenizer": "*", "php": ">=7.4" @@ -3336,27 +3326,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" }, - "time": "2025-12-06T11:56:16+00:00" + "time": "2026-09-13T18:51:52+00:00" }, { "name": "pear/archive_tar", - "version": "1.5.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/pear/Archive_Tar.git", - "reference": "b439c859564f5cbb0f64ad6002d0afe84a889602" + "reference": "a0d2c458a2ff6ee8943ac4271b7f57d613529ae0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/b439c859564f5cbb0f64ad6002d0afe84a889602", - "reference": "b439c859564f5cbb0f64ad6002d0afe84a889602", + "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/a0d2c458a2ff6ee8943ac4271b7f57d613529ae0", + "reference": "a0d2c458a2ff6ee8943ac4271b7f57d613529ae0", "shasum": "" }, "require": { "pear/pear-core-minimal": "^1.10.0alpha2", - "php": ">=5.2.0" + "php": ">=5.6.0" }, "require-dev": { "phpunit/phpunit": "*" @@ -3369,7 +3359,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { @@ -3408,7 +3398,7 @@ "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Archive_Tar", "source": "https://github.com/pear/Archive_Tar" }, - "time": "2024-03-16T16:21:40+00:00" + "time": "2026-08-19T17:37:49+00:00" }, { "name": "pear/console_getopt", @@ -3675,28 +3665,29 @@ }, { "name": "php-tuf/composer-stager", - "version": "v2.0.2", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/php-tuf/composer-stager.git", - "reference": "3b8cad67352ebef1f854995efc722728518cafd8" + "reference": "64f3b033736483af81551b0f41ab1126510cfea0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-tuf/composer-stager/zipball/3b8cad67352ebef1f854995efc722728518cafd8", - "reference": "3b8cad67352ebef1f854995efc722728518cafd8", + "url": "https://api.github.com/repos/php-tuf/composer-stager/zipball/64f3b033736483af81551b0f41ab1126510cfea0", + "reference": "64f3b033736483af81551b0f41ab1126510cfea0", "shasum": "" }, "require": { "ext-json": "*", "php": ">=8.1.0", - "symfony/filesystem": "^6.2 || ^7.0", - "symfony/process": "^6.4.14 || ^7.1.7", + "symfony/filesystem": "^6.2 || ^7.0 || ^8.0", + "symfony/process": "^6.4.33 || ^7.3.11 || ^8.0", "symfony/translation-contracts": "^3.1" }, "conflict": { - "symfony/process": ">=6 <6.4.14 || >=7 <7.1.7", - "symfony/symfony": ">=6 <6.4.14 || >=7 <7.1.7" + "symfony/process": ">=6.4 <6.4.33 || >=7.3 <7.3.11 || >=7.4 <7.4.5 || >=8.0 <8.0.5", + "symfony/symfony": ">=6.4 <6.4.33 || >=7.3 <7.3.11 || >=7.4 <7.4.5 || >=8.0 <8.0.5", + "symfony/yaml": ">=2.0.0 <5.4.52 || >=6.0.0 <6.4.40 || >=7.0.0 <7.4.12 || >=8.0.0 <8.0.12" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^1.0", @@ -3707,7 +3698,7 @@ "phpunit/phpunit": "^10.5.19", "slevomat/coding-standard": "^8.13", "squizlabs/php_codesniffer": "^3.7", - "symfony/config": "^6.3", + "symfony/config": "^6.3 || ^8.0", "symfony/dependency-injection": "^6.3", "symfony/yaml": "^6.3", "thecodingmachine/phpstan-strict-rules": "^1.0" @@ -3744,7 +3735,7 @@ "issues": "https://github.com/php-tuf/composer-stager/issues", "source": "https://github.com/php-tuf/composer-stager" }, - "time": "2025-11-17T14:51:07+00:00" + "time": "2026-07-07T14:30:49+00:00" }, { "name": "phpowermove/docblock", @@ -3798,55 +3789,6 @@ }, "time": "2021-09-22T16:57:06+00:00" }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "time": "2021-02-03T23:26:27+00:00" - }, { "name": "psr/container", "version": "2.0.2", @@ -4424,16 +4366,16 @@ }, { "name": "symfony/console", - "version": "v7.4.14", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87" + "reference": "3a1973458b153f566a8d7499bc06ece323d60063" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", + "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", + "reference": "3a1973458b153f566a8d7499bc06ece323d60063", "shasum": "" }, "require": { @@ -4498,7 +4440,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.14" + "source": "https://github.com/symfony/console/tree/v7.4.19" }, "funding": [ { @@ -4518,20 +4460,20 @@ "type": "tidelift" } ], - "time": "2026-06-16T11:50:14+00:00" + "time": "2026-09-13T10:38:41+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.4.14", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "2c8c64a33e2e6911579e1ff79a8e06c27d48d402" + "reference": "f318ac9da5aba0be2cf43ecdd562c05a33bc11c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2c8c64a33e2e6911579e1ff79a8e06c27d48d402", - "reference": "2c8c64a33e2e6911579e1ff79a8e06c27d48d402", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f318ac9da5aba0be2cf43ecdd562c05a33bc11c0", + "reference": "f318ac9da5aba0be2cf43ecdd562c05a33bc11c0", "shasum": "" }, "require": { @@ -4582,7 +4524,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/v7.4.14" + "source": "https://github.com/symfony/dependency-injection/tree/v7.4.17" }, "funding": [ { @@ -4602,7 +4544,7 @@ "type": "tidelift" } ], - "time": "2026-06-24T07:41:05+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4677,16 +4619,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.4.14", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "4e1a093b481f323e6e326451f9760c3868430673" + "reference": "8373921e231e190a88e2ad526951bbaa791576fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/4e1a093b481f323e6e326451f9760c3868430673", - "reference": "4e1a093b481f323e6e326451f9760c3868430673", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/8373921e231e190a88e2ad526951bbaa791576fa", + "reference": "8373921e231e190a88e2ad526951bbaa791576fa", "shasum": "" }, "require": { @@ -4735,7 +4677,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/v7.4.14" + "source": "https://github.com/symfony/error-handler/tree/v7.4.17" }, "funding": [ { @@ -4755,20 +4697,20 @@ "type": "tidelift" } ], - "time": "2026-06-05T06:22:21+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.4.14", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "51fe3d170227be8d1772214b82ae506e15ed78ff" + "reference": "d269974ee93c61d03620ffee358355bfdb471d66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/51fe3d170227be8d1772214b82ae506e15ed78ff", - "reference": "51fe3d170227be8d1772214b82ae506e15ed78ff", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d269974ee93c61d03620ffee358355bfdb471d66", + "reference": "d269974ee93c61d03620ffee358355bfdb471d66", "shasum": "" }, "require": { @@ -4820,7 +4762,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/v7.4.14" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.17" }, "funding": [ { @@ -4840,7 +4782,7 @@ "type": "tidelift" } ], - "time": "2026-06-06T11:10:32+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4924,16 +4866,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.4.11", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50" + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d721ea61b4a5fba8c5b6e7c1feda19efea144b50", - "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", "shasum": "" }, "require": { @@ -4970,7 +4912,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.11" + "source": "https://github.com/symfony/filesystem/tree/v7.4.18" }, "funding": [ { @@ -4990,20 +4932,20 @@ "type": "tidelift" } ], - "time": "2026-05-11T16:38:44+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/finder", - "version": "v7.4.14", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "13b38720174286f55d1761152b575a8d1436fc25" + "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/13b38720174286f55d1761152b575a8d1436fc25", - "reference": "13b38720174286f55d1761152b575a8d1436fc25", + "url": "https://api.github.com/repos/symfony/finder/zipball/1b900bc6ae5ba60c5eee69c11ba44566190576fe", + "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe", "shasum": "" }, "require": { @@ -5038,7 +4980,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.14" + "source": "https://github.com/symfony/finder/tree/v7.4.19" }, "funding": [ { @@ -5058,20 +5000,20 @@ "type": "tidelift" } ], - "time": "2026-06-27T08:31:18+00:00" + "time": "2026-09-10T19:14:10+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.4.14", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "06db5ae1552177bf8572f8908839f12e3c06aed3" + "reference": "f7b953be7801974a5a0685e1228bbc3b12b35936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/06db5ae1552177bf8572f8908839f12e3c06aed3", - "reference": "06db5ae1552177bf8572f8908839f12e3c06aed3", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f7b953be7801974a5a0685e1228bbc3b12b35936", + "reference": "f7b953be7801974a5a0685e1228bbc3b12b35936", "shasum": "" }, "require": { @@ -5120,7 +5062,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.14" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.19" }, "funding": [ { @@ -5140,20 +5082,20 @@ "type": "tidelift" } ], - "time": "2026-06-11T07:31:44+00:00" + "time": "2026-09-14T17:41:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.14", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e99af79b1e776646eda0e1c23b7b45c184ff99be" + "reference": "683507424cc84ca85ac1551adb609b6b98216667" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e99af79b1e776646eda0e1c23b7b45c184ff99be", - "reference": "e99af79b1e776646eda0e1c23b7b45c184ff99be", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/683507424cc84ca85ac1551adb609b6b98216667", + "reference": "683507424cc84ca85ac1551adb609b6b98216667", "shasum": "" }, "require": { @@ -5211,7 +5153,7 @@ "symfony/validator": "^6.4|^7.0|^8.0", "symfony/var-dumper": "^6.4|^7.0|^8.0", "symfony/var-exporter": "^6.4|^7.0|^8.0", - "twig/twig": "^3.12" + "twig/twig": "^3.12|^4.0" }, "type": "library", "autoload": { @@ -5239,7 +5181,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/v7.4.14" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.19" }, "funding": [ { @@ -5259,20 +5201,20 @@ "type": "tidelift" } ], - "time": "2026-06-27T09:14:35+00:00" + "time": "2026-09-15T07:09:35+00:00" }, { "name": "symfony/mailer", - "version": "v7.4.14", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "f88ce03ae73e3edb5c176ce1f337709996e88495" + "reference": "6f6f2441bef07a42d2617b9b3aadf04a321aa514" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/f88ce03ae73e3edb5c176ce1f337709996e88495", - "reference": "f88ce03ae73e3edb5c176ce1f337709996e88495", + "url": "https://api.github.com/repos/symfony/mailer/zipball/6f6f2441bef07a42d2617b9b3aadf04a321aa514", + "reference": "6f6f2441bef07a42d2617b9b3aadf04a321aa514", "shasum": "" }, "require": { @@ -5323,7 +5265,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.4.14" + "source": "https://github.com/symfony/mailer/tree/v7.4.19" }, "funding": [ { @@ -5343,20 +5285,20 @@ "type": "tidelift" } ], - "time": "2026-06-13T08:51:35+00:00" + "time": "2026-09-15T06:01:15+00:00" }, { "name": "symfony/mime", - "version": "v7.4.13", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "a845722765c4f6b2ce88beaf4f4479975b186770" + "reference": "f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/a845722765c4f6b2ce88beaf4f4479975b186770", - "reference": "a845722765c4f6b2ce88beaf4f4479975b186770", + "url": "https://api.github.com/repos/symfony/mime/zipball/f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693", + "reference": "f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693", "shasum": "" }, "require": { @@ -5380,7 +5322,7 @@ "symfony/process": "^6.4|^7.0|^8.0", "symfony/property-access": "^6.4|^7.0|^8.0", "symfony/property-info": "^6.4|^7.0|^8.0", - "symfony/serializer": "^6.4.3|^7.0.3|^8.0" + "symfony/serializer": "^6.4.44|^7.4.17|^8.1.5" }, "type": "library", "autoload": { @@ -5412,7 +5354,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.4.13" + "source": "https://github.com/symfony/mime/tree/v7.4.19" }, "funding": [ { @@ -5432,7 +5374,7 @@ "type": "tidelift" } ], - "time": "2026-05-23T16:22:37+00:00" + "time": "2026-09-04T10:45:44+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5603,16 +5545,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.37.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e" + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e", - "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", "shasum": "" }, "require": { @@ -5661,7 +5603,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" }, "funding": [ { @@ -5681,20 +5623,20 @@ "type": "tidelift" } ], - "time": "2026-04-26T13:13:48+00:00" + "time": "2026-07-28T08:25:59+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.38.1", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "dc21118016c039a66235cf93d96b435ffb282412" + "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/dc21118016c039a66235cf93d96b435ffb282412", - "reference": "dc21118016c039a66235cf93d96b435ffb282412", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/51b5ff5ba85452b31ec6f55490b08148612339d9", + "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9", "shasum": "" }, "require": { @@ -5748,7 +5690,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.38.1" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.42.0" }, "funding": [ { @@ -5768,20 +5710,20 @@ "type": "tidelift" } ], - "time": "2026-05-25T15:22:23+00:00" + "time": "2026-08-24T10:51:20+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.37.0", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "3833d7255cc303546435cb650316bff708a1c75c" + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", - "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", "shasum": "" }, "require": { @@ -5833,7 +5775,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { @@ -5853,20 +5795,20 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.37.0", + "version": "v1.38.2", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315" + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315", - "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", "shasum": "" }, "require": { @@ -5918,7 +5860,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" }, "funding": [ { @@ -5938,7 +5880,91 @@ "type": "tidelift" } ], - "time": "2026-04-10T17:25:58+00:00" + "time": "2026-05-27T06:59:30+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" }, { "name": "symfony/polyfill-php81", @@ -6022,16 +6048,16 @@ }, { "name": "symfony/polyfill-php83", - "version": "v1.38.2", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "796a26abb75ce49f3a84433cd81bf1009d73d5f8" + "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/796a26abb75ce49f3a84433cd81bf1009d73d5f8", - "reference": "796a26abb75ce49f3a84433cd81bf1009d73d5f8", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/5ea99087fb99c273a9b9236ed4c31e78b16103c6", + "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6", "shasum": "" }, "require": { @@ -6078,7 +6104,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.38.2" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.41.0" }, "funding": [ { @@ -6098,20 +6124,20 @@ "type": "tidelift" } ], - "time": "2026-05-27T06:51:48+00:00" + "time": "2026-07-01T12:47:55+00:00" }, { "name": "symfony/polyfill-php84", - "version": "v1.37.0", + "version": "v1.38.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06" + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06", - "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", "shasum": "" }, "require": { @@ -6158,7 +6184,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" }, "funding": [ { @@ -6178,20 +6204,20 @@ "type": "tidelift" } ], - "time": "2026-04-10T18:47:49+00:00" + "time": "2026-05-26T12:51:13+00:00" }, { "name": "symfony/polyfill-php85", - "version": "v1.37.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php85.git", - "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee" + "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/fcfa4973a9917cef23f2e38774da74a2b7d115ee", - "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/255fab485aaa1006ed411040c42aecd7b5302d7a", + "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a", "shasum": "" }, "require": { @@ -6238,7 +6264,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php85/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php85/tree/v1.41.0" }, "funding": [ { @@ -6258,20 +6284,100 @@ "type": "tidelift" } ], - "time": "2026-04-26T13:10:57+00:00" + "time": "2026-07-01T12:47:55+00:00" + }, + { + "name": "symfony/polyfill-php86", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php86.git", + "reference": "6bc356ed3d8dbfeea8f0de235e34d670704e880e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/6bc356ed3d8dbfeea8f0de235e34d670704e880e", + "reference": "6bc356ed3d8dbfeea8f0de235e34d670704e880e", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php86\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php86/tree/v1.41.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-02T13:42:24+00:00" }, { "name": "symfony/process", - "version": "v7.4.13", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f5804be144caceb570f6747519999636b664f24c" + "reference": "ed0ae095b86994d370d5791612e55984f15aa30e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f5804be144caceb570f6747519999636b664f24c", - "reference": "f5804be144caceb570f6747519999636b664f24c", + "url": "https://api.github.com/repos/symfony/process/zipball/ed0ae095b86994d370d5791612e55984f15aa30e", + "reference": "ed0ae095b86994d370d5791612e55984f15aa30e", "shasum": "" }, "require": { @@ -6303,7 +6409,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.13" + "source": "https://github.com/symfony/process/tree/v7.4.19" }, "funding": [ { @@ -6323,7 +6429,7 @@ "type": "tidelift" } ], - "time": "2026-05-23T16:05:06+00:00" + "time": "2026-09-02T12:38:34+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -6354,15 +6460,100 @@ "psr/log": "^1.1.4|^2|^3", "symfony/browser-kit": "^6.4|^7.0|^8.0", "symfony/config": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/framework-bundle": "^6.4.13|^7.1.6|^8.0", - "symfony/http-kernel": "^6.4.13|^7.1.6|^8.0", - "symfony/runtime": "^6.4.13|^7.1.6|^8.0" + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4.13|^7.1.6|^8.0", + "symfony/http-kernel": "^6.4.13|^7.1.6|^8.0", + "symfony/runtime": "^6.4.13|^7.1.6|^8.0" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\PsrHttpMessage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "PSR HTTP message bridge", + "homepage": "https://symfony.com", + "keywords": [ + "http", + "http-message", + "psr-17", + "psr-7" + ], + "support": { + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-03-24T13:12:05+00:00" + }, + { + "name": "symfony/routing", + "version": "v7.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/ddd558991e98f693ae6bf5063cc1b0362c6bbec3", + "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/yaml": "<6.4" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" }, - "type": "symfony-bridge", + "type": "library", "autoload": { "psr-4": { - "Symfony\\Bridge\\PsrHttpMessage\\": "" + "Symfony\\Component\\Routing\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -6382,16 +6573,16 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "PSR HTTP message bridge", + "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", "keywords": [ - "http", - "http-message", - "psr-17", - "psr-7" + "router", + "routing", + "uri", + "url" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.4.8" + "source": "https://github.com/symfony/routing/tree/v7.4.18" }, "funding": [ { @@ -6411,43 +6602,46 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-08-17T13:12:36+00:00" }, { - "name": "symfony/routing", - "version": "v7.4.13", + "name": "symfony/runtime", + "version": "v7.4.14", "source": { "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "3a162171bb008e5e0f15dce6581373a4c0e8390d" + "url": "https://github.com/symfony/runtime.git", + "reference": "15497f743dd714f3167cb6a56509b9d42e6417b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3a162171bb008e5e0f15dce6581373a4c0e8390d", - "reference": "3a162171bb008e5e0f15dce6581373a4c0e8390d", + "url": "https://api.github.com/repos/symfony/runtime/zipball/15497f743dd714f3167cb6a56509b9d42e6417b3", + "reference": "15497f743dd714f3167cb6a56509b9d42e6417b3", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3" + "composer-plugin-api": "^1.0|^2.0", + "php": ">=8.2" }, "conflict": { - "symfony/config": "<6.4", - "symfony/dependency-injection": "<6.4", - "symfony/yaml": "<6.4" + "symfony/dotenv": "<6.4", + "symfony/http-foundation": "<6.4" }, "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", + "composer/composer": "^2.6", + "symfony/console": "^6.4|^7.0|^8.0", "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/dotenv": "^6.4|^7.0|^8.0", "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/yaml": "^6.4|^7.0|^8.0" + "symfony/http-kernel": "^6.4|^7.0|^8.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Component\\Runtime\\Internal\\ComposerPlugin" }, - "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Routing\\": "" + "Symfony\\Component\\Runtime\\": "", + "Symfony\\Runtime\\Symfony\\Component\\": "Internal/" }, "exclude-from-classmap": [ "/Tests/" @@ -6459,24 +6653,21 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Maps an HTTP request to a set of configuration variables", + "description": "Enables decoupling PHP applications from global state", "homepage": "https://symfony.com", "keywords": [ - "router", - "routing", - "uri", - "url" + "runtime" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.13" + "source": "https://github.com/symfony/runtime/tree/v7.4.14" }, "funding": [ { @@ -6496,20 +6687,20 @@ "type": "tidelift" } ], - "time": "2026-05-24T11:20:33+00:00" + "time": "2026-06-05T06:22:21+00:00" }, { "name": "symfony/serializer", - "version": "v7.4.14", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "55acb01b9c8a5211dfbaf68c314d90d0ed2cc3d1" + "reference": "d631b82e0db971444651c4e6a076040d20878caa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/55acb01b9c8a5211dfbaf68c314d90d0ed2cc3d1", - "reference": "55acb01b9c8a5211dfbaf68c314d90d0ed2cc3d1", + "url": "https://api.github.com/repos/symfony/serializer/zipball/d631b82e0db971444651c4e6a076040d20878caa", + "reference": "d631b82e0db971444651c4e6a076040d20878caa", "shasum": "" }, "require": { @@ -6523,7 +6714,7 @@ "phpdocumentor/type-resolver": "<1.5.1", "symfony/dependency-injection": "<6.4", "symfony/property-access": "<6.4.31|>=7.0,<7.4.2|>=8.0,<8.0.2", - "symfony/property-info": "<6.4", + "symfony/property-info": "<6.4.43", "symfony/type-info": "<7.2.5", "symfony/uid": "<6.4", "symfony/validator": "<6.4", @@ -6545,7 +6736,7 @@ "symfony/messenger": "^6.4|^7.0|^8.0", "symfony/mime": "^6.4|^7.0|^8.0", "symfony/property-access": "^6.4.31|^7.4.2|^8.0.2", - "symfony/property-info": "^6.4|^7.0|^8.0", + "symfony/property-info": "^6.4.43|^7.4.15|^8.0.15", "symfony/translation-contracts": "^2.5|^3", "symfony/type-info": "^7.2.5|^8.0", "symfony/uid": "^6.4|^7.0|^8.0", @@ -6580,7 +6771,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.4.14" + "source": "https://github.com/symfony/serializer/tree/v7.4.19" }, "funding": [ { @@ -6600,20 +6791,20 @@ "type": "tidelift" } ], - "time": "2026-06-27T08:31:18+00:00" + "time": "2026-09-08T13:28:43+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.7.1", + "version": "v3.7.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { @@ -6667,7 +6858,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" }, "funding": [ { @@ -6687,20 +6878,20 @@ "type": "tidelift" } ], - "time": "2026-06-16T09:55:08+00:00" + "time": "2026-07-27T15:39:01+00:00" }, { "name": "symfony/string", - "version": "v7.4.13", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "961683010db3b27ec6ebcd7308e6e1ee8fa7ffde" + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/961683010db3b27ec6ebcd7308e6e1ee8fa7ffde", - "reference": "961683010db3b27ec6ebcd7308e6e1ee8fa7ffde", + "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", "shasum": "" }, "require": { @@ -6758,7 +6949,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.13" + "source": "https://github.com/symfony/string/tree/v7.4.19" }, "funding": [ { @@ -6778,7 +6969,7 @@ "type": "tidelift" } ], - "time": "2026-05-23T15:23:29+00:00" + "time": "2026-09-11T14:46:58+00:00" }, { "name": "symfony/translation-contracts", @@ -6864,16 +7055,16 @@ }, { "name": "symfony/validator", - "version": "v7.4.14", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "306d904336166d001751759351d40d5e82312596" + "reference": "a6d275d96d107fb2000dae04ab23b2e0c29ceb66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/306d904336166d001751759351d40d5e82312596", - "reference": "306d904336166d001751759351d40d5e82312596", + "url": "https://api.github.com/repos/symfony/validator/zipball/a6d275d96d107fb2000dae04ab23b2e0c29ceb66", + "reference": "a6d275d96d107fb2000dae04ab23b2e0c29ceb66", "shasum": "" }, "require": { @@ -6944,7 +7135,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.4.14" + "source": "https://github.com/symfony/validator/tree/v7.4.19" }, "funding": [ { @@ -6964,20 +7155,20 @@ "type": "tidelift" } ], - "time": "2026-06-27T06:16:12+00:00" + "time": "2026-09-09T19:50:33+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.4.14", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358" + "reference": "e088da50b813f32473a76871616cbb8fa54653a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358", - "reference": "9a3a56a4a1e65a5cb4f8d13801fe8ab0a170e358", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e088da50b813f32473a76871616cbb8fa54653a8", + "reference": "e088da50b813f32473a76871616cbb8fa54653a8", "shasum": "" }, "require": { @@ -6993,7 +7184,7 @@ "symfony/http-kernel": "^6.4|^7.0|^8.0", "symfony/process": "^6.4|^7.0|^8.0", "symfony/uid": "^6.4|^7.0|^8.0", - "twig/twig": "^3.12" + "twig/twig": "^3.12|^4.0" }, "bin": [ "Resources/bin/var-dump-server" @@ -7031,7 +7222,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.14" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.18" }, "funding": [ { @@ -7051,20 +7242,20 @@ "type": "tidelift" } ], - "time": "2026-06-08T20:24:16+00:00" + "time": "2026-08-30T20:10:52+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.4.14", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "0118811b1d59f323bf131250b3fb919febfece28" + "reference": "d6a87acbe48cbc707b9aba7f1a6c2215aab02603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0118811b1d59f323bf131250b3fb919febfece28", - "reference": "0118811b1d59f323bf131250b3fb919febfece28", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d6a87acbe48cbc707b9aba7f1a6c2215aab02603", + "reference": "d6a87acbe48cbc707b9aba7f1a6c2215aab02603", "shasum": "" }, "require": { @@ -7112,7 +7303,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.4.14" + "source": "https://github.com/symfony/var-exporter/tree/v7.4.18" }, "funding": [ { @@ -7132,20 +7323,20 @@ "type": "tidelift" } ], - "time": "2026-06-27T08:41:53+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/yaml", - "version": "v7.4.14", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "f8f328665ace2370d1e10645b807ba1646dc7dcc" + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/f8f328665ace2370d1e10645b807ba1646dc7dcc", - "reference": "f8f328665ace2370d1e10645b807ba1646dc7dcc", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", "shasum": "" }, "require": { @@ -7188,7 +7379,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.14" + "source": "https://github.com/symfony/yaml/tree/v7.4.18" }, "funding": [ { @@ -7208,7 +7399,7 @@ "type": "tidelift" } ], - "time": "2026-06-08T20:24:16+00:00" + "time": "2026-08-30T00:47:26+00:00" }, { "name": "thecodingmachine/safe", @@ -7349,18 +7540,86 @@ }, "time": "2023-04-05T11:54:14+00:00" }, + { + "name": "twig/html-extra", + "version": "v3.29.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/html-extra.git", + "reference": "7147611979df81edb78baf7d003860b72e335c3f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/html-extra/zipball/7147611979df81edb78baf7d003860b72e335c3f", + "reference": "7147611979df81edb78baf7d003860b72e335c3f", + "shasum": "" + }, + "require": { + "php": ">=8.1.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/mime": "^5.4|^6.4|^7.0|^8.0", + "twig/twig": "^3.13|^4.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Twig\\Extra\\Html\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "A Twig extension for HTML", + "homepage": "https://twig.symfony.com", + "keywords": [ + "html", + "twig" + ], + "support": { + "source": "https://github.com/twigphp/html-extra/tree/v3.29.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2026-09-06T20:35:36+00:00" + }, { "name": "twig/twig", - "version": "v3.27.1", + "version": "v3.29.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "ae2071bffb38f04847fc0864d730c94b9cb8ab74" + "reference": "45a3c6e9224c3377a39c7b150bb29d5d97d2c75d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/ae2071bffb38f04847fc0864d730c94b9cb8ab74", - "reference": "ae2071bffb38f04847fc0864d730c94b9cb8ab74", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/45a3c6e9224c3377a39c7b150bb29d5d97d2c75d", + "reference": "45a3c6e9224c3377a39c7b150bb29d5d97d2c75d", "shasum": "" }, "require": { @@ -7415,7 +7674,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.27.1" + "source": "https://github.com/twigphp/Twig/tree/v3.29.0" }, "funding": [ { @@ -7427,7 +7686,7 @@ "type": "tidelift" } ], - "time": "2026-05-30T17:09:26+00:00" + "time": "2026-09-18T09:10:14+00:00" } ], "packages-dev": [ @@ -7568,23 +7827,24 @@ }, { "name": "brick/math", - "version": "0.18.0", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad" + "reference": "2effe05d2177c451b86c6a073196a4034c02f211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/82944324d1c1bdb2c2618e89978d4e2ad78d69ad", - "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad", + "url": "https://api.github.com/repos/brick/math/zipball/2effe05d2177c451b86c6a073196a4034c02f211", + "reference": "2effe05d2177c451b86c6a073196a4034c02f211", "shasum": "" }, "require": { "php": "^8.2" }, "require-dev": { - "phpstan/phpstan": "2.1.22", + "phpstan/phpstan": "2.2.13", + "phpstan/phpstan-phpunit": "2.0.18", "phpunit/phpunit": "^11.5" }, "type": "library", @@ -7615,7 +7875,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.18.0" + "source": "https://github.com/brick/math/tree/1.0.0" }, "funding": [ { @@ -7623,7 +7883,7 @@ "type": "github" } ], - "time": "2026-06-14T18:21:03+00:00" + "time": "2026-09-12T10:28:18+00:00" }, { "name": "colinodell/psr-testlogger", @@ -7706,16 +7966,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.12", + "version": "1.5.14", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "00a2f4201641d5c53f7fc0195e6c8d9fcc321a78" + "reference": "0c8abba0634f637bd78c4e451981da368d403463" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/00a2f4201641d5c53f7fc0195e6c8d9fcc321a78", - "reference": "00a2f4201641d5c53f7fc0195e6c8d9fcc321a78", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c8abba0634f637bd78c4e451981da368d403463", + "reference": "0c8abba0634f637bd78c4e451981da368d403463", "shasum": "" }, "require": { @@ -7762,7 +8022,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.12" + "source": "https://github.com/composer/ca-bundle/tree/1.5.14" }, "funding": [ { @@ -7774,7 +8034,7 @@ "type": "github" } ], - "time": "2026-05-19T11:26:22+00:00" + "time": "2026-08-21T14:57:29+00:00" }, { "name": "composer/class-map-generator", @@ -7847,16 +8107,16 @@ }, { "name": "composer/composer", - "version": "2.10.2", + "version": "2.10.3", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "8d4439f572a97670a9edc039eb3b093cc976b4bc" + "reference": "f0de0bf90226853b841672f086d8b58b02332504" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/8d4439f572a97670a9edc039eb3b093cc976b4bc", - "reference": "8d4439f572a97670a9edc039eb3b093cc976b4bc", + "url": "https://api.github.com/repos/composer/composer/zipball/f0de0bf90226853b841672f086d8b58b02332504", + "reference": "f0de0bf90226853b841672f086d8b58b02332504", "shasum": "" }, "require": { @@ -7867,6 +8127,8 @@ "composer/semver": "^3.3", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", + "ext-filter": "*", + "ext-hash": "*", "ext-json": "*", "justinrainbow/json-schema": "^6.5.1", "php": "^7.2.5 || ^8.0", @@ -7944,7 +8206,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.10.2" + "source": "https://github.com/composer/composer/tree/2.10.3" }, "funding": [ { @@ -7956,7 +8218,7 @@ "type": "github" } ], - "time": "2026-07-01T09:24:45+00:00" + "time": "2026-08-27T11:34:23+00:00" }, { "name": "composer/metadata-minifier", @@ -8428,6 +8690,54 @@ ], "time": "2025-01-01T22:12:03+00:00" }, + { + "name": "doctrine/deprecations", + "version": "1.1.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=14" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", + "psr/log": "^1 || ^2 || ^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" + }, + "time": "2026-02-07T07:09:04+00:00" + }, { "name": "doctrine/event-manager", "version": "2.1.1", @@ -8791,16 +9101,16 @@ }, { "name": "drupal/core-dev", - "version": "11.3.13", + "version": "11.4.7", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", - "reference": "f2b3cde9cbfff14223fd7dfab99121c6e4f292fb" + "reference": "718af3bbdd9b80b1a7c9a7c385834d0b3c1828f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-dev/zipball/f2b3cde9cbfff14223fd7dfab99121c6e4f292fb", - "reference": "f2b3cde9cbfff14223fd7dfab99121c6e4f292fb", + "url": "https://api.github.com/repos/drupal/core-dev/zipball/718af3bbdd9b80b1a7c9a7c385834d0b3c1828f7", + "reference": "718af3bbdd9b80b1a7c9a7c385834d0b3c1828f7", "shasum": "" }, "require": { @@ -8809,10 +9119,9 @@ "colinodell/psr-testlogger": "^1.2", "composer/composer": "^2.8.1", "drupal/coder": "^8.3.30", - "justinrainbow/json-schema": "^5.2 || ^6.5.2", "lullabot/mink-selenium2-driver": "^1.7.3", "lullabot/php-webdriver": "^2.0.7", - "mglaman/phpstan-drupal": "^1.3.9 || ^2.0.9", + "mglaman/phpstan-drupal": "^1.3.9 || ^2.0.15", "micheh/phpcs-gitlab": "^1.1 || ^2.0", "mikey179/vfsstream": "^1.6.11", "open-telemetry/exporter-otlp": "^1", @@ -8821,8 +9130,8 @@ "phpspec/prophecy": "^1.23", "phpspec/prophecy-phpunit": "^2", "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^1.12.27 || ^2.1.26", - "phpstan/phpstan-phpunit": "^1.4.2 || ^2.0.7", + "phpstan/phpstan": "^1.12.27 || ^2.2.0", + "phpstan/phpstan-phpunit": "^1.4.2 || ^2.0.16", "phpunit/phpunit": "^11.5.50", "symfony/browser-kit": "^7.4", "symfony/css-selector": "^7.4", @@ -8835,15 +9144,18 @@ "webflo/drupal-core-require-dev": "*" }, "type": "metapackage", + "extra": { + "branch-alias": [] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0-or-later" ], "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/11.3.13" + "source": "https://github.com/drupal/core-dev/tree/11.4.7" }, - "time": "2026-05-20T15:34:10+00:00" + "time": "2026-09-16T14:39:21+00:00" }, { "name": "drupal/devel", @@ -9033,20 +9345,20 @@ }, { "name": "drupal/tracer", - "version": "1.2.2", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/tracer.git", - "reference": "1.2.2" + "reference": "1.3.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/tracer-1.2.2.zip", - "reference": "1.2.2", - "shasum": "7f48220998f3e2a63b6abe5b9469f41ef28c5e70" + "url": "https://ftp.drupal.org/files/projects/tracer-1.3.0.zip", + "reference": "1.3.0", + "shasum": "1a0fc19941fcaffd3060ae48c32c9aea8c4af852" }, "require": { - "drupal/core": "^11", + "drupal/core": "^11 || ^12", "php": "^8.1.0" }, "require-dev": { @@ -9062,8 +9374,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "1.2.2", - "datestamp": "1770134714", + "version": "1.3.0", + "datestamp": "1786440388", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9096,17 +9408,17 @@ }, { "name": "drupal/webprofiler", - "version": "11.1.1", + "version": "11.2.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/webprofiler.git", - "reference": "11.1.1" + "reference": "11.2.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webprofiler-11.1.1.zip", - "reference": "11.1.1", - "shasum": "fbc2c3dbd93449027197880bbf21a82c540b8244" + "url": "https://ftp.drupal.org/files/projects/webprofiler-11.2.3.zip", + "reference": "11.2.3", + "shasum": "4052346983cc93a4afeb4cdd47c7a998e52abc43" }, "require": { "drupal/core": ">=11", @@ -9116,7 +9428,7 @@ "nikic/php-parser": "^5.0 || ^4.18", "php": ">=8.3", "scrivo/highlight.php": "^9.18", - "symfony/stopwatch": "^6 || ^7", + "symfony/stopwatch": "^6 || ^7 || ^8", "symfony/var-dumper": "^6 || ^7" }, "require-dev": { @@ -9130,13 +9442,17 @@ "phpstan/phpstan-phpunit": "1.4.x-dev", "phpstan/phpstan-strict-rules": "^1.5", "phpunit/phpunit": ">=9", - "previousnext/coding-standard": "^1.0" + "previousnext/coding-standard": "^1.0", + "symfony/messenger": "^6 || ^7" + }, + "suggest": { + "symfony/messenger": "Enables the Messenger panel that collects messages dispatched through Symfony Messenger buses." }, "type": "drupal-module", "extra": { "drupal": { - "version": "11.1.1", - "datestamp": "1748345314", + "version": "11.2.3", + "datestamp": "1788970830", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9172,20 +9488,21 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.52.0", + "version": "2.53.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "988f83f5e51a42cdd2337e5fcd935432f8dfa33c" + "reference": "f6592a43065f558322d2f1418f68a7bb8f009ed1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/988f83f5e51a42cdd2337e5fcd935432f8dfa33c", - "reference": "988f83f5e51a42cdd2337e5fcd935432f8dfa33c", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/f6592a43065f558322d2f1418f68a7bb8f009ed1", + "reference": "f6592a43065f558322d2f1418f68a7bb8f009ed1", "shasum": "" }, "require": { "composer-plugin-api": "^2.0.0", + "composer-runtime-api": "^2.0.0", "ergebnis/json": "^1.4.0", "ergebnis/json-normalizer": "^4.9.0", "ergebnis/json-printer": "^3.7.0", @@ -9195,27 +9512,27 @@ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "composer/composer": "^2.9.8", + "composer/composer": "^2.10.3", "ergebnis/license": "^2.7.0", - "ergebnis/php-cs-fixer-config": "^6.62.1", + "ergebnis/php-cs-fixer-config": "^6.63.2", "ergebnis/phpstan-rules": "^2.13.1", "ergebnis/phpunit-slow-test-detector": "^2.24.0", - "ergebnis/rector-rules": "^1.18.1", + "ergebnis/rector-rules": "^1.18.3", "fakerphp/faker": "^1.24.1", "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^2.1.54", - "phpstan/phpstan-deprecation-rules": "^2.0.4", - "phpstan/phpstan-phpunit": "^2.0.16", - "phpstan/phpstan-strict-rules": "^2.0.11", + "phpstan/phpstan": "^2.1.55", + "phpstan/phpstan-deprecation-rules": "^2.0.5", + "phpstan/phpstan-phpunit": "^2.0.18", + "phpstan/phpstan-strict-rules": "^2.0.12", "phpunit/phpunit": "^9.6.33", - "rector/rector": "^2.4.3", + "rector/rector": "^2.6.6", "symfony/filesystem": "^5.4.41" }, "type": "composer-plugin", "extra": { "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin", "branch-alias": { - "dev-main": "2.52-dev" + "dev-main": "2.53-dev" }, "plugin-optional": true, "composer-normalize": { @@ -9252,7 +9569,7 @@ "security": "https://github.com/ergebnis/composer-normalize/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/composer-normalize" }, - "time": "2026-05-15T15:39:24+00:00" + "time": "2026-09-09T20:41:58+00:00" }, { "name": "ergebnis/json", @@ -9638,135 +9955,60 @@ }, { "name": "google/protobuf", - "version": "v4.33.6", + "version": "v5.36.2", "source": { "type": "git", "url": "https://github.com/protocolbuffers/protobuf-php.git", - "reference": "84b008c23915ed94536737eae46f41ba3bccfe67" + "reference": "020bc8e831611869ac387ddd38fbbadd78d15195" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/84b008c23915ed94536737eae46f41ba3bccfe67", - "reference": "84b008c23915ed94536737eae46f41ba3bccfe67", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/020bc8e831611869ac387ddd38fbbadd78d15195", + "reference": "020bc8e831611869ac387ddd38fbbadd78d15195", "shasum": "" }, "require": { - "php": ">=8.1.0" + "php": ">=8.2.0" }, "require-dev": { - "phpunit/phpunit": ">=10.5.62 <11.0.0" + "phpunit/phpunit": ">=11.5.50 <12.0.0" }, "suggest": { "ext-bcmath": "Need to support JSON deserialization" }, - "type": "library", - "autoload": { - "psr-4": { - "Google\\Protobuf\\": "src/Google/Protobuf", - "GPBMetadata\\Google\\Protobuf\\": "src/GPBMetadata/Google/Protobuf" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "proto library for PHP", - "homepage": "https://developers.google.com/protocol-buffers/", - "keywords": [ - "proto" - ], - "support": { - "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.33.6" - }, - "time": "2026-03-18T17:32:05+00:00" - }, - { - "name": "justinrainbow/json-schema", - "version": "6.10.0", - "source": { - "type": "git", - "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33", - "reference": "8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33", - "shasum": "" - }, - "require": { - "ext-json": "*", - "marc-mabe/php-enum": "^4.4", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "3.3.0", - "json-schema/json-schema-test-suite": "dev-main", - "marc-mabe/php-enum-phpstan": "^2.0", - "phpspec/prophecy": "^1.19", - "phpstan/phpstan": "^1.12", - "phpunit/phpunit": "^8.5" - }, - "bin": [ - "bin/validate-json" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.x-dev" - } - }, - "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" + "type": "library", + "autoload": { + "psr-4": { + "Google\\Protobuf\\": "src/Google/Protobuf", + "GPBMetadata\\Google\\Protobuf\\": "src/GPBMetadata/Google/Protobuf" } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/jsonrainbow/json-schema", + "description": "proto library for PHP", + "homepage": "https://developers.google.com/protocol-buffers/", "keywords": [ - "json", - "schema" + "proto" ], "support": { - "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/6.10.0" + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v5.36.2" }, - "time": "2026-06-16T20:50:26+00:00" + "time": "2026-09-17T15:56:42+00:00" }, { "name": "league/commonmark", - "version": "2.8.2", + "version": "2.10.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b" + "reference": "6efbd9c472b91db0a3350fcd601c8332c2382e1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6efbd9c472b91db0a3350fcd601c8332c2382e1f", + "reference": "6efbd9c472b91db0a3350fcd601c8332c2382e1f", "shasum": "" }, "require": { @@ -9788,8 +10030,8 @@ "github/gfm": "0.29.0", "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", - "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "phpstan/phpstan": "^2.0.0", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0 || ^12.0.0 || ^13.0.0", "scrutinizer/ocular": "^1.8.1", "symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0", "symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0", @@ -9803,7 +10045,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.9-dev" + "dev-main": "2.11-dev" } }, "autoload": { @@ -9860,7 +10102,7 @@ "type": "tidelift" } ], - "time": "2026-03-19T13:16:38+00:00" + "time": "2026-09-21T13:07:34+00:00" }, { "name": "league/config", @@ -10119,91 +10361,18 @@ }, "time": "2025-08-13T15:27:58+00:00" }, - { - "name": "marc-mabe/php-enum", - "version": "v4.7.2", - "source": { - "type": "git", - "url": "https://github.com/marc-mabe/php-enum.git", - "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", - "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", - "shasum": "" - }, - "require": { - "ext-reflection": "*", - "php": "^7.1 | ^8.0" - }, - "require-dev": { - "phpbench/phpbench": "^0.16.10 || ^1.0.4", - "phpstan/phpstan": "^1.3.1", - "phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11", - "vimeo/psalm": "^4.17.0 | ^5.26.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-3.x": "3.2-dev", - "dev-master": "4.7-dev" - } - }, - "autoload": { - "psr-4": { - "MabeEnum\\": "src/" - }, - "classmap": [ - "stubs/Stringable.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Marc Bennewitz", - "email": "dev@mabe.berlin", - "homepage": "https://mabe.berlin/", - "role": "Lead" - } - ], - "description": "Simple and fast implementation of enumerations with native PHP", - "homepage": "https://github.com/marc-mabe/php-enum", - "keywords": [ - "enum", - "enum-map", - "enum-set", - "enumeration", - "enumerator", - "enummap", - "enumset", - "map", - "set", - "type", - "type-hint", - "typehint" - ], - "support": { - "issues": "https://github.com/marc-mabe/php-enum/issues", - "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" - }, - "time": "2025-09-14T11:18:39+00:00" - }, { "name": "mglaman/phpstan-drupal", - "version": "2.0.15", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/mglaman/phpstan-drupal.git", - "reference": "b61426dddc69862d652abe87cae40848e28caa7d" + "reference": "99d198489a50bf5a654187bf2e6acd55786157d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/b61426dddc69862d652abe87cae40848e28caa7d", - "reference": "b61426dddc69862d652abe87cae40848e28caa7d", + "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/99d198489a50bf5a654187bf2e6acd55786157d7", + "reference": "99d198489a50bf5a654187bf2e6acd55786157d7", "shasum": "" }, "require": { @@ -10212,7 +10381,7 @@ "phpstan/phpstan-deprecation-rules": "^2.0", "symfony/finder": "^6.2 || ^7.0 || ^8.0", "symfony/yaml": "^6.2 || ^7.0 || ^8.0", - "webflo/drupal-finder": "^1.3.1" + "webflo/drupal-finder": "^1.3.1 || ^2.0" }, "require-dev": { "behat/mink": "^1.10", @@ -10275,7 +10444,7 @@ "description": "Drupal extension and rules for PHPStan", "support": { "issues": "https://github.com/mglaman/phpstan-drupal/issues", - "source": "https://github.com/mglaman/phpstan-drupal/tree/2.0.15" + "source": "https://github.com/mglaman/phpstan-drupal/tree/2.2.2" }, "funding": [ { @@ -10291,7 +10460,7 @@ "type": "tidelift" } ], - "time": "2026-04-24T10:47:34+00:00" + "time": "2026-09-18T16:07:28+00:00" }, { "name": "micheh/phpcs-gitlab", @@ -10400,20 +10569,20 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.4", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.0" }, "conflict": { "doctrine/collections": "<1.6.8", @@ -10448,28 +10617,28 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" + "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0" }, "funding": [ { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" + "url": "https://github.com/mnapoli", + "type": "github" } ], - "time": "2025-08-01T08:46:24+00:00" + "time": "2026-08-11T10:17:44+00:00" }, { "name": "nette/schema", - "version": "v1.3.5", + "version": "v1.3.6", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002" + "reference": "c54350438cd6914616f790a49cb424605f421562" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/f0ab1a3cda782dbc5da270d28545236aa80c4002", - "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002", + "url": "https://api.github.com/repos/nette/schema/zipball/c54350438cd6914616f790a49cb424605f421562", + "reference": "c54350438cd6914616f790a49cb424605f421562", "shasum": "" }, "require": { @@ -10521,22 +10690,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.5" + "source": "https://github.com/nette/schema/tree/v1.3.6" }, - "time": "2026-02-23T03:47:12+00:00" + "time": "2026-08-16T21:58:41+00:00" }, { "name": "nette/utils", - "version": "v4.1.4", + "version": "v4.1.5", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7" + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/7da6c396d7ebe142bc857c20479d5e70a5e1aac7", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7", + "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0", "shasum": "" }, "require": { @@ -10556,7 +10725,7 @@ }, "suggest": { "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-iconv": "to use Strings::chr(), ord() and reverse()", "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", @@ -10612,9 +10781,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.1.4" + "source": "https://github.com/nette/utils/tree/v4.1.5" }, - "time": "2026-05-11T20:49:54+00:00" + "time": "2026-07-17T23:02:45+00:00" }, { "name": "nyholm/psr7-server", @@ -10684,16 +10853,16 @@ }, { "name": "open-telemetry/api", - "version": "1.9.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/api.git", - "reference": "6f8d237ce2c304ca85f31970f788e7f074d147be" + "reference": "7c029c4a6fd457094a20569bf98f93d95e9a7559" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/6f8d237ce2c304ca85f31970f788e7f074d147be", - "reference": "6f8d237ce2c304ca85f31970f788e7f074d147be", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/7c029c4a6fd457094a20569bf98f93d95e9a7559", + "reference": "7c029c4a6fd457094a20569bf98f93d95e9a7559", "shasum": "" }, "require": { @@ -10750,7 +10919,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2026-02-25T13:24:05+00:00" + "time": "2026-07-06T12:28:04+00:00" }, { "name": "open-telemetry/context", @@ -10877,20 +11046,20 @@ }, { "name": "open-telemetry/gen-otlp-protobuf", - "version": "1.9.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/gen-otlp-protobuf.git", - "reference": "a229cf161d42001d64c8f21e8f678581fe1c66b9" + "reference": "66f04d0e448ad333033bfc7baae1aa56330be088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/a229cf161d42001d64c8f21e8f678581fe1c66b9", - "reference": "a229cf161d42001d64c8f21e8f678581fe1c66b9", + "url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/66f04d0e448ad333033bfc7baae1aa56330be088", + "reference": "66f04d0e448ad333033bfc7baae1aa56330be088", "shasum": "" }, "require": { - "google/protobuf": "^3.22 || ^4.0", + "google/protobuf": "^3.22 || ^4.0 || ^5.0", "php": "^8.0" }, "suggest": { @@ -10936,20 +11105,20 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2025-10-19T06:44:33+00:00" + "time": "2026-06-17T12:06:32+00:00" }, { "name": "open-telemetry/sdk", - "version": "1.14.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sdk.git", - "reference": "6e3d0ce93e76555dd5e2f1d19443ff45b990e410" + "reference": "77e1aa73850154abb86937d52a70883edc3b4547" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/6e3d0ce93e76555dd5e2f1d19443ff45b990e410", - "reference": "6e3d0ce93e76555dd5e2f1d19443ff45b990e410", + "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/77e1aa73850154abb86937d52a70883edc3b4547", + "reference": "77e1aa73850154abb86937d52a70883edc3b4547", "shasum": "" }, "require": { @@ -10957,7 +11126,7 @@ "nyholm/psr7-server": "^1.1", "open-telemetry/api": "^1.8", "open-telemetry/context": "^1.4", - "open-telemetry/sem-conv": "^1.0", + "open-telemetry/sem-conv": "^1.38.0", "php": "^8.1", "php-http/discovery": "^1.14", "psr/http-client": "^1.0", @@ -10980,7 +11149,10 @@ "spi": { "OpenTelemetry\\API\\Configuration\\ConfigEnv\\EnvComponentLoader": [ "OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderHttpConfig", - "OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderPeerConfig" + "OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderPeerConfig", + "OpenTelemetry\\SDK\\ConfigEnv\\Trace\\SpanSuppressionStrategySemConv", + "OpenTelemetry\\SDK\\ConfigEnv\\Trace\\SpanSuppressionStrategySpanKind", + "OpenTelemetry\\SDK\\ConfigEnv\\Distribution\\DistributionConfigurationSdk" ], "OpenTelemetry\\SDK\\Common\\Configuration\\Resolver\\ResolverInterface": [ "OpenTelemetry\\SDK\\Common\\Configuration\\Resolver\\SdkConfigurationResolver" @@ -10990,7 +11162,7 @@ ] }, "branch-alias": { - "dev-main": "1.12.x-dev" + "dev-main": "1.14.x-dev" } }, "autoload": { @@ -11033,20 +11205,20 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2026-03-21T11:50:01+00:00" + "time": "2026-07-14T13:09:54+00:00" }, { "name": "open-telemetry/sem-conv", - "version": "1.38.0", + "version": "1.44.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sem-conv.git", - "reference": "e613bc640a407def4991b8a936a9b27edd9a3240" + "reference": "c94bc7ebacef039cda4f4c9270807dcc58b4e3af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/e613bc640a407def4991b8a936a9b27edd9a3240", - "reference": "e613bc640a407def4991b8a936a9b27edd9a3240", + "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/c94bc7ebacef039cda4f4c9270807dcc58b4e3af", + "reference": "c94bc7ebacef039cda4f4c9270807dcc58b4e3af", "shasum": "" }, "require": { @@ -11090,7 +11262,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2026-01-21T04:14:03+00:00" + "time": "2026-09-09T22:06:17+00:00" }, { "name": "phar-io/manifest", @@ -11809,16 +11981,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.2", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", "shasum": "" }, "require": { @@ -11850,17 +12022,17 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" }, - "time": "2026-01-25T14:56:51+00:00" + "time": "2026-08-31T16:05:28+00:00" }, { "name": "phpstan/phpstan", - "version": "2.2.3", + "version": "2.2.15", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/4048833dd47b377287818841877fb3087289509c", - "reference": "4048833dd47b377287818841877fb3087289509c", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b158556ffd26825cf615a1c1f72fb5157a2301b7", + "reference": "b158556ffd26825cf615a1c1f72fb5157a2301b7", "shasum": "" }, "require": { @@ -11916,20 +12088,20 @@ "type": "github" } ], - "time": "2026-06-30T21:15:26+00:00" + "time": "2026-09-23T12:23:07+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", - "version": "2.0.4", + "version": "2.0.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", - "reference": "6b5571001a7f04fa0422254c30a0017ec2f2cacc" + "reference": "67bedd65c24bc72840afc45aed48b1059dd44bec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/6b5571001a7f04fa0422254c30a0017ec2f2cacc", - "reference": "6b5571001a7f04fa0422254c30a0017ec2f2cacc", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/67bedd65c24bc72840afc45aed48b1059dd44bec", + "reference": "67bedd65c24bc72840afc45aed48b1059dd44bec", "shasum": "" }, "require": { @@ -11939,7 +12111,8 @@ "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/phpstan-phpunit": "^2.0", - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^9.6", + "shipmonk/name-collision-detector": "^2.1" }, "type": "phpstan-extension", "extra": { @@ -11964,22 +12137,22 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", - "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/2.0.4" + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/2.0.5" }, - "time": "2026-02-09T13:21:14+00:00" + "time": "2026-07-22T06:50:43+00:00" }, { "name": "phpstan/phpstan-phpunit", - "version": "2.0.17", + "version": "2.0.18", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-phpunit.git", - "reference": "c2f977551f0736d60467b3d754b2e0cf4e337b3f" + "reference": "f5dc20ff8082d02339b60cab68ec3eb0d859fb30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/c2f977551f0736d60467b3d754b2e0cf4e337b3f", - "reference": "c2f977551f0736d60467b3d754b2e0cf4e337b3f", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f5dc20ff8082d02339b60cab68ec3eb0d859fb30", + "reference": "f5dc20ff8082d02339b60cab68ec3eb0d859fb30", "shasum": "" }, "require": { @@ -12022,9 +12195,9 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan-phpunit/issues", - "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.17" + "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.18" }, - "time": "2026-06-29T05:32:23+00:00" + "time": "2026-07-04T12:16:09+00:00" }, { "name": "phpunit/php-code-coverage", @@ -12375,24 +12548,24 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.55", + "version": "11.5.56", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00" + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/adc7262fccc12de2b30f12a8aa0b33775d814f00", - "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", "shasum": "" }, "require": { "ext-dom": "*", + "ext-filter": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", - "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", @@ -12457,31 +12630,64 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.55" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" }, "funding": [ { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, + "url": "https://phpunit.de/sponsoring.html", + "type": "other" + } + ], + "time": "2026-07-06T14:52:39+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "time": "2026-02-18T12:37:06+00:00" + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" }, { "name": "ramsey/collection", @@ -12561,20 +12767,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.3", + "version": "4.9.4", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "1df15849d00943a67d677dc9cfd80795f038c9f8" + "reference": "75d73f48d02797c2c285a7e9f348fadc0102ffe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/1df15849d00943a67d677dc9cfd80795f038c9f8", - "reference": "1df15849d00943a67d677dc9cfd80795f038c9f8", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/75d73f48d02797c2c285a7e9f348fadc0102ffe2", + "reference": "75d73f48d02797c2c285a7e9f348fadc0102ffe2", "shasum": "" }, "require": { - "brick/math": ">=0.8.16 <=0.18", + "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14 || ^0.15 || ^0.16 || ^0.17 || ^0.18 || ^0.19 || ^0.20 || ^1.0", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -12633,9 +12839,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.3" + "source": "https://github.com/ramsey/uuid/tree/4.9.4" }, - "time": "2026-06-18T03:57:49+00:00" + "time": "2026-09-16T11:39:30+00:00" }, { "name": "react/promise", @@ -13773,16 +13979,16 @@ }, { "name": "seld/phar-utils", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c" + "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/990bbd0e92caa216d52eca0935f6e35e589bfaa5", + "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5", "shasum": "" }, "require": { @@ -13815,9 +14021,9 @@ ], "support": { "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1" + "source": "https://github.com/Seldaek/phar-utils/tree/1.2.2" }, - "time": "2022-08-31T10:31:18+00:00" + "time": "2026-08-01T12:48:55+00:00" }, { "name": "seld/signal-handler", @@ -14003,16 +14209,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.13.5", + "version": "3.13.6", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", - "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/4c378e1a528ea066890fc2397cbdd2f94eb2fc91", + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91", "shasum": "" }, "require": { @@ -14078,7 +14284,7 @@ "type": "thanks_dev" } ], - "time": "2025-11-04T16:30:35+00:00" + "time": "2026-08-06T00:17:32+00:00" }, { "name": "staabm/side-effects-detector", @@ -14134,16 +14340,16 @@ }, { "name": "symfony/browser-kit", - "version": "v7.4.14", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "bb28e8761a6c33975972948010f00d4a10f0a634" + "reference": "7aff5c4b17a7b04ea6a8390773a93148d15a40b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/bb28e8761a6c33975972948010f00d4a10f0a634", - "reference": "bb28e8761a6c33975972948010f00d4a10f0a634", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/7aff5c4b17a7b04ea6a8390773a93148d15a40b7", + "reference": "7aff5c4b17a7b04ea6a8390773a93148d15a40b7", "shasum": "" }, "require": { @@ -14183,7 +14389,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v7.4.14" + "source": "https://github.com/symfony/browser-kit/tree/v7.4.17" }, "funding": [ { @@ -14203,20 +14409,20 @@ "type": "tidelift" } ], - "time": "2026-06-08T20:24:16+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/css-selector", - "version": "v7.4.9", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "b75663ed96cf4756e28e3105476f220f92886cc4" + "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/b75663ed96cf4756e28e3105476f220f92886cc4", - "reference": "b75663ed96cf4756e28e3105476f220f92886cc4", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/fecf40067fc8d8880ea87b8ac227600b9aadd1d0", + "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0", "shasum": "" }, "require": { @@ -14252,7 +14458,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.4.9" + "source": "https://github.com/symfony/css-selector/tree/v7.4.18" }, "funding": [ { @@ -14272,20 +14478,20 @@ "type": "tidelift" } ], - "time": "2026-04-18T13:18:21+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/dom-crawler", - "version": "v7.4.12", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "b59b59122690976550fd142c23fab62c84738db6" + "reference": "6b037d62595666cf65de867073c9a1f00184be0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b59b59122690976550fd142c23fab62c84738db6", - "reference": "b59b59122690976550fd142c23fab62c84738db6", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/6b037d62595666cf65de867073c9a1f00184be0c", + "reference": "6b037d62595666cf65de867073c9a1f00184be0c", "shasum": "" }, "require": { @@ -14324,7 +14530,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.4.12" + "source": "https://github.com/symfony/dom-crawler/tree/v7.4.17" }, "funding": [ { @@ -14344,20 +14550,20 @@ "type": "tidelift" } ], - "time": "2026-05-20T07:20:23+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/lock", - "version": "v7.4.14", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "749d1f3bcc158c60a15e9c5d45d60bac293fa0f2" + "reference": "4073e583b1cb048799706d7ba3245328858cfea6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/749d1f3bcc158c60a15e9c5d45d60bac293fa0f2", - "reference": "749d1f3bcc158c60a15e9c5d45d60bac293fa0f2", + "url": "https://api.github.com/repos/symfony/lock/zipball/4073e583b1cb048799706d7ba3245328858cfea6", + "reference": "4073e583b1cb048799706d7ba3245328858cfea6", "shasum": "" }, "require": { @@ -14407,7 +14613,7 @@ "semaphore" ], "support": { - "source": "https://github.com/symfony/lock/tree/v7.4.14" + "source": "https://github.com/symfony/lock/tree/v7.4.18" }, "funding": [ { @@ -14427,7 +14633,7 @@ "type": "tidelift" } ], - "time": "2026-06-11T07:31:44+00:00" + "time": "2026-08-30T20:10:52+00:00" }, { "name": "symfony/polyfill-php73", @@ -14509,90 +14715,6 @@ ], "time": "2024-09-09T11:45:10+00:00" }, - { - "name": "symfony/polyfill-php80", - "version": "v1.37.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", - "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-04-10T16:19:22+00:00" - }, { "name": "symfony/polyfill-php82", "version": "v1.38.1", @@ -14675,20 +14797,20 @@ }, { "name": "symfony/stopwatch", - "version": "v7.4.8", + "version": "v8.1.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "70a852d72fec4d51efb1f48dcd968efcaf5ccb89" + "reference": "21c07b026905d596e8379caeb115d87aa479499d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/70a852d72fec4d51efb1f48dcd968efcaf5ccb89", - "reference": "70a852d72fec4d51efb1f48dcd968efcaf5ccb89", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/21c07b026905d596e8379caeb115d87aa479499d", + "reference": "21c07b026905d596e8379caeb115d87aa479499d", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4.1", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -14717,7 +14839,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.4.8" + "source": "https://github.com/symfony/stopwatch/tree/v8.1.0" }, "funding": [ { @@ -14737,7 +14859,7 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-05-29T05:06:50+00:00" }, { "name": "tbachert/spi", @@ -15034,7 +15156,6 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { - "chx/drupal-issue-fork": 20, "drupal/config_translation_po": 20, "drupal/openid_connect": 20, "drupal/webform": 20 diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 00000000..5ae29f11 --- /dev/null +++ b/web/.gitignore @@ -0,0 +1 @@ +/autoload_runtime.php \ No newline at end of file From 5fd316e9f3d5334d2c3ebb536f6930179bce137d Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 09:09:43 +0200 Subject: [PATCH 02/10] Updated changelog --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 844bb907..489d5375 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning]. ## [Unreleased] +## [0.5.4] - 2026-09-24 + +- [PR-136](https://github.com/itk-dev/ai-screening/pull/136) + Security update + ## [0.5.3] - 2026-07-01 - [PR-134](https://github.com/itk-dev/ai-screening/pull/134) From 117a6ed621cd84499511e6b0cb4ef6d40c51ca99 Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 09:10:21 +0200 Subject: [PATCH 03/10] Updated changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 489d5375..d2e7f0a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,8 @@ and this project adheres to [Semantic Versioning]. ## [0.5.4] - 2026-09-24 - [PR-136](https://github.com/itk-dev/ai-screening/pull/136) - Security update + - Security update + - Core update ## [0.5.3] - 2026-07-01 From 7170e9313a2328c644dedc52cd45d81faa230a4f Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 09:11:20 +0200 Subject: [PATCH 04/10] Updated changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2e7f0a9..e36b36f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning]. - [PR-136](https://github.com/itk-dev/ai-screening/pull/136) - Security update - - Core update + - Core update - 11.4.7 ## [0.5.3] - 2026-07-01 From 4f77d961c71ebc44a088123660f7d6f4c4297ce5 Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 09:46:12 +0200 Subject: [PATCH 05/10] Applied code analysis fixes --- .../src/Drush/Commands/Commands.php | 9 -- .../ai_screening/src/Form/FrontpageForm.php | 2 +- .../ai_screening/src/Helper/UserHelper.php | 20 ++- .../src/Form/ProjectNodeConfirmForm.php | 2 +- .../src/Helper/BlockHelper.php | 21 ++- .../src/Helper/ProjectHelper.php | 133 +++++++++--------- .../Drush/Commands/ProjectTrackCommands.php | 19 ++- .../src/Form/ThresholdsForm.php | 4 +- .../src/Helper/ProjectTrackHelper.php | 59 +++----- .../src/Helper/ProjectTrackToolHelper.php | 50 ++++--- .../src/Helper/ProjectTrackTypeHelper.php | 23 ++- .../src/Form/CreateReport.php | 15 +- 12 files changed, 152 insertions(+), 205 deletions(-) diff --git a/web/modules/custom/ai_screening/src/Drush/Commands/Commands.php b/web/modules/custom/ai_screening/src/Drush/Commands/Commands.php index 04173f61..57fa102a 100644 --- a/web/modules/custom/ai_screening/src/Drush/Commands/Commands.php +++ b/web/modules/custom/ai_screening/src/Drush/Commands/Commands.php @@ -12,7 +12,6 @@ use Drupal\ai_screening\Exception\InvalidArgumentException; use Drupal\ai_screening_project_track\Helper\ProjectTrackHelper; use Drupal\ai_screening_project_track\Helper\ProjectTrackToolHelper; -use Drupal\ai_screening_project_track\ProjectTrackStorageInterface; use Drupal\user\UserInterface; use Drush\Attributes as CLI; use Drush\Commands\AutowireTrait; @@ -28,13 +27,6 @@ final class Commands extends DrushCommands { private const string ACCESS_CHECK = 'ai-screening:access-check'; - /** - * The project track storage. - * - * @var \Drupal\ai_screening_project_track\ProjectTrackStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private readonly ProjectTrackStorageInterface $projectTrackStorage; - /** * Constructor. */ @@ -44,7 +36,6 @@ public function __construct( private readonly ProjectTrackToolHelper $projectTrackToolHelper, private readonly AccountSwitcherInterface $accountSwitcher, ) { - $this->projectTrackStorage = $this->entityTypeManager->getStorage('project_track'); } /** diff --git a/web/modules/custom/ai_screening/src/Form/FrontpageForm.php b/web/modules/custom/ai_screening/src/Form/FrontpageForm.php index 5405c146..03f17f71 100644 --- a/web/modules/custom/ai_screening/src/Form/FrontpageForm.php +++ b/web/modules/custom/ai_screening/src/Form/FrontpageForm.php @@ -18,7 +18,7 @@ final class FrontpageForm extends FormBase { use AutowireTrait; public function __construct( - private readonly StateInterface $state, + protected readonly StateInterface $state, ) { } diff --git a/web/modules/custom/ai_screening/src/Helper/UserHelper.php b/web/modules/custom/ai_screening/src/Helper/UserHelper.php index c9f48b0a..0cf81631 100644 --- a/web/modules/custom/ai_screening/src/Helper/UserHelper.php +++ b/web/modules/custom/ai_screening/src/Helper/UserHelper.php @@ -21,23 +21,21 @@ */ final class UserHelper extends AbstractHelper implements EventSubscriberInterface { - - /** - * The user storage. - * - * @var \Drupal\user\UserStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private readonly UserStorageInterface|EntityStorageInterface $userStorage; - /** * Constructor. */ public function __construct( - EntityTypeManagerInterface $entityTypeManager, + private readonly EntityTypeManagerInterface $entityTypeManager, LoggerChannel $logger, ) { parent::__construct($logger); - $this->userStorage = $entityTypeManager->getStorage('user'); + } + + /** + * Get the user storage. + */ + private function getUserStorage(): UserStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('user'); } /** @@ -78,7 +76,7 @@ public function setDefaultLanguage(UserInterface $user): UserInterface { */ public function alterUserName(UserFormatNameAlterEvent $event): void { $name = &$event->getName(); - $user = $this->userStorage->load($event->getAccount()->id()); + $user = $this->getUserStorage()->load($event->getAccount()->id()); $fieldName = $user?->get('field_name')->getString(); // Prevent "TypeError: Cannot assign null to reference held by property // Drupal\user_event_dispatcher\Event\User\UserFormatNameAlterEvent::$name". diff --git a/web/modules/custom/ai_screening_project/src/Form/ProjectNodeConfirmForm.php b/web/modules/custom/ai_screening_project/src/Form/ProjectNodeConfirmForm.php index a2750099..b75938f7 100644 --- a/web/modules/custom/ai_screening_project/src/Form/ProjectNodeConfirmForm.php +++ b/web/modules/custom/ai_screening_project/src/Form/ProjectNodeConfirmForm.php @@ -29,7 +29,7 @@ class ProjectNodeConfirmForm extends ConfirmFormBase { * The temp store factory service. */ public function __construct( - private readonly PrivateTempStoreFactory $tempStoreFactory, + protected readonly PrivateTempStoreFactory $tempStoreFactory, ) { } diff --git a/web/modules/custom/ai_screening_project/src/Helper/BlockHelper.php b/web/modules/custom/ai_screening_project/src/Helper/BlockHelper.php index 1f5afaa2..734ed1cc 100644 --- a/web/modules/custom/ai_screening_project/src/Helper/BlockHelper.php +++ b/web/modules/custom/ai_screening_project/src/Helper/BlockHelper.php @@ -17,21 +17,20 @@ */ final readonly class BlockHelper implements EventSubscriberInterface { - /** - * The node storage. - * - * @var \Drupal\node\NodeStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private NodeStorageInterface|EntityStorageInterface $nodeStorage; - /** * Constructor. */ public function __construct( - EntityTypeManagerInterface $entityTypeManager, + private EntityTypeManagerInterface $entityTypeManager, private ProjectHelper $projectHelper, ) { - $this->nodeStorage = $entityTypeManager->getStorage('node'); + } + + /** + * Get the node storage. + */ + private function getNodeStorage(): NodeStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('node'); } /** @@ -70,11 +69,11 @@ public function getFrontpageStats(): array { 'refusedCount' => 0, ]; - $activeProjectsIds = $this->nodeStorage->getQuery() + $activeProjectsIds = $this->getNodeStorage()->getQuery() ->accessCheck(TRUE) ->execute(); - $activeProjects = $this->nodeStorage->loadMultiple($activeProjectsIds); + $activeProjects = $this->getNodeStorage()->loadMultiple($activeProjectsIds); foreach ($activeProjects as $project) { $evaluation = $this->projectHelper->getProjectTrackEvaluation($project->id()); diff --git a/web/modules/custom/ai_screening_project/src/Helper/ProjectHelper.php b/web/modules/custom/ai_screening_project/src/Helper/ProjectHelper.php index 62a33eb9..633e3d41 100644 --- a/web/modules/custom/ai_screening_project/src/Helper/ProjectHelper.php +++ b/web/modules/custom/ai_screening_project/src/Helper/ProjectHelper.php @@ -58,73 +58,66 @@ class ProjectHelper extends AbstractHelper implements EventSubscriberInterface { public final const string FIELD_STATE = 'field_project_state'; /** - * The group storage. - * - * @var \Drupal\group\Entity\Storage\GroupStorage|\Drupal\Core\Entity\EntityStorageInterface + * Constructor. */ - private readonly GroupStorage|EntityStorageInterface $groupStorage; + public function __construct( + private readonly AccountProxyInterface $accountProxy, + private readonly ProjectTrackHelper $projectTrackHelper, + private readonly ProjectTrackTypeHelper $projectTrackTypeHelper, + private readonly EntityTypeManagerInterface $entityTypeManager, + LoggerChannel $logger, + private readonly PrivateTempStoreFactory $tempStoreFactory, + ) { + parent::__construct($logger); + } /** - * The group relationship storage. - * - * @var \Drupal\group\Entity\Storage\GroupRelationshipStorageInterface|\Drupal\Core\Entity\EntityStorageInterface + * Get the group storage. */ - private readonly GroupRelationshipStorageInterface|EntityStorageInterface $groupRelationshipStorage; + private function getGroupStorage(): GroupStorage|EntityStorageInterface { + return $this->entityTypeManager->getStorage('group'); + } /** - * The user storage. - * - * @var \Drupal\user\UserStorageInterface|\Drupal\Core\Entity\EntityStorageInterface + * Get the group relationship storage. */ - private readonly UserStorageInterface|EntityStorageInterface $userStorage; + private function getGroupRelationshipStorage(): GroupRelationshipStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('group_relationship'); + } /** - * The node storage. - * - * @var \Drupal\node\NodeStorageInterface|\Drupal\Core\Entity\EntityStorageInterface + * Get the user storage. */ - private readonly NodeStorageInterface|EntityStorageInterface $nodeStorage; + private function getUserStorage(): UserStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('user'); + } /** - * The webform submission storage. - * - * @var \Drupal\webform\WebformSubmissionStorageInterface|\Drupal\Core\Entity\EntityStorageInterface + * Get the node storage. */ - private readonly WebformSubmissionStorageInterface|EntityStorageInterface $webformSubmissionStorage; + private function getNodeStorage(): NodeStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('node'); + } /** - * The project track storage. - * - * @var \Drupal\ai_screening_project_track\ProjectTrackStorageInterface|\Drupal\Core\Entity\EntityStorageInterface + * Get the webform submission storage. */ - private readonly ProjectTrackStorageInterface|EntityStorageInterface $projectTrackStorage; + private function getWebformSubmissionStorage(): WebformSubmissionStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('webform_submission'); + } /** - * The project track tool storage. - * - * @var \Drupal\ai_screening_project_track\ProjectTrackToolStorageInterface|\Drupal\Core\Entity\EntityStorageInterface + * Get the project track storage. */ - private readonly ProjectTrackToolStorageInterface|EntityStorageInterface $projectTrackToolStorage; + private function getProjectTrackStorage(): ProjectTrackStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('project_track'); + } /** - * Constructor. + * Get the project track tool storage. */ - public function __construct( - private readonly AccountProxyInterface $accountProxy, - private readonly ProjectTrackHelper $projectTrackHelper, - private readonly ProjectTrackTypeHelper $projectTrackTypeHelper, - EntityTypeManagerInterface $entityTypeManager, - LoggerChannel $logger, - private readonly PrivateTempStoreFactory $tempStoreFactory, - ) { - parent::__construct($logger); - $this->groupStorage = $entityTypeManager->getStorage('group'); - $this->groupRelationshipStorage = $entityTypeManager->getStorage('group_relationship'); - $this->userStorage = $entityTypeManager->getStorage('user'); - $this->nodeStorage = $entityTypeManager->getStorage('node'); - $this->webformSubmissionStorage = $entityTypeManager->getStorage('webform_submission'); - $this->projectTrackStorage = $entityTypeManager->getStorage('project_track'); - $this->projectTrackToolStorage = $entityTypeManager->getStorage('project_track_tool'); + private function getProjectTrackToolStorage(): ProjectTrackToolStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('project_track_tool'); } /** @@ -137,14 +130,14 @@ public function deleteRelated(NodeInterface $project): void { // Delete group. try { - $relationshipIds = $this->groupRelationshipStorage->getQuery() + $relationshipIds = $this->getGroupRelationshipStorage()->getQuery() ->accessCheck(FALSE) ->condition('entity_id', $project->id(), '=') ->condition('type', 'project_group-group_node-project', '=') ->execute(); - $relationships = $this->groupRelationshipStorage->loadMultiple($relationshipIds); + $relationships = $this->getGroupRelationshipStorage()->loadMultiple($relationshipIds); - $groups = $this->groupStorage->loadMultiple(array_map( + $groups = $this->getGroupStorage()->loadMultiple(array_map( static fn (GroupRelationshipInterface $relationship) => $relationship->getGroupId(), $relationships )); @@ -167,13 +160,13 @@ public function deleteRelated(NodeInterface $project): void { */ public function cron(CronEvent $event): void { try { - $corruptedNids = $this->nodeStorage->getQuery() + $corruptedNids = $this->getNodeStorage()->getQuery() ->accessCheck(FALSE) ->condition(self::FIELD_CORRUPTED, TRUE) ->execute(); // Delete corrupted nodes. - $corruptedNodes = $this->nodeStorage->loadMultiple($corruptedNids); + $corruptedNodes = $this->getNodeStorage()->loadMultiple($corruptedNids); foreach ($corruptedNodes as $node) { $node->delete(); } @@ -256,7 +249,7 @@ public function isProject(EntityInterface $entity): bool { * Load all accessible projects that are not corrupted. */ public function loadProjects(): array { - $query = $this->nodeStorage->getQuery(); + $query = $this->getNodeStorage()->getQuery(); $corruptedCondition = $query->orConditionGroup() ->condition(self::FIELD_CORRUPTED, FALSE) ->condition(self::FIELD_CORRUPTED, NULL, 'IS NULL'); @@ -265,7 +258,7 @@ public function loadProjects(): array { ->condition($corruptedCondition); $projectIds = $query->accessCheck()->execute(); - return $this->nodeStorage->loadMultiple($projectIds); + return $this->getNodeStorage()->loadMultiple($projectIds); } /** @@ -338,7 +331,7 @@ public function formAlter(FormAlterEvent $event): void { $formState = $event->getFormState(); if ($formId === 'node_project_edit_form') { - $query = $this->userStorage->getQuery(); + $query = $this->getUserStorage()->getQuery(); $uids = $query ->accessCheck(FALSE) ->condition('status', 1) @@ -346,7 +339,7 @@ public function formAlter(FormAlterEvent $event): void { ->execute(); // Selected and options for group selects. - $users = $this->userStorage->loadMultiple($uids); + $users = $this->getUserStorage()->loadMultiple($uids); $group = $this->loadProjectGroup($formState->getFormObject()->getEntity()); $groupOwnerId = $group->getOwner()->id(); $groupUsers = $group->getRelatedEntities('group_membership'); @@ -431,10 +424,10 @@ public function submitGroupsForm(array $form, FormStateInterface $formState): vo // Add/remove members of group. $groupUserIds = array_keys($this->mapUsersToSelectOptions($group->getRelatedEntities('group_membership'))); $selectedGroupContributorIds = $formState->getValue('project_contributors'); - $membersToAdd = $this->userStorage->loadMultiple( + $membersToAdd = $this->getUserStorage()->loadMultiple( array_diff($selectedGroupContributorIds, $groupUserIds) ); - $membersToRemove = $this->userStorage->loadMultiple( + $membersToRemove = $this->getUserStorage()->loadMultiple( array_diff($groupUserIds, $selectedGroupContributorIds) ); @@ -451,7 +444,7 @@ public function submitGroupsForm(array $form, FormStateInterface $formState): vo $groupOwner = $formState->getValue('project_owner'); if ($groupOwner !== $group->getOwner()->id()) { - $group->setOwner($this->userStorage->load($groupOwner)); + $group->setOwner($this->getUserStorage()->load($groupOwner)); // And also change project creator, to reflect the group owner. $project = $formState->getFormObject()->getEntity(); @@ -483,9 +476,9 @@ private function addProjectGroup(NodeInterface $entity): void { // Create group when a project is created. /** @var \Drupal\group\Entity\Group $group */ - $group = $this->groupStorage->create(['type' => 'project_group']); + $group = $this->getGroupStorage()->create(['type' => 'project_group']); $group->set('label', 'Group: ' . $entity->label()); - $group->setOwner($this->userStorage->load($this->accountProxy->id())); + $group->setOwner($this->getUserStorage()->load($this->accountProxy->id())); $group->save(); $group->addRelationship($entity, 'group_node:project'); $group->save(); @@ -530,7 +523,7 @@ private function addProjectTracks(NodeInterface $entity): void { if (!is_array($configuration)) { $configuration = []; } - $projectTrack = $this->projectTrackStorage + $projectTrack = $this->getProjectTrackStorage() ->create([ 'type' => $projectTrackTerm->id(), 'title' => $projectTrackTerm->getName(), @@ -549,21 +542,21 @@ private function addProjectTracks(NodeInterface $entity): void { $toolCounter = 0; foreach ($webforms as $webform) { - $tool = $this->projectTrackToolStorage->create([ + $tool = $this->getProjectTrackToolStorage()->create([ 'project_track_id' => $projectTrack->id(), 'tool_entity_type' => 'webform_submission', ]); $tool->setDelta($toolCounter++); $tool->save(); - $webformSubmission = $this->webformSubmissionStorage->create([ + $webformSubmission = $this->getWebformSubmissionStorage()->create([ 'webform' => $webform, 'entity_type' => 'project_track_tool', ]); $webformSubmission->save(); // Reload the webform submission. - $webformSubmission = $this->webformSubmissionStorage->load($webformSubmission->id()); + $webformSubmission = $this->getWebformSubmissionStorage()->load($webformSubmission->id()); $webformSubmission->set('entity_id', $tool->id()); $webformSubmission->save(); @@ -593,7 +586,7 @@ private function addProjectTracks(NodeInterface $entity): void { * Load project. */ public function loadProject(string $id): ?NodeInterface { - $node = $this->nodeStorage->load($id); + $node = $this->getNodeStorage()->load($id); return $this->isProject($node) ? $node : NULL; } @@ -624,12 +617,12 @@ public function preprocessProject(NodePreprocessEvent $event): void { * The tracks. */ public function loadProjectTracks(NodeInterface $project): array { - $ids = $this->projectTrackStorage->getQuery() + $ids = $this->getProjectTrackStorage()->getQuery() ->accessCheck(FALSE) ->condition('project_id', $project->id(), '=') ->execute(); - $tracks = $this->projectTrackStorage->loadMultiple($ids); + $tracks = $this->getProjectTrackStorage()->loadMultiple($ids); uasort($tracks, static fn(ProjectTrackInterface $a, ProjectTrackInterface $b) => $a->getType() ?->getWeight() <=> $b->getType()?->getWeight()); @@ -647,15 +640,15 @@ public function loadProjectTracks(NodeInterface $project): array { * The group */ public function loadProjectGroup(NodeInterface $project) : GroupInterface { - $relationshipIds = $this->groupRelationshipStorage->getQuery() + $relationshipIds = $this->getGroupRelationshipStorage()->getQuery() ->accessCheck(FALSE) ->condition('entity_id', $project->id(), '=') ->condition('type', 'project_group-group_node-project', '=') ->execute(); - $relationships = $this->groupRelationshipStorage->loadMultiple($relationshipIds); + $relationships = $this->getGroupRelationshipStorage()->loadMultiple($relationshipIds); - return $this->groupStorage->load(reset($relationships)->getGroupId()); + return $this->getGroupStorage()->load(reset($relationships)->getGroupId()); } /** @@ -669,7 +662,7 @@ public function loadProjectGroup(NodeInterface $project) : GroupInterface { */ public function getProjectTrackEvaluation(string $projectId) : array { $statuses = []; - $project = $this->nodeStorage->load($projectId); + $project = $this->getNodeStorage()->load($projectId); if ($project instanceof NodeInterface) { $projectTracks = $this->loadProjectTracks($project); diff --git a/web/modules/custom/ai_screening_project_track/src/Drush/Commands/ProjectTrackCommands.php b/web/modules/custom/ai_screening_project_track/src/Drush/Commands/ProjectTrackCommands.php index 141a3fee..faffcb48 100644 --- a/web/modules/custom/ai_screening_project_track/src/Drush/Commands/ProjectTrackCommands.php +++ b/web/modules/custom/ai_screening_project_track/src/Drush/Commands/ProjectTrackCommands.php @@ -24,22 +24,21 @@ final class ProjectTrackCommands extends DrushCommands { private const string LIST = 'ai-screening:project-track:list'; private const string SHOW = 'ai-screening:project-track:show'; - /** - * The project track storage. - * - * @var \Drupal\ai_screening_project_track\ProjectTrackStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private readonly ProjectTrackStorageInterface $projectTrackStorage; - /** * Constructor. */ public function __construct( - EntityTypeManagerInterface $entityTypeManager, + private readonly EntityTypeManagerInterface $entityTypeManager, private readonly ProjectTrackHelper $projectTrackHelper, private readonly ProjectTrackToolHelper $projectTrackToolHelper, ) { - $this->projectTrackStorage = $entityTypeManager->getStorage('project_track'); + } + + /** + * Get the project track storage. + */ + private function getProjectTrackStorage(): ProjectTrackStorageInterface { + return $this->entityTypeManager->getStorage('project_track'); } /** @@ -62,7 +61,7 @@ public function list(?string $ids = NULL, array $options = ['format' => 'table'] $ids = StringUtils::csvToArray($ids); } /** @var \Drupal\ai_screening_project_track\ProjectTrackInterface[] $tracks */ - $tracks = $this->projectTrackStorage->loadMultiple($ids); + $tracks = $this->getProjectTrackStorage()->loadMultiple($ids); $rows = []; foreach ($tracks as $track) { diff --git a/web/modules/custom/ai_screening_project_track/src/Form/ThresholdsForm.php b/web/modules/custom/ai_screening_project_track/src/Form/ThresholdsForm.php index 5853f323..45f0bfc6 100644 --- a/web/modules/custom/ai_screening_project_track/src/Form/ThresholdsForm.php +++ b/web/modules/custom/ai_screening_project_track/src/Form/ThresholdsForm.php @@ -20,8 +20,8 @@ final class ThresholdsForm extends FormBase { use AutowireTrait; public function __construct( - private readonly ProjectTrackTypeHelper $projectTrackTypeHelper, - private readonly StateInterface $state, + protected readonly ProjectTrackTypeHelper $projectTrackTypeHelper, + protected readonly StateInterface $state, ) { } diff --git a/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackHelper.php b/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackHelper.php index a3e1c3d8..ace1f99a 100644 --- a/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackHelper.php +++ b/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackHelper.php @@ -17,9 +17,7 @@ use Drupal\ai_screening_project_track\Status; use Drupal\core_event_dispatcher\Event\Theme\ThemeEvent; use Drupal\core_event_dispatcher\ThemeHookEvents; -use Drupal\taxonomy\TermStorageInterface; use Drupal\webform\WebformSubmissionInterface; -use Drupal\webform\WebformSubmissionStorageInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** @@ -29,35 +27,6 @@ final class ProjectTrackHelper extends AbstractHelper implements EventSubscriber use StringTranslationTrait; - /** - * The project track storage. - * - * @var \Drupal\ai_screening_project_track\ProjectTrackStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private readonly ProjectTrackStorageInterface|EntityStorageInterface $projectTrackStorage; - - /** - * The project track storage. - * - * @var \Drupal\ai_screening_project_track\ProjectTrackToolStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private readonly ProjectTrackToolStorageInterface|EntityStorageInterface $projectTrackToolStorage; - - - /** - * The term storage. - * - * @var \Drupal\taxonomy\TermStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private readonly TermStorageInterface|EntityStorageInterface $termStorage; - - /** - * The webform submission storage. - * - * @var \Drupal\Core\Entity\EntityStorageInterface|\Drupal\webform\WebformSubmissionStorageInterface - */ - private readonly WebformSubmissionStorageInterface|EntityStorageInterface $submissionStorage; - public function __construct( private readonly ProjectTrackToolHelper $projectTrackToolHelper, /** @@ -66,14 +35,24 @@ public function __construct( * @var \Drupal\ai_screening_project_track\ProjectTrackEvaluatorIInterface[] $evaluators */ private readonly iterable $evaluators, - EntityTypeManagerInterface $entityTypeManager, + private readonly EntityTypeManagerInterface $entityTypeManager, LoggerChannel $logger, ) { parent::__construct($logger); - $this->projectTrackStorage = $entityTypeManager->getStorage('project_track'); - $this->projectTrackToolStorage = $entityTypeManager->getStorage('project_track_tool'); - $this->termStorage = $entityTypeManager->getStorage('taxonomy_term'); - $this->submissionStorage = $entityTypeManager->getStorage('webform_submission'); + } + + /** + * Get the project track storage. + */ + private function getProjectTrackStorage(): ProjectTrackStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('project_track'); + } + + /** + * Get the project track tool storage. + */ + private function getProjectTrackToolStorage(): ProjectTrackToolStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('project_track_tool'); } /** @@ -94,13 +73,13 @@ public function __construct( */ public function getToolsData(ProjectTrackInterface $track, ?string $key = NULL): mixed { $data = []; - $projectTrackToolIds = $this->projectTrackToolStorage->getQuery() + $projectTrackToolIds = $this->getProjectTrackToolStorage()->getQuery() ->accessCheck(FALSE) ->condition('project_track_id', $track->id()) ->sort('delta') ->execute(); - $projectTrackTools = $this->projectTrackToolStorage->loadMultiple($projectTrackToolIds); + $projectTrackTools = $this->getProjectTrackToolStorage()->loadMultiple($projectTrackToolIds); /** @var \Drupal\ai_screening_project_track\Entity\ProjectTrackTool $projectTrackTool */ foreach ($projectTrackTools as $projectTrackTool) { @@ -128,14 +107,14 @@ public function getEvaluationOptions(): array { * Load track. */ public function loadTrack(string $id): ?ProjectTrackInterface { - return $this->projectTrackStorage->load($id); + return $this->getProjectTrackStorage()->load($id); } /** * Load multiple tracks. */ public function loadTracks(array $trackIds): array { - return $this->projectTrackStorage->loadMultiple($trackIds); + return $this->getProjectTrackStorage()->loadMultiple($trackIds); } /** diff --git a/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackToolHelper.php b/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackToolHelper.php index bf37db5a..f6b6280b 100644 --- a/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackToolHelper.php +++ b/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackToolHelper.php @@ -34,20 +34,6 @@ final class ProjectTrackToolHelper extends AbstractHelper implements EventSubscr private const string HISTORY_KEY = 'history'; - /** - * The project track tool storage. - * - * @var \Drupal\ai_screening_project_track\ProjectTrackToolStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private readonly ProjectTrackToolStorageInterface|EntityStorageInterface $projectTrackToolStorage; - - /** - * The webform submission storage. - * - * @var \Drupal\webform\WebformSubmissionStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private WebformSubmissionStorageInterface|EntityStorageInterface $webformSubmissionStorage; - /** * The project track tool access control handler. * @@ -65,26 +51,38 @@ public function __construct( * @var \Drupal\ai_screening_project_track\ProjectTrackToolComputerInterface[] $computers */ private readonly iterable $computers, - EntityTypeManagerInterface $entityTypeManager, + private readonly EntityTypeManagerInterface $entityTypeManager, LoggerChannel $logger, ) { parent::__construct($logger); - $this->projectTrackToolStorage = $entityTypeManager->getStorage('project_track_tool'); - $this->webformSubmissionStorage = $entityTypeManager->getStorage('webform_submission'); $this->projectTrackToolAccessControlHandler = $entityTypeManager->getAccessControlHandler('project_track_tool'); } + /** + * Get the project track tool storage. + */ + private function getProjectTrackToolStorage(): ProjectTrackToolStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('project_track_tool'); + } + + /** + * Get the webform submission storage. + */ + private function getWebformSubmissionStorage(): WebformSubmissionStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('webform_submission'); + } + /** * Load tools for a track. */ public function loadTools(ProjectTrackInterface $track): array { - $ids = $this->projectTrackToolStorage->getQuery() + $ids = $this->getProjectTrackToolStorage()->getQuery() ->accessCheck(FALSE) ->condition('project_track_id', $track->id()) ->sort('delta') ->execute(); - return $this->projectTrackToolStorage->loadMultiple($ids); + return $this->getProjectTrackToolStorage()->loadMultiple($ids); } /** @@ -297,13 +295,13 @@ private function getTrackToolComputer(ProjectTrackToolInterface $tool, WebformSu public function deleteTools(ProjectTrackInterface $projectTrack): void { $tools = $this->loadTools($projectTrack); foreach ($tools as $tool) { - $submissionIds = $this->webformSubmissionStorage->getQuery() + $submissionIds = $this->getWebformSubmissionStorage()->getQuery() ->accessCheck(FALSE) ->condition('entity_type', $tool->getEntityTypeId(), '=') ->condition('entity_id', $tool->id(), '=') ->execute(); - $webformSubmissions = $this->webformSubmissionStorage->loadMultiple($submissionIds); + $webformSubmissions = $this->getWebformSubmissionStorage()->loadMultiple($submissionIds); foreach ($webformSubmissions as $webformSubmission) { $webformSubmission->delete(); } @@ -326,7 +324,7 @@ public function getTrackToolFormUrl(ProjectTrackToolInterface $tool): string { return ''; } - $submission = $this->webformSubmissionStorage->load($tool->getToolId()); + $submission = $this->getWebformSubmissionStorage()->load($tool->getToolId()); return $this->getUrl($submission, rel: 'edit-form'); } @@ -340,7 +338,7 @@ public function getToolLabel(ProjectTrackToolInterface $tool): string { } /** @var \Drupal\webform\WebformSubmissionInterface $submission */ - $submission = $this->webformSubmissionStorage->load($tool->getToolId()); + $submission = $this->getWebformSubmissionStorage()->load($tool->getToolId()); $webform = $submission->getWebform(); @@ -360,7 +358,7 @@ public function getToolStatus(ProjectTrackToolInterface $tool): array { 'populated' => 0, ]; /** @var \Drupal\webform\WebformSubmissionInterface $submission */ - $submission = $this->webformSubmissionStorage->load($tool->getToolId()); + $submission = $this->getWebformSubmissionStorage()->load($tool->getToolId()); $submissionData = $submission->getData(); if (empty($submissionData)) { return $status; @@ -476,7 +474,7 @@ public function getToolBlockers(ProjectTrackToolInterface $tool): array { * The tool if any. */ public function loadToolByWebformSubmission(WebformSubmissionInterface $submission): ?ProjectTrackToolInterface { - $ids = $this->projectTrackToolStorage->getQuery() + $ids = $this->getProjectTrackToolStorage()->getQuery() ->accessCheck(FALSE) ->condition('tool_entity_type', $submission->getEntityTypeId(), '=') ->condition('tool_id', $submission->id(), '=') @@ -484,7 +482,7 @@ public function loadToolByWebformSubmission(WebformSubmissionInterface $submissi $id = reset($ids) ?: NULL; - return $id !== NULL ? $this->projectTrackToolStorage->load($id) : NULL; + return $id !== NULL ? $this->getProjectTrackToolStorage()->load($id) : NULL; } /** diff --git a/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackTypeHelper.php b/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackTypeHelper.php index 9fc55afc..40384271 100644 --- a/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackTypeHelper.php +++ b/web/modules/custom/ai_screening_project_track/src/Helper/ProjectTrackTypeHelper.php @@ -31,18 +31,17 @@ final class ProjectTrackTypeHelper implements EventSubscriberInterface { public const string BUNDLE_TERM_PROJECT_TRACK = 'project_track_type'; private const string THRESHOLD_KEY_SEPARATOR = '-'; - /** - * The term storage. - * - * @var \Drupal\taxonomy\TermStorageInterface|\Drupal\Core\Entity\EntityStorageInterface - */ - private TermStorageInterface|EntityStorageInterface $termStorage; - public function __construct( - EntityTypeManagerInterface $entityTypeManager, + private readonly EntityTypeManagerInterface $entityTypeManager, private readonly StateInterface $state, ) { - $this->termStorage = $entityTypeManager->getStorage('taxonomy_term'); + } + + /** + * Get the term storage. + */ + private function getTermStorage(): TermStorageInterface|EntityStorageInterface { + return $this->entityTypeManager->getStorage('taxonomy_term'); } /** @@ -62,7 +61,7 @@ public function getProjectTrackTypeForWebform(WebformInterface $webform): ?TermI * The terms. */ public function loadTerms(?WebformInterface $webform = NULL, bool $accessCheck = FALSE): array { - $query = $this->termStorage->getQuery() + $query = $this->getTermStorage()->getQuery() ->accessCheck($accessCheck) ->condition('vid', self::BUNDLE_TERM_PROJECT_TRACK) ->exists('field_webform'); @@ -72,14 +71,14 @@ public function loadTerms(?WebformInterface $webform = NULL, bool $accessCheck = $ids = $query->execute(); - return $this->termStorage->loadMultiple($ids); + return $this->getTermStorage()->loadMultiple($ids); } /** * Load a project track type from it's id. */ public function loadProjectTrackType(int $id): EntityInterface { - return $this->termStorage->load($id); + return $this->getTermStorage()->load($id); } /** diff --git a/web/modules/custom/ai_screening_reports/src/Form/CreateReport.php b/web/modules/custom/ai_screening_reports/src/Form/CreateReport.php index f2010f75..3cc8a28a 100644 --- a/web/modules/custom/ai_screening_reports/src/Form/CreateReport.php +++ b/web/modules/custom/ai_screening_reports/src/Form/CreateReport.php @@ -5,7 +5,6 @@ namespace Drupal\ai_screening_reports\Form; use Drupal\Core\DependencyInjection\AutowireTrait; -use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; @@ -17,18 +16,10 @@ final class CreateReport extends FormBase { use AutowireTrait; - /** - * The project track storage. - * - * @var \Drupal\Core\Entity\EntityStorageInterface - */ - private readonly EntityStorageInterface $nodeStorage; - public function __construct( - private readonly ProjectHelper $projectHelper, - EntityTypeManagerInterface $entityTypeManager, + protected readonly ProjectHelper $projectHelper, + protected readonly EntityTypeManagerInterface $entityTypeManager, ) { - $this->nodeStorage = $entityTypeManager->getStorage('node'); } /** @@ -77,7 +68,7 @@ public function submitForm(array &$form, FormStateInterface $form_state): void { $form_state->setRedirect('ai_screening_reports.project', ['node' => reset($projectIds)]); } else { - $projects = $this->nodeStorage->loadMultiple($projectIds); + $projects = $this->entityTypeManager->getStorage('node')->loadMultiple($projectIds); foreach ($projects as $project) { $projectTracks = $this->projectHelper->loadProjectTracks($project); $projectTrackIds = array_merge($projectTrackIds, array_keys($projectTracks)); From e3b61a465b7b6e32468b9a9fef9bbb393b8f938b Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 09:55:06 +0200 Subject: [PATCH 06/10] Updated composer github action --- .github/workflows/composer.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/composer.yaml b/.github/workflows/composer.yaml index b6ae0026..9468935d 100644 --- a/.github/workflows/composer.yaml +++ b/.github/workflows/composer.yaml @@ -77,4 +77,4 @@ jobs: docker network create frontend - run: | - docker compose run --rm phpfpm composer audit + docker compose run --rm phpfpm composer audit --locked From b271582cb4cb82031773aec3e4802b95599ad9b5 Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 09:55:32 +0200 Subject: [PATCH 07/10] Updated composer github action --- .github/workflows/composer.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/composer.yaml b/.github/workflows/composer.yaml index 9468935d..b6ae0026 100644 --- a/.github/workflows/composer.yaml +++ b/.github/workflows/composer.yaml @@ -77,4 +77,4 @@ jobs: docker network create frontend - run: | - docker compose run --rm phpfpm composer audit --locked + docker compose run --rm phpfpm composer audit From 412a65bd5ba78fee78f2febda816d38a085f7eb6 Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 09:56:22 +0200 Subject: [PATCH 08/10] Updated composer github action --- .github/workflows/composer.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/composer.yaml b/.github/workflows/composer.yaml index b6ae0026..9468935d 100644 --- a/.github/workflows/composer.yaml +++ b/.github/workflows/composer.yaml @@ -77,4 +77,4 @@ jobs: docker network create frontend - run: | - docker compose run --rm phpfpm composer audit + docker compose run --rm phpfpm composer audit --locked From a2cebee40ced004e3f9eae762126fbc55d9b253a Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 10:19:54 +0200 Subject: [PATCH 09/10] Removed depreceted ContainerFactoryAutowireTrait --- .../ai_screening/src/Plugin/Block/FrontpageHelpTextBlock.php | 2 -- .../src/Plugin/Block/FrontpageStatsTopBlock.php | 2 -- 2 files changed, 4 deletions(-) diff --git a/web/modules/custom/ai_screening/src/Plugin/Block/FrontpageHelpTextBlock.php b/web/modules/custom/ai_screening/src/Plugin/Block/FrontpageHelpTextBlock.php index c6be0e33..d27c62d6 100644 --- a/web/modules/custom/ai_screening/src/Plugin/Block/FrontpageHelpTextBlock.php +++ b/web/modules/custom/ai_screening/src/Plugin/Block/FrontpageHelpTextBlock.php @@ -7,7 +7,6 @@ use Drupal\Core\Block\Attribute\Block; use Drupal\Core\Block\BlockBase; use Drupal\Core\Cache\UncacheableDependencyTrait; -use Drupal\Core\Plugin\ContainerFactoryAutowireTrait; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\State\StateInterface; use Drupal\Core\StringTranslation\TranslatableMarkup; @@ -22,7 +21,6 @@ )] final class FrontpageHelpTextBlock extends BlockBase implements ContainerFactoryPluginInterface { - use ContainerFactoryAutowireTrait; use UncacheableDependencyTrait; /** diff --git a/web/modules/custom/ai_screening_project/src/Plugin/Block/FrontpageStatsTopBlock.php b/web/modules/custom/ai_screening_project/src/Plugin/Block/FrontpageStatsTopBlock.php index 9de90d9e..5a652e62 100644 --- a/web/modules/custom/ai_screening_project/src/Plugin/Block/FrontpageStatsTopBlock.php +++ b/web/modules/custom/ai_screening_project/src/Plugin/Block/FrontpageStatsTopBlock.php @@ -7,7 +7,6 @@ use Drupal\Core\Block\Attribute\Block; use Drupal\Core\Block\BlockBase; use Drupal\Core\Cache\UncacheableDependencyTrait; -use Drupal\Core\Plugin\ContainerFactoryAutowireTrait; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\ai_screening_project\Helper\BlockHelper; @@ -22,7 +21,6 @@ )] final class FrontpageStatsTopBlock extends BlockBase implements ContainerFactoryPluginInterface { - use ContainerFactoryAutowireTrait; use UncacheableDependencyTrait; /** From 00a8579606df96405f09b069c4f5e9667b62ab73 Mon Sep 17 00:00:00 2001 From: martinyde Date: Thu, 24 Sep 2026 10:31:20 +0200 Subject: [PATCH 10/10] Updated editor config --- config/sync/editor.editor.webform_default.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/config/sync/editor.editor.webform_default.yml b/config/sync/editor.editor.webform_default.yml index e9794fd8..b24981d9 100644 --- a/config/sync/editor.editor.webform_default.yml +++ b/config/sync/editor.editor.webform_default.yml @@ -40,8 +40,10 @@ settings: - heading5 - heading6 ckeditor5_list: - reversed: true - startIndex: true + properties: + reversed: true + startIndex: true + multiBlock: true ckeditor5_sourceEditing: allowed_tags: {} image_upload: {}