From 26ad9b42a22b68f93fc30f858a0e08a6d7fc365c Mon Sep 17 00:00:00 2001 From: Massimiliano Arione Date: Fri, 31 Oct 2025 21:48:15 +0100 Subject: [PATCH] chore: upgrade phpunit (and other deps accordingly) --- .php-cs-fixer.dist.php | 6 +- composer.json | 49 +- composer.lock | 1588 +++++++++-------- phpunit.xml.dist | 18 +- symfony.lock | 9 - tests/Badge/Model/BadgeTest.php | 3 +- tests/Badge/Model/ParseStabilityTest.php | 3 +- .../Model/UseCase/CreateCircleCiBadgeTest.php | 36 +- .../UseCase/CreateComposerLockBadgeTest.php | 74 +- .../UseCase/CreateDependentsBadgeTest.php | 9 +- .../UseCase/CreateDownloadsBadgeTest.php | 9 +- .../Model/UseCase/CreateLicenseBadgeTest.php | 9 +- .../Model/UseCase/CreateRequireBadgeTest.php | 9 +- .../UseCase/CreateSuggestersBadgeTest.php | 11 +- .../Model/UseCase/CreateVersionBadgeTest.php | 8 +- tests/Badge/Service/ClientStrategyTest.php | 50 +- tests/Badge/Service/TextNormalizerTest.php | 5 +- tests/Badge/ValueObject/RepositoryTest.php | 3 +- tests/Controller/HomeControllerTest.php | 3 +- .../BadgeLoggerSubscriberTest.php | 6 +- tests/Extension/BypassFinalExtension.php | 17 + tests/Hook/BypassFinalHook.php | 14 - tests/Service/SnippetGeneratorTest.php | 145 +- 23 files changed, 1082 insertions(+), 1002 deletions(-) create mode 100644 tests/Extension/BypassFinalExtension.php delete mode 100644 tests/Hook/BypassFinalHook.php diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 3cbd6b8d..853979b1 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -12,9 +12,9 @@ ->setRules([ '@Symfony' => true, '@Symfony:risky' => true, - '@PHP80Migration:risky' => true, - '@PHP81Migration' => true, - '@PHPUnit84Migration:risky' => true, + '@PHP8x0Migration:risky' => true, + '@PHP8x1Migration' => true, + '@PHPUnit8x4Migration:risky' => true, 'declare_strict_types' => false, 'final_class' => true, 'native_function_invocation' => ['include' => ['@all']], diff --git a/composer.json b/composer.json index 389c686e..ab6dd69c 100644 --- a/composer.json +++ b/composer.json @@ -15,46 +15,45 @@ "homepage": "https://github.com/PUGX/badge-poser/contributors" } ], - "minimum-stability": "beta", "require": { "php": "^8.3", "ext-gd": "*", "ext-iconv": "*", "badges/poser": "^3.1", "bitbucket/client": "^4.7", - "knplabs/github-api": "^3.15", + "knplabs/github-api": "^3.16", "knplabs/packagist-api": "^2.1", "m4tthumphrey/php-gitlab-api": "^11.14", - "predis/predis": "^2.2", - "sentry/sentry-symfony": "^5.0", - "snc/redis-bundle": "^4.7", - "symfony/asset": "^7.1", - "symfony/console": "^7.1", - "symfony/flex": "^2.4", - "symfony/framework-bundle": "^7.1", - "symfony/http-client": "^7.1", - "symfony/runtime": "^7.1", - "symfony/webpack-encore-bundle": "^2.2", - "symfony/yaml": "^7.1" + "predis/predis": "^2.3", + "sentry/sentry-symfony": "^5.6", + "snc/redis-bundle": "^4.10", + "symfony/asset": "^7.3", + "symfony/console": "^7.3", + "symfony/flex": "^2.8", + "symfony/framework-bundle": "^7.3", + "symfony/http-client": "^7.3", + "symfony/runtime": "^7.3", + "symfony/webpack-encore-bundle": "^2.3", + "symfony/yaml": "^7.3" }, "require-dev": { - "dg/bypass-finals": "^1.4", - "friendsofphp/php-cs-fixer": "^3.13", + "dg/bypass-finals": "^1.9", + "friendsofphp/php-cs-fixer": "^3.89", "jangregor/phpstan-prophecy": "^1.0", "phpspec/prophecy-phpunit": "^2.3", "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9", + "phpstan/phpstan": "^1.12", "phpstan/phpstan-phpunit": "^1.2", "phpstan/phpstan-symfony": "^1.2", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^12.4", "roave/security-advisories": "dev-latest", - "symfony/browser-kit": "^7.1", - "symfony/debug-bundle": "^7.1", - "symfony/dotenv": "^7.1", - "symfony/monolog-bundle": "^3.8", - "symfony/phpunit-bridge": "^7.1", - "symfony/stopwatch": "^7.1", - "symfony/web-profiler-bundle": "^7.1" + "symfony/browser-kit": "^7.3", + "symfony/debug-bundle": "^7.3", + "symfony/dotenv": "^7.3", + "symfony/monolog-bundle": "^3.10", + "symfony/phpunit-bridge": "^7.3", + "symfony/stopwatch": "^7.3", + "symfony/web-profiler-bundle": "^7.3" }, "config": { "preferred-install": { @@ -117,7 +116,7 @@ "symfony": { "id": "01C6YZAVV83WQGHCHEWX2SA6KC", "allow-contrib": false, - "require": "7.1.*" + "require": "7.3.*" }, "branch-alias": { "dev-master": "3.x-dev" diff --git a/composer.lock b/composer.lock index 9a59b64f..fa759075 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d3850fa734319f44477a551026c65268", + "content-hash": "099e0c77c9dc7d7c1279e59bf339e7c4", "packages": [ { "name": "badges/poser", @@ -2182,16 +2182,16 @@ }, { "name": "sentry/sentry", - "version": "4.16.0", + "version": "4.17.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "c5b086e4235762da175034bc463b0d31cbb38d2e" + "reference": "5c696b8de57e841a2bf3b6f6eecfd99acfdda80c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/c5b086e4235762da175034bc463b0d31cbb38d2e", - "reference": "c5b086e4235762da175034bc463b0d31cbb38d2e", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/5c696b8de57e841a2bf3b6f6eecfd99acfdda80c", + "reference": "5c696b8de57e841a2bf3b6f6eecfd99acfdda80c", "shasum": "" }, "require": { @@ -2215,7 +2215,6 @@ "phpbench/phpbench": "^1.0", "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^8.5|^9.6", - "symfony/phpunit-bridge": "^5.2|^6.0|^7.0", "vimeo/psalm": "^4.17" }, "suggest": { @@ -2255,7 +2254,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.16.0" + "source": "https://github.com/getsentry/sentry-php/tree/4.17.1" }, "funding": [ { @@ -2267,7 +2266,7 @@ "type": "custom" } ], - "time": "2025-09-22T13:38:03+00:00" + "time": "2025-10-23T15:19:24+00:00" }, { "name": "sentry/sentry-symfony", @@ -2464,16 +2463,16 @@ }, { "name": "symfony/asset", - "version": "v7.1.6", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "0dcd51490d7fc9fbf3c8f5aec6df182920fc0426" + "reference": "56c4d9f759247c4e07d8549e3baf7493cb9c3e4b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/0dcd51490d7fc9fbf3c8f5aec6df182920fc0426", - "reference": "0dcd51490d7fc9fbf3c8f5aec6df182920fc0426", + "url": "https://api.github.com/repos/symfony/asset/zipball/56c4d9f759247c4e07d8549e3baf7493cb9c3e4b", + "reference": "56c4d9f759247c4e07d8549e3baf7493cb9c3e4b", "shasum": "" }, "require": { @@ -2513,7 +2512,7 @@ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset/tree/v7.1.6" + "source": "https://github.com/symfony/asset/tree/v7.3.0" }, "funding": [ { @@ -2529,27 +2528,27 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:11:02+00:00" + "time": "2025-03-05T10:15:41+00:00" }, { "name": "symfony/cache", - "version": "v7.1.11", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "3828c0375578ff3ca1ddc54cc5c6fa4cc89fb3fb" + "reference": "4a55feb59664f49042a0824c0f955e2f4c1412ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/3828c0375578ff3ca1ddc54cc5c6fa4cc89fb3fb", - "reference": "3828c0375578ff3ca1ddc54cc5c6fa4cc89fb3fb", + "url": "https://api.github.com/repos/symfony/cache/zipball/4a55feb59664f49042a0824c0f955e2f4c1412ad", + "reference": "4a55feb59664f49042a0824c0f955e2f4c1412ad", "shasum": "" }, "require": { "php": ">=8.2", "psr/cache": "^2.0|^3.0", "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^2.5|^3", + "symfony/cache-contracts": "^3.6", "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/service-contracts": "^2.5|^3", "symfony/var-exporter": "^6.4|^7.0" @@ -2570,6 +2569,7 @@ "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", "psr/simple-cache": "^1.0|^2.0|^3.0", + "symfony/clock": "^6.4|^7.0", "symfony/config": "^6.4|^7.0", "symfony/dependency-injection": "^6.4|^7.0", "symfony/filesystem": "^6.4|^7.0", @@ -2610,7 +2610,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.1.11" + "source": "https://github.com/symfony/cache/tree/v7.3.5" }, "funding": [ { @@ -2621,12 +2621,16 @@ "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": "2025-01-27T10:57:12+00:00" + "time": "2025-10-16T13:55:38+00:00" }, { "name": "symfony/cache-contracts", @@ -2706,16 +2710,16 @@ }, { "name": "symfony/config", - "version": "v7.1.7", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8" + "reference": "8a09223170046d2cfda3d2e11af01df2c641e961" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8", - "reference": "dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8", + "url": "https://api.github.com/repos/symfony/config/zipball/8a09223170046d2cfda3d2e11af01df2c641e961", + "reference": "8a09223170046d2cfda3d2e11af01df2c641e961", "shasum": "" }, "require": { @@ -2761,7 +2765,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.1.7" + "source": "https://github.com/symfony/config/tree/v7.3.4" }, "funding": [ { @@ -2772,32 +2776,37 @@ "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": "2024-11-04T11:34:07+00:00" + "time": "2025-09-22T12:46:16+00:00" }, { "name": "symfony/console", - "version": "v7.1.10", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "bb06e2d7f8dd9dffe5eada8a5cbe0f68f1482db7" + "reference": "cdb80fa5869653c83cfe1a9084a673b6daf57ea7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/bb06e2d7f8dd9dffe5eada8a5cbe0f68f1482db7", - "reference": "bb06e2d7f8dd9dffe5eada8a5cbe0f68f1482db7", + "url": "https://api.github.com/repos/symfony/console/zipball/cdb80fa5869653c83cfe1a9084a673b6daf57ea7", + "reference": "cdb80fa5869653c83cfe1a9084a673b6daf57ea7", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^6.4|^7.0" + "symfony/string": "^7.2" }, "conflict": { "symfony/dependency-injection": "<6.4", @@ -2854,7 +2863,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.10" + "source": "https://github.com/symfony/console/tree/v7.3.5" }, "funding": [ { @@ -2865,25 +2874,29 @@ "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": "2024-12-09T07:30:10+00:00" + "time": "2025-10-14T15:46:26+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.1.11", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "5ebf7d4dfda126b442450effaec421a106c010de" + "reference": "82119812ab0bf3425c1234d413efd1b19bb92ae4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5ebf7d4dfda126b442450effaec421a106c010de", - "reference": "5ebf7d4dfda126b442450effaec421a106c010de", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/82119812ab0bf3425c1234d413efd1b19bb92ae4", + "reference": "82119812ab0bf3425c1234d413efd1b19bb92ae4", "shasum": "" }, "require": { @@ -2891,7 +2904,7 @@ "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/service-contracts": "^3.5", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^6.4.20|^7.2.5" }, "conflict": { "ext-psr": "<1.1|>=2", @@ -2934,7 +2947,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.1.11" + "source": "https://github.com/symfony/dependency-injection/tree/v7.3.4" }, "funding": [ { @@ -2945,12 +2958,16 @@ "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": "2025-01-10T09:29:52+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3021,16 +3038,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.1.11", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "f4d1fd1bcb4bce9983d034111b7ea3edc88e1a57" + "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/f4d1fd1bcb4bce9983d034111b7ea3edc88e1a57", - "reference": "f4d1fd1bcb4bce9983d034111b7ea3edc88e1a57", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", + "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", "shasum": "" }, "require": { @@ -3043,9 +3060,11 @@ "symfony/http-kernel": "<6.4" }, "require-dev": { + "symfony/console": "^6.4|^7.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0" + "symfony/serializer": "^6.4|^7.0", + "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -3076,7 +3095,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.1.11" + "source": "https://github.com/symfony/error-handler/tree/v7.3.4" }, "funding": [ { @@ -3087,25 +3106,29 @@ "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": "2025-01-07T09:23:14+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.1.6", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "87254c78dd50721cfd015b62277a8281c5589702" + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/87254c78dd50721cfd015b62277a8281c5589702", - "reference": "87254c78dd50721cfd015b62277a8281c5589702", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", "shasum": "" }, "require": { @@ -3156,7 +3179,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.1.6" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" }, "funding": [ { @@ -3167,12 +3190,16 @@ "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": "2024-09-25T14:20:29+00:00" + "time": "2025-08-13T11:49:31+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3252,16 +3279,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.1.6", + "version": "v7.3.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4" + "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/c835867b3c62bb05c7fe3d637c871c7ae52024d4", - "reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd", + "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd", "shasum": "" }, "require": { @@ -3298,7 +3325,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.6" + "source": "https://github.com/symfony/filesystem/tree/v7.3.2" }, "funding": [ { @@ -3309,25 +3336,29 @@ "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": "2024-10-25T15:11:02+00:00" + "time": "2025-07-07T08:17:47+00:00" }, { "name": "symfony/finder", - "version": "v7.1.10", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "b8b526e051ac0b33feabbec7893adcab96b23bf3" + "reference": "9f696d2f1e340484b4683f7853b273abff94421f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/b8b526e051ac0b33feabbec7893adcab96b23bf3", - "reference": "b8b526e051ac0b33feabbec7893adcab96b23bf3", + "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f", + "reference": "9f696d2f1e340484b4683f7853b273abff94421f", "shasum": "" }, "require": { @@ -3362,7 +3393,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.1.10" + "source": "https://github.com/symfony/finder/tree/v7.3.5" }, "funding": [ { @@ -3373,40 +3404,44 @@ "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": "2024-12-30T18:59:46+00:00" + "time": "2025-10-15T18:45:57+00:00" }, { "name": "symfony/flex", - "version": "v2.8.2", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "f356aa35f3cf3d2f46c31d344c1098eb2d260426" + "reference": "94b37978c9982dc41c5b6a4147892d2d3d1b9ce6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/f356aa35f3cf3d2f46c31d344c1098eb2d260426", - "reference": "f356aa35f3cf3d2f46c31d344c1098eb2d260426", + "url": "https://api.github.com/repos/symfony/flex/zipball/94b37978c9982dc41c5b6a4147892d2d3d1b9ce6", + "reference": "94b37978c9982dc41c5b6a4147892d2d3d1b9ce6", "shasum": "" }, "require": { "composer-plugin-api": "^2.1", - "php": ">=8.0" + "php": ">=8.1" }, "conflict": { "composer/semver": "<1.7.2" }, "require-dev": { "composer/composer": "^2.1", - "symfony/dotenv": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/phpunit-bridge": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0" + "symfony/dotenv": "^6.4|^7.4|^8.0", + "symfony/filesystem": "^6.4|^7.4|^8.0", + "symfony/phpunit-bridge": "^6.4|^7.4|^8.0", + "symfony/process": "^6.4|^7.4|^8.0" }, "type": "composer-plugin", "extra": { @@ -3430,7 +3465,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.8.2" + "source": "https://github.com/symfony/flex/tree/v2.9.0" }, "funding": [ { @@ -3450,20 +3485,20 @@ "type": "tidelift" } ], - "time": "2025-08-22T07:17:23+00:00" + "time": "2025-10-31T15:22:50+00:00" }, { "name": "symfony/framework-bundle", - "version": "v7.1.11", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "1eae7a4e095a2a3851cb41ac2aea9aa60fba1df8" + "reference": "ebd42b1fc2652b96d33520195ea0f6e55c36f09d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/1eae7a4e095a2a3851cb41ac2aea9aa60fba1df8", - "reference": "1eae7a4e095a2a3851cb41ac2aea9aa60fba1df8", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/ebd42b1fc2652b96d33520195ea0f6e55c36f09d", + "reference": "ebd42b1fc2652b96d33520195ea0f6e55c36f09d", "shasum": "" }, "require": { @@ -3471,15 +3506,15 @@ "ext-xml": "*", "php": ">=8.2", "symfony/cache": "^6.4|^7.0", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^7.1.5", + "symfony/config": "^7.3", + "symfony/dependency-injection": "^7.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0", + "symfony/error-handler": "^7.3", "symfony/event-dispatcher": "^6.4|^7.0", "symfony/filesystem": "^7.1", "symfony/finder": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", + "symfony/http-foundation": "^7.3", + "symfony/http-kernel": "^7.2", "symfony/polyfill-mbstring": "~1.0", "symfony/routing": "^6.4|^7.0" }, @@ -3495,24 +3530,27 @@ "symfony/dotenv": "<6.4", "symfony/form": "<6.4", "symfony/http-client": "<6.4", + "symfony/json-streamer": ">=7.4", "symfony/lock": "<6.4", "symfony/mailer": "<6.4", "symfony/messenger": "<6.4", "symfony/mime": "<6.4", + "symfony/object-mapper": ">=7.4", "symfony/property-access": "<6.4", "symfony/property-info": "<6.4", "symfony/runtime": "<6.4.13|>=7.0,<7.1.6", "symfony/scheduler": "<6.4.4|>=7.0.0,<7.0.4", "symfony/security-core": "<6.4", - "symfony/security-csrf": "<6.4", - "symfony/serializer": "<6.4", + "symfony/security-csrf": "<7.2", + "symfony/serializer": "<7.2.5", "symfony/stopwatch": "<6.4", - "symfony/translation": "<6.4", + "symfony/translation": "<7.3", "symfony/twig-bridge": "<6.4", "symfony/twig-bundle": "<6.4", "symfony/validator": "<6.4", "symfony/web-profiler-bundle": "<6.4", - "symfony/workflow": "<6.4" + "symfony/webhook": "<7.2", + "symfony/workflow": "<7.3.0-beta2" }, "require-dev": { "doctrine/persistence": "^1.3|^2|^3", @@ -3531,11 +3569,13 @@ "symfony/form": "^6.4|^7.0", "symfony/html-sanitizer": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", + "symfony/json-streamer": "7.3.*", "symfony/lock": "^6.4|^7.0", "symfony/mailer": "^6.4|^7.0", "symfony/messenger": "^6.4|^7.0", "symfony/mime": "^6.4|^7.0", "symfony/notifier": "^6.4|^7.0", + "symfony/object-mapper": "^v7.3.0-beta2", "symfony/polyfill-intl-icu": "~1.0", "symfony/process": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", @@ -3543,18 +3583,19 @@ "symfony/scheduler": "^6.4.4|^7.0.4", "symfony/security-bundle": "^6.4|^7.0", "symfony/semaphore": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", + "symfony/serializer": "^7.2.5", "symfony/stopwatch": "^6.4|^7.0", "symfony/string": "^6.4|^7.0", - "symfony/translation": "^6.4|^7.0", + "symfony/translation": "^7.3", "symfony/twig-bundle": "^6.4|^7.0", - "symfony/type-info": "^7.1", + "symfony/type-info": "^7.1.8", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/web-link": "^6.4|^7.0", - "symfony/workflow": "^6.4|^7.0", + "symfony/webhook": "^7.2", + "symfony/workflow": "^7.3", "symfony/yaml": "^6.4|^7.0", - "twig/twig": "^3.0.4" + "twig/twig": "^3.12" }, "type": "symfony-bundle", "autoload": { @@ -3582,7 +3623,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v7.1.11" + "source": "https://github.com/symfony/framework-bundle/tree/v7.3.5" }, "funding": [ { @@ -3593,25 +3634,29 @@ "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": "2025-01-29T07:13:42+00:00" + "time": "2025-10-16T16:16:53+00:00" }, { "name": "symfony/http-client", - "version": "v7.1.11", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "71632c1f13b36cb4c23ccdd255946dc02753afef" + "reference": "4b62871a01c49457cf2a8e560af7ee8a94b87a62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/71632c1f13b36cb4c23ccdd255946dc02753afef", - "reference": "71632c1f13b36cb4c23ccdd255946dc02753afef", + "url": "https://api.github.com/repos/symfony/http-client/zipball/4b62871a01c49457cf2a8e560af7ee8a94b87a62", + "reference": "4b62871a01c49457cf2a8e560af7ee8a94b87a62", "shasum": "" }, "require": { @@ -3619,9 +3664,12 @@ "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-client-contracts": "~3.4.4|^3.5.2", + "symfony/polyfill-php83": "^1.29", "symfony/service-contracts": "^2.5|^3" }, "conflict": { + "amphp/amp": "<2.5", + "amphp/socket": "<1.1", "php-http/discovery": "<1.15", "symfony/http-foundation": "<6.4" }, @@ -3632,14 +3680,13 @@ "symfony/http-client-implementation": "3.0" }, "require-dev": { - "amphp/amp": "^2.5", - "amphp/http-client": "^4.2.1", - "amphp/http-tunnel": "^1.0", - "amphp/socket": "^1.1", + "amphp/http-client": "^4.2.1|^5.0", + "amphp/http-tunnel": "^1.0|^2.0", "guzzlehttp/promises": "^1.4|^2.0", "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", + "symfony/amphp-http-client-meta": "^1.0|^2.0", "symfony/dependency-injection": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", "symfony/messenger": "^6.4|^7.0", @@ -3676,7 +3723,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.1.11" + "source": "https://github.com/symfony/http-client/tree/v7.3.4" }, "funding": [ { @@ -3687,12 +3734,16 @@ "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": "2025-01-28T15:50:57+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/http-client-contracts", @@ -3774,20 +3825,21 @@ }, { "name": "symfony/http-foundation", - "version": "v7.1.11", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "7ced01aa123612666a7a4fb72c627f969c01fa8d" + "reference": "ce31218c7cac92eab280762c4375fb70a6f4f897" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7ced01aa123612666a7a4fb72c627f969c01fa8d", - "reference": "7ced01aa123612666a7a4fb72c627f969c01fa8d", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce31218c7cac92eab280762c4375fb70a6f4f897", + "reference": "ce31218c7cac92eab280762c4375fb70a6f4f897", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-mbstring": "~1.1", "symfony/polyfill-php83": "^1.27" }, @@ -3799,6 +3851,7 @@ "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", "symfony/cache": "^6.4.12|^7.1.5", + "symfony/clock": "^6.4|^7.0", "symfony/dependency-injection": "^6.4|^7.0", "symfony/expression-language": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", @@ -3831,7 +3884,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.1.11" + "source": "https://github.com/symfony/http-foundation/tree/v7.3.5" }, "funding": [ { @@ -3842,25 +3895,29 @@ "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": "2025-01-17T10:33:21+00:00" + "time": "2025-10-24T21:42:11+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.1.11", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "576eb3368037dd139f67b8ac71db56c3f69f7d66" + "reference": "24fd3f123532e26025f49f1abefcc01a69ef15ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/576eb3368037dd139f67b8ac71db56c3f69f7d66", - "reference": "576eb3368037dd139f67b8ac71db56c3f69f7d66", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/24fd3f123532e26025f49f1abefcc01a69ef15ab", + "reference": "24fd3f123532e26025f49f1abefcc01a69ef15ab", "shasum": "" }, "require": { @@ -3868,8 +3925,8 @@ "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/event-dispatcher": "^7.3", + "symfony/http-foundation": "^7.3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -3889,7 +3946,7 @@ "symfony/twig-bridge": "<6.4", "symfony/validator": "<6.4", "symfony/var-dumper": "<6.4", - "twig/twig": "<3.0.4" + "twig/twig": "<3.12" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" @@ -3917,7 +3974,7 @@ "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", "symfony/var-exporter": "^6.4|^7.0", - "twig/twig": "^3.0.4" + "twig/twig": "^3.12" }, "type": "library", "autoload": { @@ -3945,7 +4002,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.1.11" + "source": "https://github.com/symfony/http-kernel/tree/v7.3.5" }, "funding": [ { @@ -3956,25 +4013,29 @@ "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": "2025-01-29T07:34:05+00:00" + "time": "2025-10-28T10:19:01+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.1.9", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "0f4099f5306a92487d13b2a4589068c36a93c447" + "reference": "0ff2f5c3df08a395232bbc3c2eb7e84912df911d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0f4099f5306a92487d13b2a4589068c36a93c447", - "reference": "0f4099f5306a92487d13b2a4589068c36a93c447", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0ff2f5c3df08a395232bbc3c2eb7e84912df911d", + "reference": "0ff2f5c3df08a395232bbc3c2eb7e84912df911d", "shasum": "" }, "require": { @@ -4012,7 +4073,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.1.9" + "source": "https://github.com/symfony/options-resolver/tree/v7.3.3" }, "funding": [ { @@ -4023,12 +4084,16 @@ "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": "2024-11-20T11:08:58+00:00" + "time": "2025-08-05T10:16:07+00:00" }, { "name": "symfony/polyfill-intl-grapheme", @@ -4364,16 +4429,16 @@ }, { "name": "symfony/psr-http-message-bridge", - "version": "v7.1.6", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "f16471bb19f6685b9ccf0a2c03c213840ae68cd6" + "reference": "03f2f72319e7acaf2a9f6fcbe30ef17eec51594f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/f16471bb19f6685b9ccf0a2c03c213840ae68cd6", - "reference": "f16471bb19f6685b9ccf0a2c03c213840ae68cd6", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/03f2f72319e7acaf2a9f6fcbe30ef17eec51594f", + "reference": "03f2f72319e7acaf2a9f6fcbe30ef17eec51594f", "shasum": "" }, "require": { @@ -4427,7 +4492,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.1.6" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.3.0" }, "funding": [ { @@ -4443,20 +4508,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-26T08:57:56+00:00" }, { "name": "symfony/routing", - "version": "v7.1.11", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "07f6463a8ff4377944222b69b126bd5495e9d44e" + "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/07f6463a8ff4377944222b69b126bd5495e9d44e", - "reference": "07f6463a8ff4377944222b69b126bd5495e9d44e", + "url": "https://api.github.com/repos/symfony/routing/zipball/8dc648e159e9bac02b703b9fbd937f19ba13d07c", + "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c", "shasum": "" }, "require": { @@ -4508,7 +4573,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.1.11" + "source": "https://github.com/symfony/routing/tree/v7.3.4" }, "funding": [ { @@ -4519,25 +4584,29 @@ "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": "2025-01-17T10:33:21+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/runtime", - "version": "v7.1.7", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "9889783c17e8a68fa5e88c8e8a1a85e802558dba" + "reference": "3550e2711e30bfa5d808514781cd52d1cc1d9e9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/9889783c17e8a68fa5e88c8e8a1a85e802558dba", - "reference": "9889783c17e8a68fa5e88c8e8a1a85e802558dba", + "url": "https://api.github.com/repos/symfony/runtime/zipball/3550e2711e30bfa5d808514781cd52d1cc1d9e9f", + "reference": "3550e2711e30bfa5d808514781cd52d1cc1d9e9f", "shasum": "" }, "require": { @@ -4587,7 +4656,7 @@ "runtime" ], "support": { - "source": "https://github.com/symfony/runtime/tree/v7.1.7" + "source": "https://github.com/symfony/runtime/tree/v7.3.4" }, "funding": [ { @@ -4598,12 +4667,16 @@ "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": "2024-11-05T16:45:54+00:00" + "time": "2025-09-11T15:31:28+00:00" }, { "name": "symfony/service-contracts", @@ -4690,16 +4763,16 @@ }, { "name": "symfony/string", - "version": "v7.1.8", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "591ebd41565f356fcd8b090fe64dbb5878f50281" + "reference": "f96476035142921000338bad71e5247fbc138872" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/591ebd41565f356fcd8b090fe64dbb5878f50281", - "reference": "591ebd41565f356fcd8b090fe64dbb5878f50281", + "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", + "reference": "f96476035142921000338bad71e5247fbc138872", "shasum": "" }, "require": { @@ -4714,7 +4787,6 @@ }, "require-dev": { "symfony/emoji": "^7.1", - "symfony/error-handler": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", @@ -4757,7 +4829,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.8" + "source": "https://github.com/symfony/string/tree/v7.3.4" }, "funding": [ { @@ -4768,41 +4840,45 @@ "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": "2024-11-13T13:31:21+00:00" + "time": "2025-09-11T14:36:48+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.11", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "a563c5aeacb98cd46f9885a63cf241ea7794b307" + "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a563c5aeacb98cd46f9885a63cf241ea7794b307", - "reference": "a563c5aeacb98cd46f9885a63cf241ea7794b307", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/476c4ae17f43a9a36650c69879dcf5b1e6ae724d", + "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { "symfony/console": "<6.4" }, "require-dev": { - "ext-iconv": "*", "symfony/console": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", "symfony/process": "^6.4|^7.0", "symfony/uid": "^6.4|^7.0", - "twig/twig": "^3.0.4" + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -4840,7 +4916,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.11" + "source": "https://github.com/symfony/var-dumper/tree/v7.3.5" }, "funding": [ { @@ -4851,29 +4927,34 @@ "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": "2025-01-17T11:38:41+00:00" + "time": "2025-09-27T09:00:46+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.1.6", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "90173ef89c40e7c8c616653241048705f84130ef" + "reference": "0f020b544a30a7fe8ba972e53ee48a74c0bc87f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/90173ef89c40e7c8c616653241048705f84130ef", - "reference": "90173ef89c40e7c8c616653241048705f84130ef", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f020b544a30a7fe8ba972e53ee48a74c0bc87f4", + "reference": "0f020b544a30a7fe8ba972e53ee48a74c0bc87f4", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3" }, "require-dev": { "symfony/property-access": "^6.4|^7.0", @@ -4916,7 +4997,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.1.6" + "source": "https://github.com/symfony/var-exporter/tree/v7.3.4" }, "funding": [ { @@ -4927,12 +5008,16 @@ "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": "2024-09-25T14:20:29+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/webpack-encore-bundle", @@ -5012,20 +5097,21 @@ }, { "name": "symfony/yaml", - "version": "v7.1.11", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "4921b8c1db90c13ba2ee0520080ef6800912b018" + "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/4921b8c1db90c13ba2ee0520080ef6800912b018", - "reference": "4921b8c1db90c13ba2ee0520080ef6800912b018", + "url": "https://api.github.com/repos/symfony/yaml/zipball/90208e2fc6f68f613eae7ca25a2458a931b1bacc", + "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -5063,7 +5149,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.1.11" + "source": "https://github.com/symfony/yaml/tree/v7.3.5" }, "funding": [ { @@ -5074,12 +5160,16 @@ "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": "2025-01-07T12:50:05+00:00" + "time": "2025-09-27T09:00:46+00:00" } ], "packages-dev": [ @@ -5573,57 +5663,57 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.66.0", + "version": "v3.89.1", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "5f5f2a142ff36b93c41885bca29cc5f861c013e6" + "reference": "f34967da2866ace090a2b447de1f357356474573" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/5f5f2a142ff36b93c41885bca29cc5f861c013e6", - "reference": "5f5f2a142ff36b93c41885bca29cc5f861c013e6", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/f34967da2866ace090a2b447de1f357356474573", + "reference": "f34967da2866ace090a2b447de1f357356474573", "shasum": "" }, "require": { - "clue/ndjson-react": "^1.0", + "clue/ndjson-react": "^1.3", "composer/semver": "^3.4", - "composer/xdebug-handler": "^3.0.3", + "composer/xdebug-handler": "^3.0.5", "ext-filter": "*", + "ext-hash": "*", "ext-json": "*", "ext-tokenizer": "*", - "fidry/cpu-core-counter": "^1.2", + "fidry/cpu-core-counter": "^1.3", "php": "^7.4 || ^8.0", - "react/child-process": "^0.6.5", - "react/event-loop": "^1.0", - "react/promise": "^2.0 || ^3.0", - "react/socket": "^1.0", - "react/stream": "^1.0", - "sebastian/diff": "^4.0 || ^5.0 || ^6.0", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", - "symfony/finder": "^5.4 || ^6.0 || ^7.0", - "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0", - "symfony/polyfill-mbstring": "^1.28", - "symfony/polyfill-php80": "^1.28", - "symfony/polyfill-php81": "^1.28", - "symfony/process": "^5.4 || ^6.0 || ^7.0 <7.2", - "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" + "react/child-process": "^0.6.6", + "react/event-loop": "^1.5", + "react/socket": "^1.16", + "react/stream": "^1.4", + "sebastian/diff": "^4.0.6 || ^5.1.1 || ^6.0.2 || ^7.0", + "symfony/console": "^5.4.47 || ^6.4.24 || ^7.0", + "symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/polyfill-mbstring": "^1.33", + "symfony/polyfill-php80": "^1.33", + "symfony/polyfill-php81": "^1.33", + "symfony/polyfill-php84": "^1.33", + "symfony/process": "^5.4.47 || ^6.4.24 || ^7.2", + "symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0" }, "require-dev": { - "facile-it/paraunit": "^1.3.1 || ^2.4", - "infection/infection": "^0.29.8", - "justinrainbow/json-schema": "^5.3 || ^6.0", - "keradus/cli-executor": "^2.1", + "facile-it/paraunit": "^1.3.1 || ^2.7", + "infection/infection": "^0.31.0", + "justinrainbow/json-schema": "^6.5", + "keradus/cli-executor": "^2.2", "mikey179/vfsstream": "^1.6.12", - "php-coveralls/php-coveralls": "^2.7", - "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5", - "phpunit/phpunit": "^9.6.21 || ^10.5.38 || ^11.4.3", - "symfony/var-dumper": "^5.4.47 || ^6.4.15 || ^7.1.8", - "symfony/yaml": "^5.4.45 || ^6.4.13 || ^7.1.6" + "php-coveralls/php-coveralls": "^2.8", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", + "phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34", + "symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2", + "symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -5664,7 +5754,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.66.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.89.1" }, "funding": [ { @@ -5672,20 +5762,20 @@ "type": "github" } ], - "time": "2024-12-29T13:46:23+00:00" + "time": "2025-10-24T12:05:10+00:00" }, { "name": "jangregor/phpstan-prophecy", - "version": "1.0.2", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/Jan0707/phpstan-prophecy.git", - "reference": "5ee56c7db1d58f0578c82a35e3c1befe840e85a9" + "reference": "2bc7ca9460395690c6bf7332bdfb2f25d5cae8e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jan0707/phpstan-prophecy/zipball/5ee56c7db1d58f0578c82a35e3c1befe840e85a9", - "reference": "5ee56c7db1d58f0578c82a35e3c1befe840e85a9", + "url": "https://api.github.com/repos/Jan0707/phpstan-prophecy/zipball/2bc7ca9460395690c6bf7332bdfb2f25d5cae8e0", + "reference": "2bc7ca9460395690c6bf7332bdfb2f25d5cae8e0", "shasum": "" }, "require": { @@ -5693,8 +5783,8 @@ "phpstan/phpstan": "^1.0.0" }, "conflict": { - "phpspec/prophecy": "<1.7.0 || >=2.0.0", - "phpunit/phpunit": "<6.0.0 || >=12.0.0" + "phpspec/prophecy": "<1.7.0,>=2.0.0", + "phpunit/phpunit": "<6.0.0,>=10.0.0" }, "require-dev": { "ergebnis/composer-normalize": "^2.1.1", @@ -5729,9 +5819,15 @@ "description": "Provides a phpstan/phpstan extension for phpspec/prophecy", "support": { "issues": "https://github.com/Jan0707/phpstan-prophecy/issues", - "source": "https://github.com/Jan0707/phpstan-prophecy/tree/1.0.2" + "source": "https://github.com/Jan0707/phpstan-prophecy/tree/1.0.0" }, - "time": "2024-04-03T08:15:54+00:00" + "funding": [ + { + "url": "https://github.com/localheinz", + "type": "github" + } + ], + "time": "2021-11-08T16:37:47+00:00" }, { "name": "masterminds/html5", @@ -5965,16 +6061,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.6.1", + "version": "v5.6.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2" + "reference": "3a454ca033b9e06b63282ce19562e892747449bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2", - "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", + "reference": "3a454ca033b9e06b63282ce19562e892747449bb", "shasum": "" }, "require": { @@ -6017,9 +6113,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2" }, - "time": "2025-08-13T20:13:15+00:00" + "time": "2025-10-21T19:32:17+00:00" }, { "name": "phar-io/manifest", @@ -6316,16 +6412,16 @@ }, { "name": "phpspec/prophecy", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "8cce4df9a20660cdc671e8f45ac61959ecdde8e8" + "reference": "9500f939e4b22c40c3d5cca5f10837f2a9c87cb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8cce4df9a20660cdc671e8f45ac61959ecdde8e8", - "reference": "8cce4df9a20660cdc671e8f45ac61959ecdde8e8", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/9500f939e4b22c40c3d5cca5f10837f2a9c87cb0", + "reference": "9500f939e4b22c40c3d5cca5f10837f2a9c87cb0", "shasum": "" }, "require": { @@ -6381,9 +6477,9 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.23.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.23.1" }, - "time": "2025-10-08T08:50:26+00:00" + "time": "2025-10-27T22:44:31+00:00" }, { "name": "phpspec/prophecy-phpunit", @@ -6714,35 +6810,34 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.32", + "version": "12.4.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" + "reference": "67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c", + "reference": "67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-text-template": "^2.0.4", - "sebastian/code-unit-reverse-lookup": "^2.0.3", - "sebastian/complexity": "^2.0.3", - "sebastian/environment": "^5.1.5", - "sebastian/lines-of-code": "^1.0.4", - "sebastian/version": "^3.0.2", + "nikic/php-parser": "^5.6.1", + "php": ">=8.3", + "phpunit/php-file-iterator": "^6.0", + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.0.3", + "sebastian/lines-of-code": "^4.0", + "sebastian/version": "^6.0", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^12.3.7" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -6751,7 +6846,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "9.2.x-dev" + "dev-main": "12.4.x-dev" } }, "autoload": { @@ -6780,40 +6875,52 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.4.0" }, "funding": [ { "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://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" } ], - "time": "2024-08-22T04:23:01+00:00" + "time": "2025-09-24T13:44:41+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "961bc913d42fe24a257bfff826a5068079ac7782" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/961bc913d42fe24a257bfff826a5068079ac7782", + "reference": "961bc913d42fe24a257bfff826a5068079ac7782", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -6840,7 +6947,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.0" }, "funding": [ { @@ -6848,28 +6956,28 @@ "type": "github" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2025-02-07T04:58:37+00:00" }, { "name": "phpunit/php-invoker", - "version": "3.1.1", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-pcntl": "*" @@ -6877,7 +6985,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -6903,7 +7011,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" }, "funding": [ { @@ -6911,32 +7020,32 @@ "type": "github" } ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2025-02-07T04:58:58+00:00" }, { "name": "phpunit/php-text-template", - "version": "2.0.4", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -6962,7 +7071,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" }, "funding": [ { @@ -6970,32 +7080,32 @@ "type": "github" } ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2025-02-07T04:59:16+00:00" }, { "name": "phpunit/php-timer", - "version": "5.0.3", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -7021,7 +7131,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" }, "funding": [ { @@ -7029,24 +7140,23 @@ "type": "github" } ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2025-02-07T04:59:38+00:00" }, { "name": "phpunit/phpunit", - "version": "9.6.29", + "version": "12.4.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3" + "reference": "a94ea4d26d865875803b23aaf78c3c2c670ea2ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9ecfec57835a5581bc888ea7e13b51eb55ab9dd3", - "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a94ea4d26d865875803b23aaf78c3c2c670ea2ea", + "reference": "a94ea4d26d865875803b23aaf78c3c2c670ea2ea", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", @@ -7056,27 +7166,22 @@ "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.32", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.4", - "phpunit/php-timer": "^5.0.3", - "sebastian/cli-parser": "^1.0.2", - "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.9", - "sebastian/diff": "^4.0.6", - "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.8", - "sebastian/global-state": "^5.0.8", - "sebastian/object-enumerator": "^4.0.4", - "sebastian/resource-operations": "^3.0.4", - "sebastian/type": "^3.2.1", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "php": ">=8.3", + "phpunit/php-code-coverage": "^12.4.0", + "phpunit/php-file-iterator": "^6.0.0", + "phpunit/php-invoker": "^6.0.0", + "phpunit/php-text-template": "^5.0.0", + "phpunit/php-timer": "^8.0.0", + "sebastian/cli-parser": "^4.2.0", + "sebastian/comparator": "^7.1.3", + "sebastian/diff": "^7.0.0", + "sebastian/environment": "^8.0.3", + "sebastian/exporter": "^7.0.2", + "sebastian/global-state": "^8.0.2", + "sebastian/object-enumerator": "^7.0.0", + "sebastian/type": "^6.0.3", + "sebastian/version": "^6.0.0", + "staabm/side-effects-detector": "^1.0.5" }, "bin": [ "phpunit" @@ -7084,7 +7189,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.6-dev" + "dev-main": "12.4-dev" } }, "autoload": { @@ -7116,7 +7221,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.29" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.4.2" }, "funding": [ { @@ -7140,7 +7245,7 @@ "type": "tidelift" } ], - "time": "2025-09-24T06:29:11+00:00" + "time": "2025-10-30T08:41:39+00:00" }, { "name": "react/cache", @@ -7674,18 +7779,18 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "f34f054015aff54acc108a8517308dc67b572841" + "reference": "d2e1583e5f89f53f7882861c1639c14c9a154585" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/f34f054015aff54acc108a8517308dc67b572841", - "reference": "f34f054015aff54acc108a8517308dc67b572841", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d2e1583e5f89f53f7882861c1639c14c9a154585", + "reference": "d2e1583e5f89f53f7882861c1639c14c9a154585", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", "adaptcms/adaptcms": "<=1.3", - "admidio/admidio": "<4.3.12", + "admidio/admidio": "<=4.3.16", "adodb/adodb-php": "<=5.22.9", "aheinze/cockpit": "<2.2", "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.07.2", @@ -7737,7 +7842,7 @@ "backpack/filemanager": "<2.0.2|>=3,<3.0.9", "bacula-web/bacula-web": "<9.7.1", "badaso/core": "<=2.9.11", - "bagisto/bagisto": "<2.1|==2.3.6", + "bagisto/bagisto": "<=2.3.7", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", "barryvdh/laravel-translation-manager": "<0.6.8", @@ -7788,6 +7893,7 @@ "clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3", "co-stack/fal_sftp": "<0.2.6", "cockpit-hq/cockpit": "<2.11.4", + "code16/sharp": "<9.11.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<3.1.10", "codeigniter4/framework": "<4.6.2", @@ -7846,30 +7952,39 @@ "dompdf/dompdf": "<2.0.4", "doublethreedigital/guest-entries": "<3.1.2", "drupal-pattern-lab/unified-twig-extensions": "<=0.1", + "drupal/access_code": "<2.0.5", + "drupal/acquia_dam": "<1.1.5", "drupal/admin_audit_trail": "<1.0.5", "drupal/ai": "<1.0.5", "drupal/alogin": "<2.0.6", "drupal/cache_utility": "<1.2.1", + "drupal/civictheme": "<1.12", "drupal/commerce_alphabank_redirect": "<1.0.3", "drupal/commerce_eurobank_redirect": "<2.1.1", "drupal/config_split": "<1.10|>=2,<2.0.2", "drupal/core": ">=6,<6.38|>=7,<7.102|>=8,<10.3.14|>=10.4,<10.4.5|>=11,<11.0.13|>=11.1,<11.1.5", "drupal/core-recommended": ">=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8", + "drupal/currency": "<3.5", "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8", "drupal/formatter_suite": "<2.1", "drupal/gdpr": "<3.0.1|>=3.1,<3.1.2", "drupal/google_tag": "<1.8|>=2,<2.0.8", "drupal/ignition": "<1.0.4", + "drupal/json_field": "<1.5", "drupal/lightgallery": "<1.6", "drupal/link_field_display_mode_formatter": "<1.6", "drupal/matomo": "<1.24", "drupal/oauth2_client": "<4.1.3", "drupal/oauth2_server": "<2.1", "drupal/obfuscate": "<2.0.1", + "drupal/plausible_tracking": "<1.0.2", "drupal/quick_node_block": "<2", "drupal/rapidoc_elements_field_formatter": "<1.0.1", + "drupal/reverse_proxy_header": "<1.1.2", + "drupal/simple_oauth": ">=6,<6.0.7", "drupal/spamspan": "<3.2.1", "drupal/tfa": "<1.10", + "drupal/umami_analytics": "<1.0.1", "duncanmcclean/guest-entries": "<3.1.2", "dweeves/magmi": "<=0.7.24", "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2", @@ -7894,7 +8009,7 @@ "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.38|>=3.3,<3.3.39", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.39|>=3.3,<3.3.39", "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1|>=5.3.0.0-beta1,<5.3.5", "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", "ezsystems/ezplatform-http-cache": "<2.3.16", @@ -7988,15 +8103,15 @@ "hov/jobfair": "<1.0.13|>=2,<2.0.2", "httpsoft/http-message": "<1.0.12", "hyn/multi-tenant": ">=5.6,<5.7.2", - "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6,<4.6.21", + "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6,<4.6.25|>=5,<5.0.3", "ibexa/admin-ui-assets": ">=4.6.0.0-alpha1,<4.6.21", "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2", - "ibexa/fieldtype-richtext": ">=4.6,<4.6.21", + "ibexa/fieldtype-richtext": ">=4.6,<4.6.25|>=5,<5.0.3", "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", "ibexa/http-cache": ">=4.6,<4.6.14", "ibexa/post-install": "<1.0.16|>=4.6,<4.6.14", "ibexa/solr": ">=4.5,<4.5.4", - "ibexa/user": ">=4,<4.4.3", + "ibexa/user": ">=4,<4.4.3|>=5,<5.0.3", "icecoder/icecoder": "<=8.1", "idno/known": "<=1.3.1", "ilicmiljan/secure-props": ">=1.2,<1.2.2", @@ -8093,7 +8208,7 @@ "luyadev/yii-helpers": "<1.2.1", "macropay-solutions/laravel-crud-wizard-free": "<3.4.17", "maestroerror/php-heic-to-jpg": "<1.0.5", - "magento/community-edition": "<=2.4.5.0-patch14|==2.4.6|>=2.4.6.0-patch1,<=2.4.6.0-patch12|>=2.4.7.0-beta1,<=2.4.7.0-patch7|>=2.4.8.0-beta1,<=2.4.8.0-patch2|>=2.4.9.0-alpha1,<=2.4.9.0-alpha2|==2.4.9", + "magento/community-edition": "<2.4.6.0-patch13|>=2.4.7.0-beta1,<2.4.7.0-patch8|>=2.4.8.0-beta1,<2.4.8.0-patch3|>=2.4.9.0-alpha1,<2.4.9.0-alpha3|==2.4.9", "magento/core": "<=1.9.4.5", "magento/magento1ce": "<1.9.4.3-dev", "magento/magento1ee": ">=1,<1.14.4.3-dev", @@ -8114,7 +8229,7 @@ "maximebf/debugbar": "<1.19", "mdanter/ecc": "<2", "mediawiki/abuse-filter": "<1.39.9|>=1.40,<1.41.3|>=1.42,<1.42.2", - "mediawiki/cargo": "<3.6.1", + "mediawiki/cargo": "<3.8.3", "mediawiki/core": "<1.39.5|==1.40", "mediawiki/data-transfer": ">=1.39,<1.39.11|>=1.41,<1.41.3|>=1.42,<1.42.2", "mediawiki/matomo": "<2.4.3", @@ -8139,7 +8254,7 @@ "mojo42/jirafeau": "<4.4", "mongodb/mongodb": ">=1,<1.9.2", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<4.3.12|>=4.4,<4.4.8|>=4.5.0.0-beta,<4.5.4", + "moodle/moodle": "<4.4.11|>=4.5.0.0-beta,<4.5.7|>=5.0.0.0-beta,<5.0.3", "moonshine/moonshine": "<=3.12.5", "mos/cimage": "<0.7.19", "movim/moxl": ">=0.8,<=0.10", @@ -8268,12 +8383,13 @@ "prestashop/gamification": "<2.3.2", "prestashop/prestashop": "<8.2.3", "prestashop/productcomments": "<5.0.2", + "prestashop/ps_checkout": "<4.4.1|>=5,<5.0.5", "prestashop/ps_contactinfo": "<=3.3.2", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.4|>=1.5,<1.7.4", - "processwire/processwire": "<=3.0.229", + "privatebin/privatebin": "<1.4|>=1.5,<1.7.4|>=1.7.7,<2.0.2", + "processwire/processwire": "<=3.0.246", "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", "propel/propel1": ">=1,<=1.7.1", "pterodactyl/panel": "<=1.11.10", @@ -8316,8 +8432,8 @@ "setasign/fpdi": "<2.6.4", "sfroemken/url_redirect": "<=1.2.1", "sheng/yiicms": "<1.2.1", - "shopware/core": "<6.5.8.18-dev|>=6.6,<6.6.10.3-dev|>=6.7,<6.7.2.1-dev", - "shopware/platform": "<=6.6.10.4|>=6.7.0.0-RC1-dev,<6.7.0.0-RC2-dev", + "shopware/core": "<6.6.10.7-dev|>=6.7,<6.7.3.1-dev", + "shopware/platform": "<6.6.10.7-dev|>=6.7,<6.7.3.1-dev", "shopware/production": "<=6.3.5.2", "shopware/shopware": "<=5.7.17|>=6.7,<6.7.2.1-dev", "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev", @@ -8370,15 +8486,16 @@ "spatie/image-optimizer": "<1.7.3", "spencer14420/sp-php-email-handler": "<1", "spipu/html2pdf": "<5.2.8", + "spiral/roadrunner": "<2025.1", "spoon/library": "<1.4.1", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", "ssddanbrown/bookstack": "<24.05.1", - "starcitizentools/citizen-skin": ">=1.9.4,<3.4", + "starcitizentools/citizen-skin": ">=1.9.4,<3.9", "starcitizentools/short-description": ">=4,<4.0.1", "starcitizentools/tabber-neue": ">=1.9.1,<2.7.2|>=3,<3.1.1", "starcitizenwiki/embedvideo": "<=4", - "statamic/cms": "<=5.16", + "statamic/cms": "<=5.22", "stormpath/sdk": "<9.9.99", "studio-42/elfinder": "<=2.1.64", "studiomitte/friendlycaptcha": "<0.1.4", @@ -8645,32 +8762,32 @@ "type": "tidelift" } ], - "time": "2025-10-14T18:07:42+00:00" + "time": "2025-10-30T18:07:16+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.2", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" + "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04", + "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -8693,153 +8810,60 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - } - ], - "time": "2024-03-02T06:27:43+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ + }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2025-09-14T09:36:45+00:00" }, { "name": "sebastian/comparator", - "version": "4.0.9", + "version": "7.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5" + "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/67a2df3a62639eab2cc5906065e9805d4fd5dfc5", - "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dc904b4bb3ab070865fa4068cd84f3da8b945148", + "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.2" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "7.1-dev" } }, "autoload": { @@ -8878,7 +8902,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.9" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.3" }, "funding": [ { @@ -8898,33 +8923,33 @@ "type": "tidelift" } ], - "time": "2025-08-10T06:51:50+00:00" + "time": "2025-08-20T11:27:00+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.3", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -8947,7 +8972,8 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" }, "funding": [ { @@ -8955,33 +8981,33 @@ "type": "github" } ], - "time": "2023-12-22T06:19:30+00:00" + "time": "2025-02-07T04:55:25+00:00" }, { "name": "sebastian/diff", - "version": "4.0.6", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" + "reference": "7ab1ea946c012266ca32390913653d844ecd085f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", + "reference": "7ab1ea946c012266ca32390913653d844ecd085f", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^12.0", + "symfony/process": "^7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -9013,7 +9039,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" }, "funding": [ { @@ -9021,27 +9048,27 @@ "type": "github" } ], - "time": "2024-03-02T06:30:58+00:00" + "time": "2025-02-07T04:55:46+00:00" }, { "name": "sebastian/environment", - "version": "5.1.5", + "version": "8.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68", + "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-posix": "*" @@ -9049,7 +9076,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.1-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -9068,7 +9095,7 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", @@ -9076,42 +9103,55 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3" }, "funding": [ { "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://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" } ], - "time": "2023-02-03T06:03:51+00:00" + "time": "2025-08-12T14:11:56+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.8", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" + "reference": "016951ae10980765e4e7aee491eb288c64e505b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", - "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7", + "reference": "016951ae10980765e4e7aee491eb288c64e505b7", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "ext-mbstring": "*", + "php": ">=8.3", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -9153,7 +9193,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.2" }, "funding": [ { @@ -9173,38 +9214,35 @@ "type": "tidelift" } ], - "time": "2025-09-24T06:03:27+00:00" + "time": "2025-09-24T06:16:11+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.8", + "version": "8.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" + "reference": "ef1377171613d09edd25b7816f05be8313f9115d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", - "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d", + "reference": "ef1377171613d09edd25b7816f05be8313f9115d", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -9223,13 +9261,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2" }, "funding": [ { @@ -9249,33 +9288,33 @@ "type": "tidelift" } ], - "time": "2025-08-10T07:10:35+00:00" + "time": "2025-08-29T11:29:25+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.4", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f", + "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -9298,7 +9337,8 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.0" }, "funding": [ { @@ -9306,34 +9346,34 @@ "type": "github" } ], - "time": "2023-12-22T06:20:34+00:00" + "time": "2025-02-07T04:57:28+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.4", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -9355,7 +9395,8 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" }, "funding": [ { @@ -9363,32 +9404,32 @@ "type": "github" } ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2025-02-07T04:57:48+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.4", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "reference": "4bfa827c969c98be1e527abd576533293c634f6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9410,7 +9451,8 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" }, "funding": [ { @@ -9418,32 +9460,32 @@ "type": "github" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2025-02-07T04:58:17+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.6", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", - "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -9473,7 +9515,8 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" }, "funding": [ { @@ -9493,32 +9536,32 @@ "type": "tidelift" } ], - "time": "2025-08-10T06:57:39+00:00" + "time": "2025-08-13T04:44:59+00:00" }, { - "name": "sebastian/resource-operations", - "version": "3.0.4", + "name": "sebastian/type", + "version": "6.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d", + "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9533,46 +9576,58 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", "support": { - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" + "issues": "https://github.com/sebastianbergmann/type/issues", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/6.0.3" }, "funding": [ { "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://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" } ], - "time": "2024-03-14T16:00:52+00:00" + "time": "2025-08-09T06:57:12+00:00" }, { - "name": "sebastian/type", - "version": "3.2.1", + "name": "sebastian/version", + "version": "6.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" + "php": ">=8.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9591,11 +9646,12 @@ "role": "lead" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "issues": "https://github.com/sebastianbergmann/version/issues", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" }, "funding": [ { @@ -9603,73 +9659,72 @@ "type": "github" } ], - "time": "2023-02-03T06:13:03+00:00" + "time": "2025-02-07T05:00:38+00:00" }, { - "name": "sebastian/version", - "version": "3.0.2", + "name": "staabm/side-effects-detector", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" }, + "type": "library", "autoload": { "classmap": [ - "src/" + "lib/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/staabm", "type": "github" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2024-10-20T05:08:20+00:00" }, { "name": "symfony/browser-kit", - "version": "v7.1.6", + "version": "v7.3.2", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "714becc9ba9b20115ffededc58f6b7172dc394cf" + "reference": "f0b889b73a845cddef1d25fe207b37fd04cb5419" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/714becc9ba9b20115ffededc58f6b7172dc394cf", - "reference": "714becc9ba9b20115ffededc58f6b7172dc394cf", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/f0b889b73a845cddef1d25fe207b37fd04cb5419", + "reference": "f0b889b73a845cddef1d25fe207b37fd04cb5419", "shasum": "" }, "require": { @@ -9708,7 +9763,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.1.6" + "source": "https://github.com/symfony/browser-kit/tree/v7.3.2" }, "funding": [ { @@ -9719,41 +9774,42 @@ "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": "2024-10-25T15:11:02+00:00" + "time": "2025-07-10T08:47:49+00:00" }, { "name": "symfony/debug-bundle", - "version": "v7.1.6", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/debug-bundle.git", - "reference": "c91a650aa390071d22dfaf32c2ff77fda27e9583" + "reference": "0aee008fb501677fa5b62ea5f65cabcf041629ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/c91a650aa390071d22dfaf32c2ff77fda27e9583", - "reference": "c91a650aa390071d22dfaf32c2ff77fda27e9583", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/0aee008fb501677fa5b62ea5f65cabcf041629ef", + "reference": "0aee008fb501677fa5b62ea5f65cabcf041629ef", "shasum": "" }, "require": { + "composer-runtime-api": ">=2.1", "ext-xml": "*", "php": ">=8.2", + "symfony/config": "^7.3", "symfony/dependency-injection": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", "symfony/twig-bridge": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0" }, - "conflict": { - "symfony/config": "<6.4", - "symfony/dependency-injection": "<6.4" - }, "require-dev": { - "symfony/config": "^6.4|^7.0", "symfony/web-profiler-bundle": "^6.4|^7.0" }, "type": "symfony-bundle", @@ -9782,7 +9838,7 @@ "description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/debug-bundle/tree/v7.1.6" + "source": "https://github.com/symfony/debug-bundle/tree/v7.3.5" }, "funding": [ { @@ -9793,25 +9849,29 @@ "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": "2024-09-25T14:20:29+00:00" + "time": "2025-10-13T11:49:56+00:00" }, { "name": "symfony/dom-crawler", - "version": "v7.1.11", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a" + "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a", - "reference": "7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/efa076ea0eeff504383ff0dcf827ea5ce15690ba", + "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba", "shasum": "" }, "require": { @@ -9849,7 +9909,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.1.11" + "source": "https://github.com/symfony/dom-crawler/tree/v7.3.3" }, "funding": [ { @@ -9860,25 +9920,29 @@ "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": "2025-01-27T10:57:12+00:00" + "time": "2025-08-06T20:13:54+00:00" }, { "name": "symfony/dotenv", - "version": "v7.1.9", + "version": "v7.3.2", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "245d1afe223664d2276afb75177d8988c328fb78" + "reference": "2192790a11f9e22cbcf9dc705a3ff22a5503923a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/245d1afe223664d2276afb75177d8988c328fb78", - "reference": "245d1afe223664d2276afb75177d8988c328fb78", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/2192790a11f9e22cbcf9dc705a3ff22a5503923a", + "reference": "2192790a11f9e22cbcf9dc705a3ff22a5503923a", "shasum": "" }, "require": { @@ -9923,7 +9987,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v7.1.9" + "source": "https://github.com/symfony/dotenv/tree/v7.3.2" }, "funding": [ { @@ -9934,25 +9998,29 @@ "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": "2024-11-27T11:17:28+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v7.1.6", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "e1da878cf5f701df5f5c1799bdbf827acee5a76e" + "reference": "c66a65049c75f3ddf03d73c8c9ed61405779ce47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/e1da878cf5f701df5f5c1799bdbf827acee5a76e", - "reference": "e1da878cf5f701df5f5c1799bdbf827acee5a76e", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/c66a65049c75f3ddf03d73c8c9ed61405779ce47", + "reference": "c66a65049c75f3ddf03d73c8c9ed61405779ce47", "shasum": "" }, "require": { @@ -10001,7 +10069,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v7.1.6" + "source": "https://github.com/symfony/monolog-bridge/tree/v7.3.5" }, "funding": [ { @@ -10012,12 +10080,16 @@ "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": "2024-10-14T08:49:35+00:00" + "time": "2025-10-14T19:16:15+00:00" }, { "name": "symfony/monolog-bundle", @@ -10189,18 +10261,98 @@ ], "time": "2025-09-12T12:18:52+00:00" }, + { + "name": "symfony/polyfill-php84", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", + "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\\Php84\\": "" + }, + "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.4+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.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": "2025-06-24T13:30:11+00:00" + }, { "name": "symfony/process", - "version": "v7.1.8", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892" + "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/42783370fda6e538771f7c7a36e9fa2ee3a84892", - "reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892", + "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", + "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", "shasum": "" }, "require": { @@ -10232,7 +10384,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.1.8" + "source": "https://github.com/symfony/process/tree/v7.3.4" }, "funding": [ { @@ -10243,25 +10395,29 @@ "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": "2024-11-06T14:23:19+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.1.6", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "8b4a434e6e7faf6adedffb48783a5c75409a1a05" + "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/8b4a434e6e7faf6adedffb48783a5c75409a1a05", - "reference": "8b4a434e6e7faf6adedffb48783a5c75409a1a05", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", + "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", "shasum": "" }, "require": { @@ -10294,7 +10450,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.1.6" + "source": "https://github.com/symfony/stopwatch/tree/v7.3.0" }, "funding": [ { @@ -10310,7 +10466,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2025-02-24T10:49:57+00:00" }, { "name": "symfony/translation-contracts", @@ -10392,22 +10548,23 @@ }, { "name": "symfony/twig-bridge", - "version": "v7.1.10", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "c027c54611cd194273b924c8d24d9706695171ff" + "reference": "33558f013b7f6ed72805527c8405cae0062e47c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/c027c54611cd194273b924c8d24d9706695171ff", - "reference": "c027c54611cd194273b924c8d24d9706695171ff", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/33558f013b7f6ed72805527c8405cae0062e47c5", + "reference": "33558f013b7f6ed72805527c8405cae0062e47c5", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/translation-contracts": "^2.5|^3", - "twig/twig": "^3.9" + "twig/twig": "^3.21" }, "conflict": { "phpdocumentor/reflection-docblock": "<3.2.2", @@ -10432,9 +10589,9 @@ "symfony/emoji": "^7.1", "symfony/expression-language": "^6.4|^7.0", "symfony/finder": "^6.4|^7.0", - "symfony/form": "^6.4|^7.0", + "symfony/form": "^6.4.20|^7.2.5", "symfony/html-sanitizer": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-foundation": "^7.3", "symfony/http-kernel": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", "symfony/mime": "^6.4|^7.0", @@ -10448,12 +10605,13 @@ "symfony/serializer": "^6.4.3|^7.0.3", "symfony/stopwatch": "^6.4|^7.0", "symfony/translation": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", "symfony/web-link": "^6.4|^7.0", "symfony/workflow": "^6.4|^7.0", "symfony/yaml": "^6.4|^7.0", - "twig/cssinliner-extra": "^2.12|^3", - "twig/inky-extra": "^2.12|^3", - "twig/markdown-extra": "^2.12|^3" + "twig/cssinliner-extra": "^3", + "twig/inky-extra": "^3", + "twig/markdown-extra": "^3" }, "type": "symfony-bridge", "autoload": { @@ -10481,7 +10639,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v7.1.10" + "source": "https://github.com/symfony/twig-bridge/tree/v7.3.3" }, "funding": [ { @@ -10492,36 +10650,40 @@ "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": "2024-12-19T14:23:39+00:00" + "time": "2025-08-18T13:10:53+00:00" }, { "name": "symfony/twig-bundle", - "version": "v7.1.6", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "af902314a71fb412ae412094f7e1d7e49594507b" + "reference": "da5c778a8416fcce5318737c4d944f6fa2bb3f81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/af902314a71fb412ae412094f7e1d7e49594507b", - "reference": "af902314a71fb412ae412094f7e1d7e49594507b", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/da5c778a8416fcce5318737c4d944f6fa2bb3f81", + "reference": "da5c778a8416fcce5318737c4d944f6fa2bb3f81", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "php": ">=8.2", - "symfony/config": "^6.4|^7.0", + "symfony/config": "^7.3", "symfony/dependency-injection": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", - "symfony/twig-bridge": "^6.4|^7.0", - "twig/twig": "^3.0.4" + "symfony/twig-bridge": "^7.3", + "twig/twig": "^3.12" }, "conflict": { "symfony/framework-bundle": "<6.4", @@ -10565,7 +10727,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v7.1.6" + "source": "https://github.com/symfony/twig-bundle/tree/v7.3.4" }, "funding": [ { @@ -10576,40 +10738,48 @@ "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": "2024-09-25T14:20:29+00:00" + "time": "2025-09-10T12:00:31+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v7.1.11", + "version": "v7.3.5", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "328b2728bb5d85d0d38b18d1458834098202afe2" + "reference": "c2ed11cc0e9093fe0425ad52498d26a458842e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/328b2728bb5d85d0d38b18d1458834098202afe2", - "reference": "328b2728bb5d85d0d38b18d1458834098202afe2", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/c2ed11cc0e9093fe0425ad52498d26a458842e0c", + "reference": "c2ed11cc0e9093fe0425ad52498d26a458842e0c", "shasum": "" }, "require": { + "composer-runtime-api": ">=2.1", "php": ">=8.2", - "symfony/config": "^6.4|^7.0", + "symfony/config": "^7.3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/framework-bundle": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", "symfony/routing": "^6.4|^7.0", "symfony/twig-bundle": "^6.4|^7.0", - "twig/twig": "^3.10" + "twig/twig": "^3.12" }, "conflict": { "symfony/form": "<6.4", "symfony/mailer": "<6.4", - "symfony/messenger": "<6.4" + "symfony/messenger": "<6.4", + "symfony/serializer": "<7.2", + "symfony/workflow": "<7.3" }, "require-dev": { "symfony/browser-kit": "^6.4|^7.0", @@ -10646,7 +10816,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.1.11" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.3.5" }, "funding": [ { @@ -10657,12 +10827,16 @@ "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": "2025-01-07T09:23:14+00:00" + "time": "2025-10-06T13:36:11+00:00" }, { "name": "theseer/tokenizer", @@ -10716,16 +10890,16 @@ }, { "name": "twig/twig", - "version": "v3.21.1", + "version": "v3.22.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d" + "reference": "4509984193026de413baf4ba80f68590a7f2c51d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/285123877d4dd97dd7c11842ac5fb7e86e60d81d", - "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/4509984193026de413baf4ba80f68590a7f2c51d", + "reference": "4509984193026de413baf4ba80f68590a7f2c51d", "shasum": "" }, "require": { @@ -10779,7 +10953,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.21.1" + "source": "https://github.com/twigphp/Twig/tree/v3.22.0" }, "funding": [ { @@ -10791,32 +10965,32 @@ "type": "tidelift" } ], - "time": "2025-05-03T07:21:55+00:00" + "time": "2025-10-29T15:56:47+00:00" }, { "name": "webmozart/assert", - "version": "1.11.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", "shasum": "" }, "require": { "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", "php": "^7.2 || ^8.0" }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" }, "type": "library", "extra": { @@ -10847,13 +11021,13 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" + "source": "https://github.com/webmozarts/assert/tree/1.12.1" }, - "time": "2022-06-03T18:03:27+00:00" + "time": "2025-10-29T15:56:20+00:00" } ], "aliases": [], - "minimum-stability": "beta", + "minimum-stability": "stable", "stability-flags": { "roave/security-advisories": 20 }, diff --git a/phpunit.xml.dist b/phpunit.xml.dist index fceab052..22d3966c 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,11 +1,10 @@ - + @@ -13,7 +12,7 @@ - + @@ -44,18 +43,15 @@ - + - src + src - - - - - + - + + diff --git a/symfony.lock b/symfony.lock index 090db567..7aa38432 100644 --- a/symfony.lock +++ b/symfony.lock @@ -259,12 +259,6 @@ "sebastian/cli-parser": { "version": "1.0.1" }, - "sebastian/code-unit": { - "version": "1.0.8" - }, - "sebastian/code-unit-reverse-lookup": { - "version": "2.0.3" - }, "sebastian/comparator": { "version": "4.0.6" }, @@ -295,9 +289,6 @@ "sebastian/recursion-context": { "version": "4.0.4" }, - "sebastian/resource-operations": { - "version": "3.0.3" - }, "sebastian/type": { "version": "2.3.4" }, diff --git a/tests/Badge/Model/BadgeTest.php b/tests/Badge/Model/BadgeTest.php index 221656dd..935b5777 100644 --- a/tests/Badge/Model/BadgeTest.php +++ b/tests/Badge/Model/BadgeTest.php @@ -3,6 +3,7 @@ namespace App\Tests\Badge\Model; use App\Badge\Model\Badge; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class BadgeTest extends TestCase @@ -35,7 +36,7 @@ public function testShouldUseDefaultImageStyle(): void self::assertEquals('flat', $badge->getStyle()); } - /** @dataProvider invalidColorProvider */ + #[DataProvider('invalidColorProvider')] public function testShouldThrowExceptionForInvalidColors(string $color): void { $this->expectException(\InvalidArgumentException::class); diff --git a/tests/Badge/Model/ParseStabilityTest.php b/tests/Badge/Model/ParseStabilityTest.php index afe6117b..d4797121 100644 --- a/tests/Badge/Model/ParseStabilityTest.php +++ b/tests/Badge/Model/ParseStabilityTest.php @@ -4,11 +4,12 @@ use App\Badge\Model\Package; use Packagist\Api\Result\Package\Version; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class ParseStabilityTest extends TestCase { - /** @dataProvider getVersionAndStability */ + #[DataProvider('getVersionAndStability')] public function testParseStability(string $version, string $stable): void { self::assertEquals(Package::parseStability($version), $stable); diff --git a/tests/Badge/Model/UseCase/CreateCircleCiBadgeTest.php b/tests/Badge/Model/UseCase/CreateCircleCiBadgeTest.php index 7b4ec5de..167bd188 100644 --- a/tests/Badge/Model/UseCase/CreateCircleCiBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateCircleCiBadgeTest.php @@ -15,6 +15,7 @@ use App\Badge\Model\PackageRepositoryInterface; use App\Badge\Model\UseCase\CreateCircleCiBadge; use App\Service\CircleCiClientInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Contracts\HttpClient\ResponseInterface; @@ -27,10 +28,8 @@ final class CreateCircleCiBadgeTest extends TestCase protected function setUp(): void { - $this->repository = $this->getMockForAbstractClass(PackageRepositoryInterface::class); - $this->circleCiClient = $this->getMockBuilder(CircleCiClientInterface::class) - ->setMethods(['getBuilds']) - ->getMockForAbstractClass(); + $this->repository = $this->createMock(PackageRepositoryInterface::class); + $this->circleCiClient = $this->createMock(CircleCiClientInterface::class); $this->useCase = new CreateCircleCiBadge($this->repository, $this->circleCiClient); } @@ -39,13 +38,10 @@ protected function setUp(): void */ private function createMockWithoutInvokingTheOriginalConstructor(string $classname, array $methods = []): MockObject { - return $this->getMockBuilder($classname) - ->disableOriginalConstructor() - ->setMethods($methods) - ->getMock(); + return $this->createMock($classname); } - /** @dataProvider shouldCreateCircleCiBadgeProvider */ + #[DataProvider('shouldCreateCircleCiBadgeProvider')] public function testShouldCreateCircleCiBadge(string $status, string $expected): void { $package = $this->createMockWithoutInvokingTheOriginalConstructor(Package::class); @@ -62,15 +58,15 @@ public function testShouldCreateCircleCiBadge(string $status, string $expected): $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor()->getMock(); - $response->expects(self::once()) + $response->expects($this->once()) ->method('getStatusCode') ->willReturn(200); - $response->expects(self::once()) + $response->expects($this->once()) ->method('getContent') ->willReturn(\json_encode([['status' => $status]])); - $this->circleCiClient->expects(self::once()) + $this->circleCiClient->expects($this->once()) ->method('getBuilds') ->willReturn($response); @@ -105,11 +101,11 @@ public function testShouldCreateDefaultBadgeOnError(): void \Packagist\Api\Result\Package::class, ['getRepository'] ); - $repo->expects(self::once()) + $repo->expects($this->once()) ->method('getRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getOriginalObject') ->willReturn($repo); @@ -137,15 +133,15 @@ public function testShouldCreateDefaultBadgeWhenNoResults(): void $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor()->getMock(); - $response->expects(self::once()) + $response->expects($this->once()) ->method('getStatusCode') ->willReturn(200); - $response->expects(self::once()) + $response->expects($this->once()) ->method('getContent') ->willReturn(\json_encode([])); - $this->circleCiClient->expects(self::once()) + $this->circleCiClient->expects($this->once()) ->method('getBuilds') ->willReturn($response); @@ -177,11 +173,11 @@ public function testShouldCreateDefaultBadgeWhenCircleConfigNotExist(): void $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor()->getMock(); - $response->expects(self::once()) + $response->expects($this->once()) ->method('getStatusCode') ->willReturn(404); - $this->circleCiClient->expects(self::once()) + $this->circleCiClient->expects($this->once()) ->method('getBuilds') ->willReturn($response); diff --git a/tests/Badge/Model/UseCase/CreateComposerLockBadgeTest.php b/tests/Badge/Model/UseCase/CreateComposerLockBadgeTest.php index f8aa6069..e37f8bf1 100644 --- a/tests/Badge/Model/UseCase/CreateComposerLockBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateComposerLockBadgeTest.php @@ -18,86 +18,62 @@ use App\Badge\ValueObject\Repository; use GuzzleHttp\ClientInterface; use Packagist\Api\Result\Package; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Prophecy\PhpUnit\ProphecyTrait; -use Prophecy\Prophecy\ObjectProphecy; use Psr\Http\Message\ResponseInterface; final class CreateComposerLockBadgeTest extends TestCase { use ProphecyTrait; private CreateComposerLockBadge $useCase; - /** @var PackageRepositoryInterface|MockObject */ + /** @var PackageRepositoryInterface&MockObject */ private MockObject $repository; - /** @var ClientInterface|MockObject */ + /** @var ClientInterface&MockObject */ private MockObject $client; - /** @var ClientStrategy|ObjectProphecy */ - private ObjectProphecy $clientStrategy; protected function setUp(): void { - $this->repository = $this->getMockForAbstractClass(PackageRepositoryInterface::class); - $this->client = $this->getMockBuilder(ClientInterface::class) - ->setMethods(['request']) - ->getMockForAbstractClass(); - $this->clientStrategy = $this->prophesize(ClientStrategy::class); + $this->repository = $this->createMock(PackageRepositoryInterface::class); + $this->client = $this->createMock(ClientInterface::class); + $clientStrategy = $this->prophesize(ClientStrategy::class); $repoUrl = 'https://github.com/user/repository'; $repositoryInfo = Repository::createFromRepositoryUrl($repoUrl); - $this->clientStrategy->getRepositoryPrefix($repositoryInfo, $repoUrl) + $clientStrategy->getRepositoryPrefix($repositoryInfo, $repoUrl) ->willReturn(''); - $this->useCase = new CreateComposerLockBadge($this->repository, $this->client, $this->clientStrategy->reveal()); + $this->useCase = new CreateComposerLockBadge($this->repository, $this->client, $clientStrategy->reveal()); } - /** - * @param array $methods - */ - private function createMockWithoutInvokingTheOriginalConstructor(string $classname, array $methods = []): MockObject - { - return $this->getMockBuilder($classname) - ->disableOriginalConstructor() - ->setMethods($methods) - ->getMock(); - } - - /** @dataProvider shouldCreateComposerLockBadgeProvider */ + #[DataProvider('shouldCreateComposerLockBadgeProvider')] public function testShouldCreateComposerLockBadge(int $returnCode, string $expected): void { - $package = $this->createMockWithoutInvokingTheOriginalConstructor( - AppPackage::class, - ['hasStableVersion', 'getLatestStableVersion', 'getOriginalObject', 'getDefaultBranch'] - ); + $package = $this->createMock(AppPackage::class); $this->repository ->method('fetchByRepository') ->willReturn($package); - $repo = $this->createMockWithoutInvokingTheOriginalConstructor( - Package::class, - ['getRepository'] - ); - $repo->expects(self::once()) + $repo = $this->createMock(Package::class); + $repo->expects($this->once()) ->method('getRepository') ->willReturn('https://github.com/user/repository'); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getOriginalObject') ->willReturn($repo); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getDefaultBranch') ->willReturn('master'); - $response = $this->createMockWithoutInvokingTheOriginalConstructor( - ResponseInterface::class, - ['getStatusCode', 'withStatus', 'getReasonPhrase', 'getProtocolVersion', 'withProtocolVersion', 'getHeaders', 'hasHeader', 'getHeader', 'getHeaderLine', 'withHeader', 'withAddedHeader', 'withoutHeader', 'getBody', 'withBody'] - ); - $response->expects(self::once()) + $response = $this->createMock(ResponseInterface::class); + $response->expects($this->once()) ->method('getStatusCode') ->willReturn($returnCode); - $this->client->expects(self::once()) + $this->client->expects($this->once()) ->method('request') ->willReturn($response); @@ -108,24 +84,18 @@ public function testShouldCreateComposerLockBadge(int $returnCode, string $expec public function testShouldCreateDefaultBadgeOnError(): void { - $package = $this->createMockWithoutInvokingTheOriginalConstructor( - AppPackage::class, - ['hasStableVersion', 'getLatestStableVersion', 'getOriginalObject'] - ); + $package = $this->createMock(AppPackage::class); $this->repository ->method('fetchByRepository') ->willReturn($package); - $repo = $this->createMockWithoutInvokingTheOriginalConstructor( - Package::class, - ['getRepository'] - ); - $repo->expects(self::once()) + $repo = $this->createMock(Package::class); + $repo->expects($this->once()) ->method('getRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getOriginalObject') ->willReturn($repo); diff --git a/tests/Badge/Model/UseCase/CreateDependentsBadgeTest.php b/tests/Badge/Model/UseCase/CreateDependentsBadgeTest.php index 0612c7ab..b562ab48 100644 --- a/tests/Badge/Model/UseCase/CreateDependentsBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateDependentsBadgeTest.php @@ -31,12 +31,9 @@ protected function setUp(): void public function testShouldCreateDependentsBadge(): void { - $package = $this->getMockBuilder(Package::class) - ->disableOriginalConstructor() - ->setMethods(['getDependents']) - ->getMock(); + $package = $this->createMock(Package::class); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getDependents') ->willReturn(1); @@ -55,7 +52,7 @@ public function testShouldCreateDefaultBadgeOnError(): void { $this->repository ->method('fetchByRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); $repository = 'PUGX/badge-poser'; $badge = $this->useCase->createDependentsBadge($repository); diff --git a/tests/Badge/Model/UseCase/CreateDownloadsBadgeTest.php b/tests/Badge/Model/UseCase/CreateDownloadsBadgeTest.php index 593e73f9..ea9cfdc8 100644 --- a/tests/Badge/Model/UseCase/CreateDownloadsBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateDownloadsBadgeTest.php @@ -31,12 +31,9 @@ protected function setUp(): void public function testShouldCreateDownloadsBadge(): void { - $package = $this->getMockBuilder(Package::class) - ->disableOriginalConstructor() - ->setMethods(['getPackageDownloads']) - ->getMock(); + $package = $this->createMock(Package::class); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getPackageDownloads') ->willReturn(102); @@ -55,7 +52,7 @@ public function testShouldCreateDefaultBadgeOnError(): void { $this->repository ->method('fetchByRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); $repository = 'PUGX/badge-poser'; $badge = $this->useCase->createDownloadsBadge($repository, 'daily', 'svg', 'flat'); diff --git a/tests/Badge/Model/UseCase/CreateLicenseBadgeTest.php b/tests/Badge/Model/UseCase/CreateLicenseBadgeTest.php index b5f97621..f60ff766 100644 --- a/tests/Badge/Model/UseCase/CreateLicenseBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateLicenseBadgeTest.php @@ -31,12 +31,9 @@ protected function setUp(): void public function testShouldCreateLicenseBadge(): void { - $package = $this->getMockBuilder(Package::class) - ->disableOriginalConstructor() - ->setMethods(['getLicense']) - ->getMock(); + $package = $this->createMock(Package::class); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getLicense') ->willReturn('MIT'); @@ -53,7 +50,7 @@ public function testShouldCreateDefaultBadgeOnError(): void { $this->repository ->method('fetchByRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); $repository = 'PUGX/badge-poser'; $badge = $this->useCase->createLicenseBadge($repository); diff --git a/tests/Badge/Model/UseCase/CreateRequireBadgeTest.php b/tests/Badge/Model/UseCase/CreateRequireBadgeTest.php index 77b82c72..d5ff8902 100644 --- a/tests/Badge/Model/UseCase/CreateRequireBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateRequireBadgeTest.php @@ -22,12 +22,9 @@ protected function setUp(): void public function testShouldCreateRequireBadge(): void { - $package = $this->getMockBuilder(Package::class) - ->disableOriginalConstructor() - ->setMethods(['getLatestRequire']) - ->getMock(); + $package = $this->createMock(Package::class); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getLatestRequire') ->willReturn('^8.0'); @@ -47,7 +44,7 @@ public function testShouldCreateDefaultBadgeOnError(): void { $this->repository ->method('fetchByRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); $repository = 'PUGX/badge-poser'; $type = 'php'; diff --git a/tests/Badge/Model/UseCase/CreateSuggestersBadgeTest.php b/tests/Badge/Model/UseCase/CreateSuggestersBadgeTest.php index f56b76f1..5c7b1425 100644 --- a/tests/Badge/Model/UseCase/CreateSuggestersBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateSuggestersBadgeTest.php @@ -31,12 +31,9 @@ protected function setUp(): void public function testShouldCreateSuggestersBadge(): void { - $package = $this->getMockBuilder(Package::class) - ->disableOriginalConstructor() - ->setMethods(['getSuggesters']) - ->getMock(); + $package = $this->createMock(Package::class); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getSuggesters') ->willReturn(3); @@ -53,9 +50,9 @@ public function testShouldCreateSuggestersBadge(): void public function testShouldCreateDefaultBadgeOnError(): void { - $this->repository->expects(self::any()) + $this->repository ->method('fetchByRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); $repository = 'PUGX/badge-poser'; $badge = $this->useCase->createSuggestersBadge($repository); diff --git a/tests/Badge/Model/UseCase/CreateVersionBadgeTest.php b/tests/Badge/Model/UseCase/CreateVersionBadgeTest.php index a383557b..3298f665 100644 --- a/tests/Badge/Model/UseCase/CreateVersionBadgeTest.php +++ b/tests/Badge/Model/UseCase/CreateVersionBadgeTest.php @@ -37,7 +37,7 @@ public function testShouldCreateLicenseBadge(): void ->disableOriginalConstructor() ->getMock(); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getLatestStableVersion') ->willReturn('v2.0'); @@ -74,7 +74,7 @@ public function testShouldCreateDefaultBadgeOnErrorWhenCreatingLicenseBadge(): v { $this->repository ->method('fetchByRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); $badge = $this->useCase->createStableBadge('PUGX/badge-poser'); $expectedBadge = new CacheableBadge(new Badge(' - ', ' - ', '7A7A7A'), 0, 0); @@ -88,7 +88,7 @@ public function testShouldCreateUnstableBadge(): void ->disableOriginalConstructor() ->getMock(); - $package->expects(self::once()) + $package->expects($this->once()) ->method('getLatestUnstableVersion') ->willReturn('v2.0'); @@ -125,7 +125,7 @@ public function testShouldCreateDefaultBadgeOnErrorWhenCreatingUnstableReleaseBa { $this->repository ->method('fetchByRepository') - ->will(self::throwException(new \RuntimeException())); + ->will($this->throwException(new \RuntimeException())); $badge = $this->useCase->createUnstableBadge('PUGX/badge-poser'); $expectedBadge = new CacheableBadge(new Badge(' - ', ' - ', '7A7A7A'), 0, 0); diff --git a/tests/Badge/Service/ClientStrategyTest.php b/tests/Badge/Service/ClientStrategyTest.php index 6aeddbf1..f2d07bc5 100644 --- a/tests/Badge/Service/ClientStrategyTest.php +++ b/tests/Badge/Service/ClientStrategyTest.php @@ -64,14 +64,14 @@ public function testGetDefaultBranchFromGithub(): void $apiInterface = $this->getMockBuilder(Repo::class) ->disableOriginalConstructor() ->getMock(); - $apiInterface->expects(self::once()) + $apiInterface->expects($this->once()) ->method('show') ->with($this->username, $this->repositoryName) ->willReturn([ 'default_branch' => $defaultBranch, ]); - $this->githubClient->expects(self::once()) + $this->githubClient->expects($this->once()) ->method('api') ->with('repo') ->willReturn($apiInterface); @@ -88,7 +88,7 @@ public function testGetDefaultBranchFromBitbucket(): void $workspaces = $this->getMockBuilder(Workspaces::class) ->disableOriginalConstructor() ->getMock(); - $workspaces->expects(self::once()) + $workspaces->expects($this->once()) ->method('show') ->with($this->repositoryName) ->willReturn([ @@ -100,12 +100,12 @@ public function testGetDefaultBranchFromBitbucket(): void $repositories = $this->getMockBuilder(Repositories::class) ->disableOriginalConstructor() ->getMock(); - $repositories->expects(self::once()) + $repositories->expects($this->once()) ->method('workspaces') ->with($this->username) ->willReturn($workspaces); - $this->bitbucketClient->expects(self::once()) + $this->bitbucketClient->expects($this->once()) ->method('repositories') ->willReturn($repositories); $source = 'bitbucket.org'; @@ -118,7 +118,7 @@ public function testGetDefaultBranchFromGitlab(): void { $defaultBranch = 'masterGitlab'; - $this->gitlabClient->expects(self::once()) + $this->gitlabClient->expects($this->once()) ->method('show') ->with('repositoryName') ->willReturn(['default_branch' => 'masterGitlab']); @@ -145,11 +145,11 @@ public function testThrowExceptionIfEmptyGithubData(): void $apiInterface = $this->getMockBuilder(Repo::class) ->disableOriginalConstructor() ->getMock(); - $apiInterface->expects(self::once()) + $apiInterface->expects($this->once()) ->method('show') ->with($this->username, $this->repositoryName)->willReturn([]); - $this->githubClient->expects(self::once()) + $this->githubClient->expects($this->once()) ->method('api') ->with('repo') ->willReturn($apiInterface); @@ -168,14 +168,14 @@ public function testThrowExceptionIfNotExistDefaultBranchKeyIntoGithubRepository $apiInterface = $this->getMockBuilder(Repo::class) ->disableOriginalConstructor() ->getMock(); - $apiInterface->expects(self::once()) + $apiInterface->expects($this->once()) ->method('show') ->with($this->username, $this->repositoryName) ->willReturn([ 'foo' => 'bar', ]); - $this->githubClient->expects(self::once()) + $this->githubClient->expects($this->once()) ->method('api') ->with('repo') ->willReturn($apiInterface); @@ -194,14 +194,14 @@ public function testThrowExceptionIfDefaultBranchKeyIsNotStringIntoGithubReposit $apiInterface = $this->getMockBuilder(Repo::class) ->disableOriginalConstructor() ->getMock(); - $apiInterface->expects(self::once()) + $apiInterface->expects($this->once()) ->method('show') ->with($this->username, $this->repositoryName) ->willReturn([ 'foo' => ['bar'], ]); - $this->githubClient->expects(self::once()) + $this->githubClient->expects($this->once()) ->method('api') ->with('repo') ->willReturn($apiInterface); @@ -220,7 +220,7 @@ public function testThrowExceptionIfEmptyBitbucketData(): void $workspaces = $this->getMockBuilder(Workspaces::class) ->disableOriginalConstructor() ->getMock(); - $workspaces->expects(self::once()) + $workspaces->expects($this->once()) ->method('show') ->with($this->repositoryName) ->willReturn([]); @@ -228,12 +228,12 @@ public function testThrowExceptionIfEmptyBitbucketData(): void $repositories = $this->getMockBuilder(Repositories::class) ->disableOriginalConstructor() ->getMock(); - $repositories->expects(self::once()) + $repositories->expects($this->once()) ->method('workspaces') ->with($this->username) ->willReturn($workspaces); - $this->bitbucketClient->expects(self::once()) + $this->bitbucketClient->expects($this->once()) ->method('repositories') ->willReturn($repositories); $source = 'bitbucket.org'; @@ -260,12 +260,12 @@ public function testThrowExceptionIfThereIsNoKeyMainBranchBitbucketData(): void $repositories = $this->getMockBuilder(Repositories::class) ->disableOriginalConstructor() ->getMock(); - $repositories->expects(self::once()) + $repositories->expects($this->once()) ->method('workspaces') ->with($this->username) ->willReturn($workspaces); - $this->bitbucketClient->expects(self::once()) + $this->bitbucketClient->expects($this->once()) ->method('repositories') ->willReturn($repositories); $source = 'bitbucket.org'; @@ -283,7 +283,7 @@ public function testThrowExceptionIfThereIsNoKeyNameBitbucketData(): void $workspaces = $this->getMockBuilder(Workspaces::class) ->disableOriginalConstructor() ->getMock(); - $workspaces->expects(self::once()) + $workspaces->expects($this->once()) ->method('show') ->with($this->repositoryName) ->willReturn([ @@ -293,12 +293,12 @@ public function testThrowExceptionIfThereIsNoKeyNameBitbucketData(): void $repositories = $this->getMockBuilder(Repositories::class) ->disableOriginalConstructor() ->getMock(); - $repositories->expects(self::once()) + $repositories->expects($this->once()) ->method('workspaces') ->with($this->username) ->willReturn($workspaces); - $this->bitbucketClient->expects(self::once()) + $this->bitbucketClient->expects($this->once()) ->method('repositories') ->willReturn($repositories); $source = 'bitbucket.org'; @@ -316,7 +316,7 @@ public function testThrowExceptionIfThereIsNNameIsNotStringBitbucketData(): void $workspaces = $this->getMockBuilder(Workspaces::class) ->disableOriginalConstructor() ->getMock(); - $workspaces->expects(self::once()) + $workspaces->expects($this->once()) ->method('show') ->with($this->repositoryName) ->willReturn([ @@ -328,12 +328,12 @@ public function testThrowExceptionIfThereIsNNameIsNotStringBitbucketData(): void $repositories = $this->getMockBuilder(Repositories::class) ->disableOriginalConstructor() ->getMock(); - $repositories->expects(self::once()) + $repositories->expects($this->once()) ->method('workspaces') ->with($this->username) ->willReturn($workspaces); - $this->bitbucketClient->expects(self::once()) + $this->bitbucketClient->expects($this->once()) ->method('repositories') ->willReturn($repositories); $source = 'bitbucket.org'; @@ -352,7 +352,7 @@ public function testThrowExceptionIfRepositoryDataIsEmptyFromGitlab(): void $this->expectExceptionMessage('Repository data not valid: []'); $defaultBranch = 'masterGitlab'; - $this->gitlabClient->expects(self::once()) + $this->gitlabClient->expects($this->once()) ->method('show') ->with('repositoryName') ->willReturn([]); @@ -368,7 +368,7 @@ public function testThrowExceptionIfThereIsNoDefaultBranchKeyFromGitlab(): void $this->expectExceptionMessage('Repository data not valid: {"data":"someData"}'); $defaultBranch = 'masterGitlab'; - $this->gitlabClient->expects(self::once()) + $this->gitlabClient->expects($this->once()) ->method('show') ->with('repositoryName') ->willReturn(['data' => 'someData']); diff --git a/tests/Badge/Service/TextNormalizerTest.php b/tests/Badge/Service/TextNormalizerTest.php index 9f9fdf34..37baf2d8 100644 --- a/tests/Badge/Service/TextNormalizerTest.php +++ b/tests/Badge/Service/TextNormalizerTest.php @@ -12,6 +12,7 @@ namespace App\Tests\Badge\Service; use App\Badge\Service\TextNormalizer; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class TextNormalizerTest extends TestCase @@ -23,7 +24,7 @@ protected function setUp(): void $this->normalizer = new TextNormalizer(); } - /** @dataProvider getBadNumberToConvert */ + #[DataProvider('getBadNumberToConvert')] public function testNumberToTextConversion(int|string $input, string $output): void { $this->expectException(\InvalidArgumentException::class); @@ -43,7 +44,7 @@ public static function getBadNumberToConvert(): array ]; } - /** @dataProvider getGoodNumberToConvert */ + #[DataProvider('getGoodNumberToConvert')] public function testGoodNumberToTextConversion(int|string $input, string $output): void { $res = $this->normalizer->normalize($input); diff --git a/tests/Badge/ValueObject/RepositoryTest.php b/tests/Badge/ValueObject/RepositoryTest.php index d3cd4862..623a4c7f 100644 --- a/tests/Badge/ValueObject/RepositoryTest.php +++ b/tests/Badge/ValueObject/RepositoryTest.php @@ -5,6 +5,7 @@ namespace App\Tests\Badge\ValueObject; use App\Badge\ValueObject\Repository; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class RepositoryTest extends TestCase @@ -77,7 +78,7 @@ public function testItSupportBitbucketAsSourceProvider(): void self::assertTrue($repository->isSupported()); } - /** @dataProvider unsupportedRepositorySourceProvider */ + #[DataProvider('unsupportedRepositorySourceProvider')] public function testItDetectUnsupportedSourceProvider(string $sourceProviderUrl): void { $repository = Repository::createFromRepositoryUrl($sourceProviderUrl); diff --git a/tests/Controller/HomeControllerTest.php b/tests/Controller/HomeControllerTest.php index aa394d4a..d1bb5909 100644 --- a/tests/Controller/HomeControllerTest.php +++ b/tests/Controller/HomeControllerTest.php @@ -2,11 +2,12 @@ namespace App\Tests\Controller; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; final class HomeControllerTest extends WebTestCase { - /** @dataProvider provider */ + #[DataProvider('provider')] public function testHome(string $path): void { $client = self::createClient(); diff --git a/tests/EventListener/BadgeLoggerSubscriberTest.php b/tests/EventListener/BadgeLoggerSubscriberTest.php index d344af37..21df2b92 100644 --- a/tests/EventListener/BadgeLoggerSubscriberTest.php +++ b/tests/EventListener/BadgeLoggerSubscriberTest.php @@ -40,7 +40,7 @@ public function testPopulateBadgeEventData(): void ->disableOriginalConstructor() ->getMock(); - $badgeEvent->expects(self::once()) + $badgeEvent->expects($this->once()) ->method('getData'); $this->badgeLoggerSubscriber->onBadgeEvent($badgeEvent); @@ -67,8 +67,8 @@ public function testOnKernelResponse(): void $responseEvent = new ResponseEvent($kernel, $request, 1, $response); - $request->expects(self::once())->method('getRequestUri'); - $this->logger->expects(self::once())->method('info'); + $request->expects($this->once())->method('getRequestUri'); + $this->logger->expects($this->once())->method('info'); $this->badgeLoggerSubscriber->onKernelResponse($responseEvent); } diff --git a/tests/Extension/BypassFinalExtension.php b/tests/Extension/BypassFinalExtension.php new file mode 100644 index 00000000..71f907af --- /dev/null +++ b/tests/Extension/BypassFinalExtension.php @@ -0,0 +1,17 @@ + 'svg', ]); - $routeCollection = $this->getMockBuilder(RouteCollection::class) - ->getMock(); + $routeCollection = $this->createMock(RouteCollection::class); $routeCollection->method('get') - ->withConsecutive( - ['pugx_badge_version_latest'], - ) - ->willReturnOnConsecutiveCalls( - $routePugxBadgeVersionLatest, - $routePugxBadgeDownload, - $routePugxBadgeVersionLatestUnstable, - $routePugxBadgeLicense, - $routepugxBadgeDownloadTypeMonthly, - $routepugxBadgeDownloadTypeDaily, - $routePugxBadgeVersion, - $routePugxBadgeRequire, - $routePugxBadgeComposerlock, - $routePugxBadgeGitAttributes, - $routePugxBadgeDependents, - $routePugxBadgeSuggesters, - $routePugxBadgeCircleci - ); + ->willReturnMap([ + ['pugx_badge_version_latest', $routePugxBadgeVersionLatest], + ['pugx_badge_download', $routePugxBadgeDownload], + ['pugx_badge_license', $routePugxBadgeLicense], + ['pugx_badge_download_type', $routepugxBadgeDownloadTypeMonthly], + ['pugx_badge_version', $routePugxBadgeVersion], + ['pugx_badge_require', $routePugxBadgeRequire], + ['pugx_badge_composerlock', $routePugxBadgeComposerlock], + ['pugx_badge_gitattributes', $routePugxBadgeGitAttributes], + ['pugx_badge_dependents', $routePugxBadgeDependents], + ['pugx_badge_suggesters', $routePugxBadgeSuggesters], + ['pugx_badge_circleci', $routePugxBadgeCircleci], + ]); $router = $this->getMockBuilder(RouterInterface::class) ->getMock(); @@ -175,78 +169,45 @@ public function testGenerateAllSnippetsWithAndWithoutFeaturedBadges(): void ->willReturn($routeCollection); $router ->method('generate') - ->withConsecutive( - [ - 'pugx_badge_packagist', - ['repository' => 'vendor/package'], - ], - [ - 'pugx_badge_version_latest', - ['latest' => 'stable', 'repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_download', - ['repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_version_latest', - ['latest' => 'unstable', 'repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_license', - ['repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_download_type', - ['repository' => 'vendor/package', 'type' => 'monthly'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_download_type', - ['repository' => 'vendor/package', 'type' => 'daily'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_version', - ['repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_require', - ['repository' => 'vendor/package', 'type' => 'php'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_composerlock', - ['repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_gitattributes', - ['repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_dependents', - ['repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_suggesters', - ['repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ], - [ - 'pugx_badge_circleci', - ['repository' => 'vendor/package'], - RouterInterface::ABSOLUTE_URL, - ] - ) - ->willReturnOnConsecutiveCalls('repo_url', 'img_url0', 'img_url1', 'img_url2', 'img_url3', 'img_url4', 'img_url5', 'img_url6', 'img_url7', 'img_url8', 'img_url9', 'img_url10', 'img_url11', 'img_url12'); + ->willReturnCallback(function (string $name, array $params = []) { + if ('pugx_badge_packagist' === $name) { + return 'repo_url'; + } + + if ('pugx_badge_version_latest' === $name) { + return ($params['latest'] ?? 'stable') === 'unstable' ? 'img_url2' : 'img_url0'; + } + + if ('pugx_badge_download' === $name) { + return 'img_url1'; + } + + if ('pugx_badge_license' === $name) { + return 'img_url3'; + } + + if ('pugx_badge_download_type' === $name) { + return ($params['type'] ?? 'monthly') === 'daily' ? 'img_url5' : 'img_url4'; + } + + if ('pugx_badge_version' === $name) { + return 'img_url6'; + } + + if ('pugx_badge_require' === $name) { + return 'img_url7'; + } + + $map = [ + 'pugx_badge_composerlock' => 'img_url8', + 'pugx_badge_gitattributes' => 'img_url9', + 'pugx_badge_dependents' => 'img_url10', + 'pugx_badge_suggesters' => 'img_url11', + 'pugx_badge_circleci' => 'img_url12', + ]; + + return $map[$name] ?? 'repo_url'; + }); $poser = $this->getMockBuilder(Poser::class) ->disableOriginalConstructor()