From 6dad04eed13ffad462c59973cc8613f56f3e8e9c Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Sun, 20 Sep 2026 23:39:37 +0200 Subject: [PATCH 1/3] feat(preview): generate previews for JPEG 2000 images A .jp2 is typed correctly on upload and has been since 12.0.0.14, and then nothing can render it: no provider claims image/jp2, no browser decodes the format, so the file opens to nothing. ImageMagick reads it where it was built with OpenJPEG, which is what the other formats libgd cannot read already rely on, and the signature box a .jp2 opens with sits at offset 0 where Bitmap looks for it. So this is the same shape as TIFF: a Bitmap subclass naming the format, off until an admin enables it. libgd is not an option here and never was. It has no JPEG 2000 functions at all, which is why the case for it in OC\Image sits commented out beside the other formats it cannot read. Imaginary answers 406 for one. The pixel assertion the AVIF tests use is not about AVIF, so it loses the name and is shared. Assisted-by: ClaudeCode:claude-opus-5 Signed-off-by: skjnldsv --- lib/composer/composer/autoload_classmap.php | 1 + lib/composer/composer/autoload_static.php | 1 + lib/private/Preview/JP2.php | 38 ++++++++++++ lib/private/PreviewManager.php | 2 + tests/data/REUSE.toml | 2 +- tests/data/testimage.jp2 | Bin 0 -> 10083 bytes tests/lib/Preview/AVIFImagickTest.php | 2 +- tests/lib/Preview/AVIFTest.php | 2 +- tests/lib/Preview/JP2Test.php | 54 ++++++++++++++++++ ...reviewTrait.php => PreviewPixelsTrait.php} | 8 +-- 10 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 lib/private/Preview/JP2.php create mode 100644 tests/data/testimage.jp2 create mode 100644 tests/lib/Preview/JP2Test.php rename tests/lib/Preview/{AvifPreviewTrait.php => PreviewPixelsTrait.php} (91%) diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 358217355dae4..eb139ea67a8f7 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -2154,6 +2154,7 @@ 'OC\\Preview\\Image' => $baseDir . '/lib/private/Preview/Image.php', 'OC\\Preview\\Imaginary' => $baseDir . '/lib/private/Preview/Imaginary.php', 'OC\\Preview\\ImaginaryPDF' => $baseDir . '/lib/private/Preview/ImaginaryPDF.php', + 'OC\\Preview\\JP2' => $baseDir . '/lib/private/Preview/JP2.php', 'OC\\Preview\\JPEG' => $baseDir . '/lib/private/Preview/JPEG.php', 'OC\\Preview\\Krita' => $baseDir . '/lib/private/Preview/Krita.php', 'OC\\Preview\\MP3' => $baseDir . '/lib/private/Preview/MP3.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 3764598341acf..6f4d27b27eee9 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -2195,6 +2195,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2 'OC\\Preview\\Image' => __DIR__ . '/../../..' . '/lib/private/Preview/Image.php', 'OC\\Preview\\Imaginary' => __DIR__ . '/../../..' . '/lib/private/Preview/Imaginary.php', 'OC\\Preview\\ImaginaryPDF' => __DIR__ . '/../../..' . '/lib/private/Preview/ImaginaryPDF.php', + 'OC\\Preview\\JP2' => __DIR__ . '/../../..' . '/lib/private/Preview/JP2.php', 'OC\\Preview\\JPEG' => __DIR__ . '/../../..' . '/lib/private/Preview/JPEG.php', 'OC\\Preview\\Krita' => __DIR__ . '/../../..' . '/lib/private/Preview/Krita.php', 'OC\\Preview\\MP3' => __DIR__ . '/../../..' . '/lib/private/Preview/MP3.php', diff --git a/lib/private/Preview/JP2.php b/lib/private/Preview/JP2.php new file mode 100644 index 0000000000000..fa19a98d881df --- /dev/null +++ b/lib/private/Preview/JP2.php @@ -0,0 +1,38 @@ + ['mimetype' => '/image\/svg\+xml/', 'class' => SVG::class], 'TIFF' => ['mimetype' => '/image\/tiff/', 'class' => TIFF::class], + 'JP2' => ['mimetype' => '/image\/jp2/', 'class' => JP2::class], 'PDF' => ['mimetype' => '/application\/pdf/', 'class' => PDF::class], 'AI' => ['mimetype' => '/application\/illustrator/', 'class' => Illustrator::class], 'PSD' => ['mimetype' => '/application\/x-photoshop/', 'class' => Photoshop::class], diff --git a/tests/data/REUSE.toml b/tests/data/REUSE.toml index 34ea37845a0ef..255b35698189f 100644 --- a/tests/data/REUSE.toml +++ b/tests/data/REUSE.toml @@ -34,7 +34,7 @@ SPDX-FileCopyrightText = "2012 ownCloud, Inc." SPDX-License-Identifier = "AGPL-3.0-only" [[annotations]] -path = ["testavatar.png", "testimage.avif", "testimage.gif", "testimage.jpg", "testimage.png"] +path = ["testavatar.png", "testimage.avif", "testimage.gif", "testimage.jp2", "testimage.jpg", "testimage.png"] precedence = "aggregate" SPDX-FileCopyrightText = "2013 ownCloud, Inc." SPDX-License-Identifier = "AGPL-3.0-only" diff --git a/tests/data/testimage.jp2 b/tests/data/testimage.jp2 new file mode 100644 index 0000000000000000000000000000000000000000..496069e81cb31aaf8cb7342cdb6a25b0a20f252f GIT binary patch literal 10083 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 literal 0 HcmV?d00001 diff --git a/tests/lib/Preview/AVIFImagickTest.php b/tests/lib/Preview/AVIFImagickTest.php index cc7e9b92624ef..258cd33dd229d 100644 --- a/tests/lib/Preview/AVIFImagickTest.php +++ b/tests/lib/Preview/AVIFImagickTest.php @@ -16,7 +16,7 @@ */ #[\PHPUnit\Framework\Attributes\Group('DB')] class AVIFImagickTest extends Provider { - use AvifPreviewTrait; + use PreviewPixelsTrait; #[\Override] protected function setUp(): void { diff --git a/tests/lib/Preview/AVIFTest.php b/tests/lib/Preview/AVIFTest.php index 5a32d7738406f..02a3a5455bff1 100644 --- a/tests/lib/Preview/AVIFTest.php +++ b/tests/lib/Preview/AVIFTest.php @@ -17,7 +17,7 @@ */ #[\PHPUnit\Framework\Attributes\Group('DB')] class AVIFTest extends Provider { - use AvifPreviewTrait; + use PreviewPixelsTrait; #[\Override] protected function setUp(): void { diff --git a/tests/lib/Preview/JP2Test.php b/tests/lib/Preview/JP2Test.php new file mode 100644 index 0000000000000..f8f1a54e905e5 --- /dev/null +++ b/tests/lib/Preview/JP2Test.php @@ -0,0 +1,54 @@ +markTestSkipped('ImageMagick is not installed. Skipping tests'); + } + if (!in_array('JP2', \Imagick::queryFormats('JP2'), true)) { + $this->markTestSkipped('ImageMagick was built without JPEG 2000. Skipping tests'); + } + + $fileName = 'testimage.jp2'; + $sourcePath = \OC::$SERVERROOT . '/tests/data/' . $fileName; + + // Reporting the coder is not the same as being able to use it: the + // OpenJPEG delegate may be missing, or policy.xml may have disabled + // it, in which case decoding throws and the tests would fail rather + // than skip. Decode once for real before committing to them. + try { + (new \Imagick())->readImage('jp2:' . $sourcePath . '[0]'); + } catch (\ImagickException $e) { + $this->markTestSkipped('ImageMagick cannot decode JPEG 2000 here: ' . $e->getMessage() . '. Skipping tests'); + } + + parent::setUp(); + + $this->imgPath = $this->prepareTestFile($fileName, $sourcePath); + $this->width = 1680; + $this->height = 1050; + $this->provider = new JP2(); + } + + public function testPreviewCarriesThePicture(): void { + $this->assertPreviewShowsThePicture(); + } +} diff --git a/tests/lib/Preview/AvifPreviewTrait.php b/tests/lib/Preview/PreviewPixelsTrait.php similarity index 91% rename from tests/lib/Preview/AvifPreviewTrait.php rename to tests/lib/Preview/PreviewPixelsTrait.php index 5a8fb4fbc2846..b208ff3fa65e7 100644 --- a/tests/lib/Preview/AvifPreviewTrait.php +++ b/tests/lib/Preview/PreviewPixelsTrait.php @@ -18,7 +18,7 @@ * came back, which a blank canvas of the right shape would satisfy just as * well as a decoded photo. These read the pixels. */ -trait AvifPreviewTrait { +trait PreviewPixelsTrait { /** How far the average may drift, over encoding and scaling */ private int $tolerance = 12; @@ -66,9 +66,9 @@ protected function assertPreviewShowsThePicture(): void { $this->assertLessThanOrEqual(256, $preview->width()); $this->assertLessThanOrEqual(256, $preview->height()); - // The fixture is a re-encode of testimage.jpg, so the two hold the - // same picture: a strong magenta whose average survives both the - // encoding and the scaling. A blank or black canvas misses by ~250. + // Every fixture using this is a re-encode of testimage.jpg, so they + // hold the same picture: a strong magenta whose average survives + // the encoding and the scaling. A blank canvas misses by ~250. $expected = $this->meanColour(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.jpg')); $actual = $this->meanColour($preview->data()); From 66ade54d3ab20bda98fc9fb561080d921ae6358a Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Sun, 20 Sep 2026 23:50:25 +0200 Subject: [PATCH 2/3] fix(preview): put the JP2 import back in order It went in beside Imaginary rather than after ImaginaryPDF, which php-cs-fixer and the strict run both objected to. Assisted-by: ClaudeCode:claude-opus-5 Signed-off-by: skjnldsv --- lib/private/PreviewManager.php | 2 +- vendor-bin/behat/composer.json | 2 +- vendor-bin/behat/composer.lock | 250 +++++++++++-------------- vendor-bin/psalm/composer.json | 2 +- vendor-bin/psalm/composer.lock | 324 ++++++++++++++++----------------- 5 files changed, 260 insertions(+), 320 deletions(-) diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php index 501db92c3337f..4987d61aeb763 100644 --- a/lib/private/PreviewManager.php +++ b/lib/private/PreviewManager.php @@ -24,8 +24,8 @@ use OC\Preview\Image; use OC\Preview\IMagickSupport; use OC\Preview\Imaginary; -use OC\Preview\JP2; use OC\Preview\ImaginaryPDF; +use OC\Preview\JP2; use OC\Preview\JPEG; use OC\Preview\Krita; use OC\Preview\MarkDown; diff --git a/vendor-bin/behat/composer.json b/vendor-bin/behat/composer.json index fd91913a07ebe..ee677f2cca194 100644 --- a/vendor-bin/behat/composer.json +++ b/vendor-bin/behat/composer.json @@ -6,7 +6,7 @@ "sort-packages": true }, "require-dev": { - "behat/behat": "^3.33", + "behat/behat": "^3.27", "phpunit/phpunit": "^11.5" } } diff --git a/vendor-bin/behat/composer.lock b/vendor-bin/behat/composer.lock index b29fbd47a9524..0d38344f0b045 100644 --- a/vendor-bin/behat/composer.lock +++ b/vendor-bin/behat/composer.lock @@ -4,28 +4,27 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3e75ac62494172e6796af48ae596b949", + "content-hash": "a90428f676335593636bc15ebd71bd47", "packages": [], "packages-dev": [ { "name": "behat/behat", - "version": "v3.33.0", + "version": "v3.32.0", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "a76fe078164e72d3183afc48224a6e8902dccaf0" + "reference": "b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/a76fe078164e72d3183afc48224a6e8902dccaf0", - "reference": "a76fe078164e72d3183afc48224a6e8902dccaf0", + "url": "https://api.github.com/repos/Behat/Behat/zipball/b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9", + "reference": "b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9", "shasum": "" }, "require": { "behat/gherkin": "^4.17.0", "composer-runtime-api": "^2.2", "composer/xdebug-handler": "^1.4 || ^2.0 || ^3.0", - "cucumber/tag-expressions": "^11.0", "ext-mbstring": "*", "nikic/php-parser": "^4.19.2 || ^5.2", "php": ">=8.2 <8.6", @@ -94,7 +93,7 @@ ], "support": { "issues": "https://github.com/Behat/Behat/issues", - "source": "https://github.com/Behat/Behat/tree/v3.33.0" + "source": "https://github.com/Behat/Behat/tree/v3.32.0" }, "funding": [ { @@ -110,7 +109,7 @@ "type": "github" } ], - "time": "2026-09-07T14:37:47+00:00" + "time": "2026-06-20T08:34:52+00:00" }, { "name": "behat/gherkin", @@ -337,49 +336,6 @@ ], "time": "2024-05-06T16:37:16+00:00" }, - { - "name": "cucumber/tag-expressions", - "version": "v11.0.1", - "source": { - "type": "git", - "url": "https://github.com/cucumber/tag-expressions-php.git", - "reference": "d88e12c03a2069b4336156dc7831a6b78cce5e1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cucumber/tag-expressions-php/zipball/d88e12c03a2069b4336156dc7831a6b78cce5e1d", - "reference": "d88e12c03a2069b4336156dc7831a6b78cce5e1d", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": "^8.1" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.75", - "phpstan/phpstan": "^2.1", - "phpstan/phpstan-phpunit": "^2.0", - "phpunit/phpunit": "^10.5.46 || ^11.5 || ^13.0", - "symfony/yaml": "^6.4 || ^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Cucumber\\TagExpressions\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Cucumber Tag Expressions parser", - "homepage": "https://github.com/cucumber/tag-expressions", - "support": { - "issues": "https://github.com/cucumber/tag-expressions/issues", - "source": "https://github.com/cucumber/tag-expressions-php/tree/v11.0.1" - }, - "time": "2026-03-24T10:42:49+00:00" - }, { "name": "myclabs/deep-copy", "version": "1.14.0", @@ -442,16 +398,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.9.0", + "version": "v5.8.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", - "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", "shasum": "" }, "require": { @@ -493,9 +449,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" }, - "time": "2026-09-13T18:51:52+00:00" + "time": "2026-07-04T14:30:18+00:00" }, { "name": "phar-io/manifest", @@ -2249,16 +2205,16 @@ }, { "name": "symfony/config", - "version": "v7.4.17", + "version": "v7.4.14", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "696e12da8eea497a1a3808d714b43ff67a7df43e" + "reference": "7b665e443381ea7c4db03eb03b4bf79ea2b020eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/696e12da8eea497a1a3808d714b43ff67a7df43e", - "reference": "696e12da8eea497a1a3808d714b43ff67a7df43e", + "url": "https://api.github.com/repos/symfony/config/zipball/7b665e443381ea7c4db03eb03b4bf79ea2b020eb", + "reference": "7b665e443381ea7c4db03eb03b4bf79ea2b020eb", "shasum": "" }, "require": { @@ -2304,7 +2260,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.4.17" + "source": "https://github.com/symfony/config/tree/v7.4.14" }, "funding": [ { @@ -2324,20 +2280,20 @@ "type": "tidelift" } ], - "time": "2026-08-20T09:55:18+00:00" + "time": "2026-06-09T07:51:57+00:00" }, { "name": "symfony/console", - "version": "v7.4.19", + "version": "v7.4.14", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063" + "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063", + "url": "https://api.github.com/repos/symfony/console/zipball/92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", + "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", "shasum": "" }, "require": { @@ -2402,7 +2358,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.19" + "source": "https://github.com/symfony/console/tree/v7.4.14" }, "funding": [ { @@ -2422,20 +2378,20 @@ "type": "tidelift" } ], - "time": "2026-09-13T10:38:41+00:00" + "time": "2026-06-16T11:50:14+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.4.17", + "version": "v7.4.14", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "f318ac9da5aba0be2cf43ecdd562c05a33bc11c0" + "reference": "2c8c64a33e2e6911579e1ff79a8e06c27d48d402" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f318ac9da5aba0be2cf43ecdd562c05a33bc11c0", - "reference": "f318ac9da5aba0be2cf43ecdd562c05a33bc11c0", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2c8c64a33e2e6911579e1ff79a8e06c27d48d402", + "reference": "2c8c64a33e2e6911579e1ff79a8e06c27d48d402", "shasum": "" }, "require": { @@ -2486,7 +2442,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.4.17" + "source": "https://github.com/symfony/dependency-injection/tree/v7.4.14" }, "funding": [ { @@ -2506,20 +2462,20 @@ "type": "tidelift" } ], - "time": "2026-08-21T17:40:08+00:00" + "time": "2026-06-24T07:41:05+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.7.1", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" + "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/50f59d1f3ca46d41ac911f97a78626b6756af35b", + "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b", "shasum": "" }, "require": { @@ -2557,7 +2513,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.0" }, "funding": [ { @@ -2577,20 +2533,20 @@ "type": "tidelift" } ], - "time": "2026-06-05T06:23:12+00:00" + "time": "2026-04-13T15:52:40+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.4.17", + "version": "v7.4.14", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d269974ee93c61d03620ffee358355bfdb471d66" + "reference": "51fe3d170227be8d1772214b82ae506e15ed78ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d269974ee93c61d03620ffee358355bfdb471d66", - "reference": "d269974ee93c61d03620ffee358355bfdb471d66", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/51fe3d170227be8d1772214b82ae506e15ed78ff", + "reference": "51fe3d170227be8d1772214b82ae506e15ed78ff", "shasum": "" }, "require": { @@ -2642,7 +2598,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.17" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.14" }, "funding": [ { @@ -2662,20 +2618,20 @@ "type": "tidelift" } ], - "time": "2026-08-21T17:40:08+00:00" + "time": "2026-06-06T11:10:32+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.7.1", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" + "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", - "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/ccba7060602b7fed0b03c85bf025257f76d9ef32", + "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32", "shasum": "" }, "require": { @@ -2722,7 +2678,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.0" }, "funding": [ { @@ -2742,20 +2698,20 @@ "type": "tidelift" } ], - "time": "2026-06-05T06:23:12+00:00" + "time": "2026-01-05T13:30:16+00:00" }, { "name": "symfony/filesystem", - "version": "v7.4.18", + "version": "v7.4.11", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" + "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", - "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d721ea61b4a5fba8c5b6e7c1feda19efea144b50", + "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50", "shasum": "" }, "require": { @@ -2792,7 +2748,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.18" + "source": "https://github.com/symfony/filesystem/tree/v7.4.11" }, "funding": [ { @@ -2812,7 +2768,7 @@ "type": "tidelift" } ], - "time": "2026-08-23T10:03:40+00:00" + "time": "2026-05-11T16:38:44+00:00" }, { "name": "symfony/polyfill-ctype", @@ -2899,16 +2855,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", + "version": "v1.38.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + "reference": "e9247d281d694a5120554d9afaf54e070e88a603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/e9247d281d694a5120554d9afaf54e070e88a603", + "reference": "e9247d281d694a5120554d9afaf54e070e88a603", "shasum": "" }, "require": { @@ -2957,7 +2913,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.38.1" }, "funding": [ { @@ -2977,20 +2933,20 @@ "type": "tidelift" } ], - "time": "2026-07-28T08:25:59+00:00" + "time": "2026-05-26T05:58:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.42.0", + "version": "v1.38.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", "shasum": "" }, "require": { @@ -3042,7 +2998,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" }, "funding": [ { @@ -3062,7 +3018,7 @@ "type": "tidelift" } ], - "time": "2026-08-07T06:33:24+00:00" + "time": "2026-05-25T13:48:31+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -3151,16 +3107,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.7.3", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" + "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", - "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d25d82433a80eba6aa0e6c24b61d7370d99e444a", + "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a", "shasum": "" }, "require": { @@ -3214,7 +3170,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.0" }, "funding": [ { @@ -3234,20 +3190,20 @@ "type": "tidelift" } ], - "time": "2026-07-27T15:39:01+00:00" + "time": "2026-03-28T09:44:51+00:00" }, { "name": "symfony/string", - "version": "v7.4.19", + "version": "v7.4.13", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" + "reference": "961683010db3b27ec6ebcd7308e6e1ee8fa7ffde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", - "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "url": "https://api.github.com/repos/symfony/string/zipball/961683010db3b27ec6ebcd7308e6e1ee8fa7ffde", + "reference": "961683010db3b27ec6ebcd7308e6e1ee8fa7ffde", "shasum": "" }, "require": { @@ -3305,7 +3261,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.19" + "source": "https://github.com/symfony/string/tree/v7.4.13" }, "funding": [ { @@ -3325,20 +3281,20 @@ "type": "tidelift" } ], - "time": "2026-09-11T14:46:58+00:00" + "time": "2026-05-23T15:23:29+00:00" }, { "name": "symfony/translation", - "version": "v7.4.17", + "version": "v7.4.14", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "2ee1e4a3b32a528a642babe041ff7c440b213b4b" + "reference": "a1af4dacb24eb7ef4f1ca71b94da8ddbce572281" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/2ee1e4a3b32a528a642babe041ff7c440b213b4b", - "reference": "2ee1e4a3b32a528a642babe041ff7c440b213b4b", + "url": "https://api.github.com/repos/symfony/translation/zipball/a1af4dacb24eb7ef4f1ca71b94da8ddbce572281", + "reference": "a1af4dacb24eb7ef4f1ca71b94da8ddbce572281", "shasum": "" }, "require": { @@ -3405,7 +3361,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.4.17" + "source": "https://github.com/symfony/translation/tree/v7.4.14" }, "funding": [ { @@ -3425,20 +3381,20 @@ "type": "tidelift" } ], - "time": "2026-08-21T17:40:08+00:00" + "time": "2026-06-06T09:33:19+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.7.1", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621" + "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/ccb206b98faccc511ebae8e5fad50f2dc0b30621", - "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/0ab302977a952b42fd51475c4ebac81f8da0a95d", + "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d", "shasum": "" }, "require": { @@ -3487,7 +3443,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.7.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.7.0" }, "funding": [ { @@ -3507,20 +3463,20 @@ "type": "tidelift" } ], - "time": "2026-06-05T06:23:12+00:00" + "time": "2026-01-05T13:30:16+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.4.18", + "version": "v7.4.14", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "d6a87acbe48cbc707b9aba7f1a6c2215aab02603" + "reference": "0118811b1d59f323bf131250b3fb919febfece28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d6a87acbe48cbc707b9aba7f1a6c2215aab02603", - "reference": "d6a87acbe48cbc707b9aba7f1a6c2215aab02603", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0118811b1d59f323bf131250b3fb919febfece28", + "reference": "0118811b1d59f323bf131250b3fb919febfece28", "shasum": "" }, "require": { @@ -3568,7 +3524,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.4.18" + "source": "https://github.com/symfony/var-exporter/tree/v7.4.14" }, "funding": [ { @@ -3588,20 +3544,20 @@ "type": "tidelift" } ], - "time": "2026-08-23T10:03:40+00:00" + "time": "2026-06-27T08:41:53+00:00" }, { "name": "symfony/yaml", - "version": "v7.4.18", + "version": "v7.4.14", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" + "reference": "f8f328665ace2370d1e10645b807ba1646dc7dcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", - "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", + "url": "https://api.github.com/repos/symfony/yaml/zipball/f8f328665ace2370d1e10645b807ba1646dc7dcc", + "reference": "f8f328665ace2370d1e10645b807ba1646dc7dcc", "shasum": "" }, "require": { @@ -3644,7 +3600,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.18" + "source": "https://github.com/symfony/yaml/tree/v7.4.14" }, "funding": [ { @@ -3664,7 +3620,7 @@ "type": "tidelift" } ], - "time": "2026-08-30T00:47:26+00:00" + "time": "2026-06-08T20:24:16+00:00" }, { "name": "theseer/tokenizer", diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json index 3b4dd41fed04c..8634ff4464ae2 100644 --- a/vendor-bin/psalm/composer.json +++ b/vendor-bin/psalm/composer.json @@ -9,6 +9,6 @@ }, "require": { "psalm/plugin-phpunit": "^0.19.7", - "vimeo/psalm": "^6.17" + "vimeo/psalm": "^6.16" } } diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock index 195c26efe7223..2968c8d8cc7e9 100644 --- a/vendor-bin/psalm/composer.lock +++ b/vendor-bin/psalm/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a26799a4a09f2e5ab5ec5b38e55520e0", + "content-hash": "954a2a1db2fdd509b7731ef890f61298", "packages": [ { "name": "amphp/amp", - "version": "v3.1.3", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a" + "reference": "fa0ab33a6f47a82929c38d03ca47ebb71086a93f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/73c38b323ff8d790abf0f76c56fcc892bda4111a", - "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a", + "url": "https://api.github.com/repos/amphp/amp/zipball/fa0ab33a6f47a82929c38d03ca47ebb71086a93f", + "reference": "fa0ab33a6f47a82929c38d03ca47ebb71086a93f", "shasum": "" }, "require": { @@ -27,7 +27,7 @@ "require-dev": { "amphp/php-cs-fixer-config": "^2", "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "psalm/phar": "5.23.1" }, "type": "library", "autoload": { @@ -77,7 +77,7 @@ ], "support": { "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v3.1.3" + "source": "https://github.com/amphp/amp/tree/v3.1.1" }, "funding": [ { @@ -85,7 +85,7 @@ "type": "github" } ], - "time": "2026-07-19T17:59:20+00:00" + "time": "2025-08-27T21:42:00+00:00" }, { "name": "amphp/byte-stream", @@ -229,16 +229,16 @@ }, { "name": "amphp/dns", - "version": "v2.4.1", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/amphp/dns.git", - "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7" + "reference": "78eb3db5fc69bf2fc0cb503c4fcba667bc223c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/dns/zipball/ec5948bfafac808f410406e18bc7b52a2d4629b7", - "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7", + "url": "https://api.github.com/repos/amphp/dns/zipball/78eb3db5fc69bf2fc0cb503c4fcba667bc223c71", + "reference": "78eb3db5fc69bf2fc0cb503c4fcba667bc223c71", "shasum": "" }, "require": { @@ -257,7 +257,7 @@ "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^3", "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "psalm/phar": "5.20" }, "type": "library", "autoload": { @@ -306,7 +306,7 @@ ], "support": { "issues": "https://github.com/amphp/dns/issues", - "source": "https://github.com/amphp/dns/tree/v2.4.1" + "source": "https://github.com/amphp/dns/tree/v2.4.0" }, "funding": [ { @@ -314,20 +314,20 @@ "type": "github" } ], - "time": "2026-07-26T17:53:54+00:00" + "time": "2025-01-19T15:43:40+00:00" }, { "name": "amphp/parallel", - "version": "v2.4.0", + "version": "v2.3.3", "source": { "type": "git", "url": "https://github.com/amphp/parallel.git", - "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81" + "reference": "296b521137a54d3a02425b464e5aee4c93db2c60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel/zipball/37f5b2754fadc229c00f9416bd68fb8d04529a81", - "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81", + "url": "https://api.github.com/repos/amphp/parallel/zipball/296b521137a54d3a02425b464e5aee4c93db2c60", + "reference": "296b521137a54d3a02425b464e5aee4c93db2c60", "shasum": "" }, "require": { @@ -347,7 +347,7 @@ "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^3", "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "psalm/phar": "^5.18" }, "type": "library", "autoload": { @@ -390,7 +390,7 @@ ], "support": { "issues": "https://github.com/amphp/parallel/issues", - "source": "https://github.com/amphp/parallel/tree/v2.4.0" + "source": "https://github.com/amphp/parallel/tree/v2.3.3" }, "funding": [ { @@ -398,7 +398,7 @@ "type": "github" } ], - "time": "2026-05-16T16:54:01+00:00" + "time": "2025-11-15T06:23:42+00:00" }, { "name": "amphp/parser", @@ -464,16 +464,16 @@ }, { "name": "amphp/pipeline", - "version": "v1.2.7", + "version": "v1.2.3", "source": { "type": "git", "url": "https://github.com/amphp/pipeline.git", - "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17" + "reference": "7b52598c2e9105ebcddf247fc523161581930367" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/pipeline/zipball/cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", - "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", + "url": "https://api.github.com/repos/amphp/pipeline/zipball/7b52598c2e9105ebcddf247fc523161581930367", + "reference": "7b52598c2e9105ebcddf247fc523161581930367", "shasum": "" }, "require": { @@ -485,7 +485,7 @@ "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^3", "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "psalm/phar": "^5.18" }, "type": "library", "autoload": { @@ -519,7 +519,7 @@ ], "support": { "issues": "https://github.com/amphp/pipeline/issues", - "source": "https://github.com/amphp/pipeline/tree/v1.2.7" + "source": "https://github.com/amphp/pipeline/tree/v1.2.3" }, "funding": [ { @@ -527,20 +527,20 @@ "type": "github" } ], - "time": "2026-07-26T14:50:43+00:00" + "time": "2025-03-16T16:33:53+00:00" }, { "name": "amphp/process", - "version": "v2.1.0", + "version": "v2.0.3", "source": { "type": "git", "url": "https://github.com/amphp/process.git", - "reference": "583959df17d00304ad7b0b32285373f985935643" + "reference": "52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/process/zipball/583959df17d00304ad7b0b32285373f985935643", - "reference": "583959df17d00304ad7b0b32285373f985935643", + "url": "https://api.github.com/repos/amphp/process/zipball/52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d", + "reference": "52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d", "shasum": "" }, "require": { @@ -554,7 +554,7 @@ "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^3", "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "psalm/phar": "^5.4" }, "type": "library", "autoload": { @@ -587,7 +587,7 @@ "homepage": "https://amphp.org/process", "support": { "issues": "https://github.com/amphp/process/issues", - "source": "https://github.com/amphp/process/tree/v2.1.0" + "source": "https://github.com/amphp/process/tree/v2.0.3" }, "funding": [ { @@ -595,7 +595,7 @@ "type": "github" } ], - "time": "2026-05-31T15:11:55+00:00" + "time": "2024-04-19T03:13:44+00:00" }, { "name": "amphp/serialization", @@ -666,16 +666,16 @@ }, { "name": "amphp/socket", - "version": "v2.4.1", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/amphp/socket.git", - "reference": "b347be5aff6b2cc025208bb4d896607eb470c018" + "reference": "dadb63c5d3179fd83803e29dfeac27350e619314" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/socket/zipball/b347be5aff6b2cc025208bb4d896607eb470c018", - "reference": "b347be5aff6b2cc025208bb4d896607eb470c018", + "url": "https://api.github.com/repos/amphp/socket/zipball/dadb63c5d3179fd83803e29dfeac27350e619314", + "reference": "dadb63c5d3179fd83803e29dfeac27350e619314", "shasum": "" }, "require": { @@ -738,7 +738,7 @@ ], "support": { "issues": "https://github.com/amphp/socket/issues", - "source": "https://github.com/amphp/socket/tree/v2.4.1" + "source": "https://github.com/amphp/socket/tree/v2.4.0" }, "funding": [ { @@ -746,7 +746,7 @@ "type": "github" } ], - "time": "2026-08-22T18:13:20+00:00" + "time": "2026-04-19T15:09:56+00:00" }, { "name": "amphp/sync", @@ -825,29 +825,28 @@ }, { "name": "composer/pcre", - "version": "3.4.0", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", - "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, "conflict": { - "phpstan/phpstan": "<2.2.2" + "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^9" + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { @@ -885,7 +884,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.4.0" + "source": "https://github.com/composer/pcre/tree/3.3.2" }, "funding": [ { @@ -895,9 +894,13 @@ { "url": "https://github.com/composer", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" } ], - "time": "2026-06-07T11:47:49+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "composer/semver", @@ -1633,19 +1636,20 @@ }, { "name": "nikic/php-parser", - "version": "v5.9.0", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", - "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { + "ext-ctype": "*", "ext-json": "*", "ext-tokenizer": "*", "php": ">=7.4" @@ -1684,9 +1688,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2026-09-13T18:51:52+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -1866,16 +1870,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.5", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" + "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", - "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", + "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", "shasum": "" }, "require": { @@ -1907,9 +1911,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" }, - "time": "2026-08-31T16:05:28+00:00" + "time": "2026-01-25T14:56:51+00:00" }, { "name": "psalm/plugin-phpunit", @@ -2182,16 +2186,16 @@ }, { "name": "revolt/event-loop", - "version": "v1.0.9", + "version": "v1.0.8", "source": { "type": "git", "url": "https://github.com/revoltphp/event-loop.git", - "reference": "44061cf513e53c6200372fc935ac42271566295d" + "reference": "b6fc06dce8e9b523c9946138fa5e62181934f91c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/44061cf513e53c6200372fc935ac42271566295d", - "reference": "44061cf513e53c6200372fc935ac42271566295d", + "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/b6fc06dce8e9b523c9946138fa5e62181934f91c", + "reference": "b6fc06dce8e9b523c9946138fa5e62181934f91c", "shasum": "" }, "require": { @@ -2201,7 +2205,7 @@ "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^9", - "psalm/phar": "6.16.*" + "psalm/phar": "^5.15" }, "type": "library", "extra": { @@ -2248,35 +2252,35 @@ ], "support": { "issues": "https://github.com/revoltphp/event-loop/issues", - "source": "https://github.com/revoltphp/event-loop/tree/v1.0.9" + "source": "https://github.com/revoltphp/event-loop/tree/v1.0.8" }, - "time": "2026-05-16T17:55:38+00:00" + "time": "2025-08-27T21:33:23+00:00" }, { "name": "sebastian/diff", - "version": "7.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6" + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6", - "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^12.5.33", - "symfony/process": "^7.4.17" + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -2309,27 +2313,15 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/7.0.1" + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "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/diff", - "type": "tidelift" } ], - "time": "2026-08-25T15:35:54+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { "name": "spatie/array-to-xml", @@ -2401,16 +2393,16 @@ }, { "name": "symfony/console", - "version": "v7.4.19", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063" + "reference": "1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063", + "url": "https://api.github.com/repos/symfony/console/zipball/1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707", + "reference": "1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707", "shasum": "" }, "require": { @@ -2475,7 +2467,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.19" + "source": "https://github.com/symfony/console/tree/v7.4.8" }, "funding": [ { @@ -2495,20 +2487,20 @@ "type": "tidelift" } ], - "time": "2026-09-13T10:38:41+00:00" + "time": "2026-03-30T13:54:39+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.7.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -2521,7 +2513,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.7-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -2546,7 +2538,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -2557,29 +2549,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2026-06-05T06:23:12+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/filesystem", - "version": "v7.4.18", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" + "reference": "58b9790d12f9670b7f53a1c1738febd3108970a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", - "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/58b9790d12f9670b7f53a1c1738febd3108970a5", + "reference": "58b9790d12f9670b7f53a1c1738febd3108970a5", "shasum": "" }, "require": { @@ -2616,7 +2604,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.18" + "source": "https://github.com/symfony/filesystem/tree/v7.4.8" }, "funding": [ { @@ -2636,7 +2624,7 @@ "type": "tidelift" } ], - "time": "2026-08-23T10:03:40+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "symfony/polyfill-ctype", @@ -2723,16 +2711,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e", + "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e", "shasum": "" }, "require": { @@ -2781,7 +2769,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0" }, "funding": [ { @@ -2801,20 +2789,20 @@ "type": "tidelift" } ], - "time": "2026-07-28T08:25:59+00:00" + "time": "2026-04-26T13:13:48+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.42.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { @@ -2866,7 +2854,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0" }, "funding": [ { @@ -2886,20 +2874,20 @@ "type": "tidelift" } ], - "time": "2026-08-07T06:33:24+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315", + "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315", "shasum": "" }, "require": { @@ -2951,7 +2939,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0" }, "funding": [ { @@ -2971,20 +2959,20 @@ "type": "tidelift" } ], - "time": "2026-05-27T06:59:30+00:00" + "time": "2026-04-10T17:25:58+00:00" }, { "name": "symfony/polyfill-php84", - "version": "v1.38.1", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" + "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06", + "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06", "shasum": "" }, "require": { @@ -3031,7 +3019,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0" }, "funding": [ { @@ -3051,20 +3039,20 @@ "type": "tidelift" } ], - "time": "2026-05-26T12:51:13+00:00" + "time": "2026-04-10T18:47:49+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.7.3", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", - "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -3082,7 +3070,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.7-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -3118,7 +3106,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -3138,20 +3126,20 @@ "type": "tidelift" } ], - "time": "2026-07-27T15:39:01+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/string", - "version": "v7.4.19", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" + "reference": "114ac57257d75df748eda23dd003878080b8e688" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", - "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "url": "https://api.github.com/repos/symfony/string/zipball/114ac57257d75df748eda23dd003878080b8e688", + "reference": "114ac57257d75df748eda23dd003878080b8e688", "shasum": "" }, "require": { @@ -3209,7 +3197,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.19" + "source": "https://github.com/symfony/string/tree/v7.4.8" }, "funding": [ { @@ -3229,20 +3217,20 @@ "type": "tidelift" } ], - "time": "2026-09-11T14:46:58+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "vimeo/psalm", - "version": "6.17.0", + "version": "6.16.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "056992a902704e2b691d33f9bfe4a063e43c79f2" + "reference": "f1f5de594dc76faf8784e02d3dc4716c91c6f6ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/056992a902704e2b691d33f9bfe4a063e43c79f2", - "reference": "056992a902704e2b691d33f9bfe4a063e43c79f2", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/f1f5de594dc76faf8784e02d3dc4716c91c6f6ac", + "reference": "f1f5de594dc76faf8784e02d3dc4716c91c6f6ac", "shasum": "" }, "require": { @@ -3266,7 +3254,7 @@ "netresearch/jsonmapper": "^5.0", "nikic/php-parser": "^5.0.0", "php": "~8.1.31 || ~8.2.27 || ~8.3.16 || ~8.4.3 || ~8.5.0", - "sebastian/diff": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", "symfony/console": "^6.0 || ^7.0 || ^8.0", "symfony/filesystem": "~6.3.12 || ~6.4.3 || ^7.0.3 || ^8.0", @@ -3347,20 +3335,20 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2026-09-10T11:14:46+00:00" + "time": "2026-03-19T10:56:09+00:00" }, { "name": "webmozart/assert", - "version": "2.4.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70" + "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/2ccb7c2e821038c03a3e6e1700c570c158c55f70", - "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/eb0d790f735ba6cff25c683a85a1da0eadeff9e4", + "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4", "shasum": "" }, "require": { @@ -3376,11 +3364,7 @@ }, "type": "library", "extra": { - "psalm": { - "pluginClass": "Webmozart\\Assert\\PsalmPlugin" - }, "branch-alias": { - "dev-master": "2.0-dev", "dev-feature/2-0": "2.0-dev" } }, @@ -3411,9 +3395,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.4.1" + "source": "https://github.com/webmozarts/assert/tree/2.3.0" }, - "time": "2026-06-15T15:31:57+00:00" + "time": "2026-04-11T10:33:05+00:00" } ], "packages-dev": [], From 0c5b241f11512be1dbc8526fb323be7634bdbcb1 Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Mon, 21 Sep 2026 00:09:37 +0200 Subject: [PATCH 3/3] fix: restore the vendored tool locks They were overwritten by a copy of another checkout's vendor-bin, made to run php-cs-fixer locally, and swept into the previous commit. That pinned psalm back to 6.16.1 while the baseline is written by 6.17.0, which is what the static analysis was objecting to. Assisted-by: ClaudeCode:claude-opus-5 Signed-off-by: skjnldsv --- vendor-bin/behat/composer.json | 2 +- vendor-bin/behat/composer.lock | 250 ++++++++++++++----------- vendor-bin/psalm/composer.json | 2 +- vendor-bin/psalm/composer.lock | 324 +++++++++++++++++---------------- 4 files changed, 319 insertions(+), 259 deletions(-) diff --git a/vendor-bin/behat/composer.json b/vendor-bin/behat/composer.json index ee677f2cca194..fd91913a07ebe 100644 --- a/vendor-bin/behat/composer.json +++ b/vendor-bin/behat/composer.json @@ -6,7 +6,7 @@ "sort-packages": true }, "require-dev": { - "behat/behat": "^3.27", + "behat/behat": "^3.33", "phpunit/phpunit": "^11.5" } } diff --git a/vendor-bin/behat/composer.lock b/vendor-bin/behat/composer.lock index 0d38344f0b045..b29fbd47a9524 100644 --- a/vendor-bin/behat/composer.lock +++ b/vendor-bin/behat/composer.lock @@ -4,27 +4,28 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a90428f676335593636bc15ebd71bd47", + "content-hash": "3e75ac62494172e6796af48ae596b949", "packages": [], "packages-dev": [ { "name": "behat/behat", - "version": "v3.32.0", + "version": "v3.33.0", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9" + "reference": "a76fe078164e72d3183afc48224a6e8902dccaf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9", - "reference": "b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9", + "url": "https://api.github.com/repos/Behat/Behat/zipball/a76fe078164e72d3183afc48224a6e8902dccaf0", + "reference": "a76fe078164e72d3183afc48224a6e8902dccaf0", "shasum": "" }, "require": { "behat/gherkin": "^4.17.0", "composer-runtime-api": "^2.2", "composer/xdebug-handler": "^1.4 || ^2.0 || ^3.0", + "cucumber/tag-expressions": "^11.0", "ext-mbstring": "*", "nikic/php-parser": "^4.19.2 || ^5.2", "php": ">=8.2 <8.6", @@ -93,7 +94,7 @@ ], "support": { "issues": "https://github.com/Behat/Behat/issues", - "source": "https://github.com/Behat/Behat/tree/v3.32.0" + "source": "https://github.com/Behat/Behat/tree/v3.33.0" }, "funding": [ { @@ -109,7 +110,7 @@ "type": "github" } ], - "time": "2026-06-20T08:34:52+00:00" + "time": "2026-09-07T14:37:47+00:00" }, { "name": "behat/gherkin", @@ -336,6 +337,49 @@ ], "time": "2024-05-06T16:37:16+00:00" }, + { + "name": "cucumber/tag-expressions", + "version": "v11.0.1", + "source": { + "type": "git", + "url": "https://github.com/cucumber/tag-expressions-php.git", + "reference": "d88e12c03a2069b4336156dc7831a6b78cce5e1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cucumber/tag-expressions-php/zipball/d88e12c03a2069b4336156dc7831a6b78cce5e1d", + "reference": "d88e12c03a2069b4336156dc7831a6b78cce5e1d", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.75", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5.46 || ^11.5 || ^13.0", + "symfony/yaml": "^6.4 || ^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cucumber\\TagExpressions\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Cucumber Tag Expressions parser", + "homepage": "https://github.com/cucumber/tag-expressions", + "support": { + "issues": "https://github.com/cucumber/tag-expressions/issues", + "source": "https://github.com/cucumber/tag-expressions-php/tree/v11.0.1" + }, + "time": "2026-03-24T10:42:49+00:00" + }, { "name": "myclabs/deep-copy", "version": "1.14.0", @@ -398,16 +442,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.8.0", + "version": "v5.9.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", - "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", "shasum": "" }, "require": { @@ -449,9 +493,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" }, - "time": "2026-07-04T14:30:18+00:00" + "time": "2026-09-13T18:51:52+00:00" }, { "name": "phar-io/manifest", @@ -2205,16 +2249,16 @@ }, { "name": "symfony/config", - "version": "v7.4.14", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "7b665e443381ea7c4db03eb03b4bf79ea2b020eb" + "reference": "696e12da8eea497a1a3808d714b43ff67a7df43e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7b665e443381ea7c4db03eb03b4bf79ea2b020eb", - "reference": "7b665e443381ea7c4db03eb03b4bf79ea2b020eb", + "url": "https://api.github.com/repos/symfony/config/zipball/696e12da8eea497a1a3808d714b43ff67a7df43e", + "reference": "696e12da8eea497a1a3808d714b43ff67a7df43e", "shasum": "" }, "require": { @@ -2260,7 +2304,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.4.14" + "source": "https://github.com/symfony/config/tree/v7.4.17" }, "funding": [ { @@ -2280,20 +2324,20 @@ "type": "tidelift" } ], - "time": "2026-06-09T07:51:57+00:00" + "time": "2026-08-20T09:55:18+00:00" }, { "name": "symfony/console", - "version": "v7.4.14", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87" + "reference": "3a1973458b153f566a8d7499bc06ece323d60063" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", + "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", + "reference": "3a1973458b153f566a8d7499bc06ece323d60063", "shasum": "" }, "require": { @@ -2358,7 +2402,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.14" + "source": "https://github.com/symfony/console/tree/v7.4.19" }, "funding": [ { @@ -2378,20 +2422,20 @@ "type": "tidelift" } ], - "time": "2026-06-16T11:50:14+00:00" + "time": "2026-09-13T10:38:41+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.4.14", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "2c8c64a33e2e6911579e1ff79a8e06c27d48d402" + "reference": "f318ac9da5aba0be2cf43ecdd562c05a33bc11c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2c8c64a33e2e6911579e1ff79a8e06c27d48d402", - "reference": "2c8c64a33e2e6911579e1ff79a8e06c27d48d402", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f318ac9da5aba0be2cf43ecdd562c05a33bc11c0", + "reference": "f318ac9da5aba0be2cf43ecdd562c05a33bc11c0", "shasum": "" }, "require": { @@ -2442,7 +2486,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.4.14" + "source": "https://github.com/symfony/dependency-injection/tree/v7.4.17" }, "funding": [ { @@ -2462,20 +2506,20 @@ "type": "tidelift" } ], - "time": "2026-06-24T07:41:05+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.7.0", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b" + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/50f59d1f3ca46d41ac911f97a78626b6756af35b", - "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", "shasum": "" }, "require": { @@ -2513,7 +2557,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" }, "funding": [ { @@ -2533,20 +2577,20 @@ "type": "tidelift" } ], - "time": "2026-04-13T15:52:40+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.4.14", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "51fe3d170227be8d1772214b82ae506e15ed78ff" + "reference": "d269974ee93c61d03620ffee358355bfdb471d66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/51fe3d170227be8d1772214b82ae506e15ed78ff", - "reference": "51fe3d170227be8d1772214b82ae506e15ed78ff", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d269974ee93c61d03620ffee358355bfdb471d66", + "reference": "d269974ee93c61d03620ffee358355bfdb471d66", "shasum": "" }, "require": { @@ -2598,7 +2642,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.14" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.17" }, "funding": [ { @@ -2618,20 +2662,20 @@ "type": "tidelift" } ], - "time": "2026-06-06T11:10:32+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.7.0", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32" + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/ccba7060602b7fed0b03c85bf025257f76d9ef32", - "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", "shasum": "" }, "require": { @@ -2678,7 +2722,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" }, "funding": [ { @@ -2698,20 +2742,20 @@ "type": "tidelift" } ], - "time": "2026-01-05T13:30:16+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/filesystem", - "version": "v7.4.11", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50" + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d721ea61b4a5fba8c5b6e7c1feda19efea144b50", - "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", "shasum": "" }, "require": { @@ -2748,7 +2792,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.11" + "source": "https://github.com/symfony/filesystem/tree/v7.4.18" }, "funding": [ { @@ -2768,7 +2812,7 @@ "type": "tidelift" } ], - "time": "2026-05-11T16:38:44+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/polyfill-ctype", @@ -2855,16 +2899,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.38.1", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "e9247d281d694a5120554d9afaf54e070e88a603" + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/e9247d281d694a5120554d9afaf54e070e88a603", - "reference": "e9247d281d694a5120554d9afaf54e070e88a603", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", "shasum": "" }, "require": { @@ -2913,7 +2957,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.38.1" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" }, "funding": [ { @@ -2933,20 +2977,20 @@ "type": "tidelift" } ], - "time": "2026-05-26T05:58:03+00:00" + "time": "2026-07-28T08:25:59+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.38.0", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", "shasum": "" }, "require": { @@ -2998,7 +3042,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { @@ -3018,7 +3062,7 @@ "type": "tidelift" } ], - "time": "2026-05-25T13:48:31+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -3107,16 +3151,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.7.0", + "version": "v3.7.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a" + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d25d82433a80eba6aa0e6c24b61d7370d99e444a", - "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { @@ -3170,7 +3214,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" }, "funding": [ { @@ -3190,20 +3234,20 @@ "type": "tidelift" } ], - "time": "2026-03-28T09:44:51+00:00" + "time": "2026-07-27T15:39:01+00:00" }, { "name": "symfony/string", - "version": "v7.4.13", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "961683010db3b27ec6ebcd7308e6e1ee8fa7ffde" + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/961683010db3b27ec6ebcd7308e6e1ee8fa7ffde", - "reference": "961683010db3b27ec6ebcd7308e6e1ee8fa7ffde", + "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", "shasum": "" }, "require": { @@ -3261,7 +3305,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.13" + "source": "https://github.com/symfony/string/tree/v7.4.19" }, "funding": [ { @@ -3281,20 +3325,20 @@ "type": "tidelift" } ], - "time": "2026-05-23T15:23:29+00:00" + "time": "2026-09-11T14:46:58+00:00" }, { "name": "symfony/translation", - "version": "v7.4.14", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a1af4dacb24eb7ef4f1ca71b94da8ddbce572281" + "reference": "2ee1e4a3b32a528a642babe041ff7c440b213b4b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a1af4dacb24eb7ef4f1ca71b94da8ddbce572281", - "reference": "a1af4dacb24eb7ef4f1ca71b94da8ddbce572281", + "url": "https://api.github.com/repos/symfony/translation/zipball/2ee1e4a3b32a528a642babe041ff7c440b213b4b", + "reference": "2ee1e4a3b32a528a642babe041ff7c440b213b4b", "shasum": "" }, "require": { @@ -3361,7 +3405,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.4.14" + "source": "https://github.com/symfony/translation/tree/v7.4.17" }, "funding": [ { @@ -3381,20 +3425,20 @@ "type": "tidelift" } ], - "time": "2026-06-06T09:33:19+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.7.0", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d" + "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/0ab302977a952b42fd51475c4ebac81f8da0a95d", - "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/ccb206b98faccc511ebae8e5fad50f2dc0b30621", + "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621", "shasum": "" }, "require": { @@ -3443,7 +3487,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.7.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.7.1" }, "funding": [ { @@ -3463,20 +3507,20 @@ "type": "tidelift" } ], - "time": "2026-01-05T13:30:16+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.4.14", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "0118811b1d59f323bf131250b3fb919febfece28" + "reference": "d6a87acbe48cbc707b9aba7f1a6c2215aab02603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0118811b1d59f323bf131250b3fb919febfece28", - "reference": "0118811b1d59f323bf131250b3fb919febfece28", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d6a87acbe48cbc707b9aba7f1a6c2215aab02603", + "reference": "d6a87acbe48cbc707b9aba7f1a6c2215aab02603", "shasum": "" }, "require": { @@ -3524,7 +3568,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.4.14" + "source": "https://github.com/symfony/var-exporter/tree/v7.4.18" }, "funding": [ { @@ -3544,20 +3588,20 @@ "type": "tidelift" } ], - "time": "2026-06-27T08:41:53+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/yaml", - "version": "v7.4.14", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "f8f328665ace2370d1e10645b807ba1646dc7dcc" + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/f8f328665ace2370d1e10645b807ba1646dc7dcc", - "reference": "f8f328665ace2370d1e10645b807ba1646dc7dcc", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", "shasum": "" }, "require": { @@ -3600,7 +3644,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.14" + "source": "https://github.com/symfony/yaml/tree/v7.4.18" }, "funding": [ { @@ -3620,7 +3664,7 @@ "type": "tidelift" } ], - "time": "2026-06-08T20:24:16+00:00" + "time": "2026-08-30T00:47:26+00:00" }, { "name": "theseer/tokenizer", diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json index 8634ff4464ae2..3b4dd41fed04c 100644 --- a/vendor-bin/psalm/composer.json +++ b/vendor-bin/psalm/composer.json @@ -9,6 +9,6 @@ }, "require": { "psalm/plugin-phpunit": "^0.19.7", - "vimeo/psalm": "^6.16" + "vimeo/psalm": "^6.17" } } diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock index 2968c8d8cc7e9..195c26efe7223 100644 --- a/vendor-bin/psalm/composer.lock +++ b/vendor-bin/psalm/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "954a2a1db2fdd509b7731ef890f61298", + "content-hash": "a26799a4a09f2e5ab5ec5b38e55520e0", "packages": [ { "name": "amphp/amp", - "version": "v3.1.1", + "version": "v3.1.3", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "fa0ab33a6f47a82929c38d03ca47ebb71086a93f" + "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/fa0ab33a6f47a82929c38d03ca47ebb71086a93f", - "reference": "fa0ab33a6f47a82929c38d03ca47ebb71086a93f", + "url": "https://api.github.com/repos/amphp/amp/zipball/73c38b323ff8d790abf0f76c56fcc892bda4111a", + "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a", "shasum": "" }, "require": { @@ -27,7 +27,7 @@ "require-dev": { "amphp/php-cs-fixer-config": "^2", "phpunit/phpunit": "^9", - "psalm/phar": "5.23.1" + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { @@ -77,7 +77,7 @@ ], "support": { "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v3.1.1" + "source": "https://github.com/amphp/amp/tree/v3.1.3" }, "funding": [ { @@ -85,7 +85,7 @@ "type": "github" } ], - "time": "2025-08-27T21:42:00+00:00" + "time": "2026-07-19T17:59:20+00:00" }, { "name": "amphp/byte-stream", @@ -229,16 +229,16 @@ }, { "name": "amphp/dns", - "version": "v2.4.0", + "version": "v2.4.1", "source": { "type": "git", "url": "https://github.com/amphp/dns.git", - "reference": "78eb3db5fc69bf2fc0cb503c4fcba667bc223c71" + "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/dns/zipball/78eb3db5fc69bf2fc0cb503c4fcba667bc223c71", - "reference": "78eb3db5fc69bf2fc0cb503c4fcba667bc223c71", + "url": "https://api.github.com/repos/amphp/dns/zipball/ec5948bfafac808f410406e18bc7b52a2d4629b7", + "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7", "shasum": "" }, "require": { @@ -257,7 +257,7 @@ "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^3", "phpunit/phpunit": "^9", - "psalm/phar": "5.20" + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { @@ -306,7 +306,7 @@ ], "support": { "issues": "https://github.com/amphp/dns/issues", - "source": "https://github.com/amphp/dns/tree/v2.4.0" + "source": "https://github.com/amphp/dns/tree/v2.4.1" }, "funding": [ { @@ -314,20 +314,20 @@ "type": "github" } ], - "time": "2025-01-19T15:43:40+00:00" + "time": "2026-07-26T17:53:54+00:00" }, { "name": "amphp/parallel", - "version": "v2.3.3", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/amphp/parallel.git", - "reference": "296b521137a54d3a02425b464e5aee4c93db2c60" + "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel/zipball/296b521137a54d3a02425b464e5aee4c93db2c60", - "reference": "296b521137a54d3a02425b464e5aee4c93db2c60", + "url": "https://api.github.com/repos/amphp/parallel/zipball/37f5b2754fadc229c00f9416bd68fb8d04529a81", + "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81", "shasum": "" }, "require": { @@ -347,7 +347,7 @@ "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^3", "phpunit/phpunit": "^9", - "psalm/phar": "^5.18" + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { @@ -390,7 +390,7 @@ ], "support": { "issues": "https://github.com/amphp/parallel/issues", - "source": "https://github.com/amphp/parallel/tree/v2.3.3" + "source": "https://github.com/amphp/parallel/tree/v2.4.0" }, "funding": [ { @@ -398,7 +398,7 @@ "type": "github" } ], - "time": "2025-11-15T06:23:42+00:00" + "time": "2026-05-16T16:54:01+00:00" }, { "name": "amphp/parser", @@ -464,16 +464,16 @@ }, { "name": "amphp/pipeline", - "version": "v1.2.3", + "version": "v1.2.7", "source": { "type": "git", "url": "https://github.com/amphp/pipeline.git", - "reference": "7b52598c2e9105ebcddf247fc523161581930367" + "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/pipeline/zipball/7b52598c2e9105ebcddf247fc523161581930367", - "reference": "7b52598c2e9105ebcddf247fc523161581930367", + "url": "https://api.github.com/repos/amphp/pipeline/zipball/cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", + "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", "shasum": "" }, "require": { @@ -485,7 +485,7 @@ "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^3", "phpunit/phpunit": "^9", - "psalm/phar": "^5.18" + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { @@ -519,7 +519,7 @@ ], "support": { "issues": "https://github.com/amphp/pipeline/issues", - "source": "https://github.com/amphp/pipeline/tree/v1.2.3" + "source": "https://github.com/amphp/pipeline/tree/v1.2.7" }, "funding": [ { @@ -527,20 +527,20 @@ "type": "github" } ], - "time": "2025-03-16T16:33:53+00:00" + "time": "2026-07-26T14:50:43+00:00" }, { "name": "amphp/process", - "version": "v2.0.3", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/amphp/process.git", - "reference": "52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d" + "reference": "583959df17d00304ad7b0b32285373f985935643" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/process/zipball/52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d", - "reference": "52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d", + "url": "https://api.github.com/repos/amphp/process/zipball/583959df17d00304ad7b0b32285373f985935643", + "reference": "583959df17d00304ad7b0b32285373f985935643", "shasum": "" }, "require": { @@ -554,7 +554,7 @@ "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^3", "phpunit/phpunit": "^9", - "psalm/phar": "^5.4" + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { @@ -587,7 +587,7 @@ "homepage": "https://amphp.org/process", "support": { "issues": "https://github.com/amphp/process/issues", - "source": "https://github.com/amphp/process/tree/v2.0.3" + "source": "https://github.com/amphp/process/tree/v2.1.0" }, "funding": [ { @@ -595,7 +595,7 @@ "type": "github" } ], - "time": "2024-04-19T03:13:44+00:00" + "time": "2026-05-31T15:11:55+00:00" }, { "name": "amphp/serialization", @@ -666,16 +666,16 @@ }, { "name": "amphp/socket", - "version": "v2.4.0", + "version": "v2.4.1", "source": { "type": "git", "url": "https://github.com/amphp/socket.git", - "reference": "dadb63c5d3179fd83803e29dfeac27350e619314" + "reference": "b347be5aff6b2cc025208bb4d896607eb470c018" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/socket/zipball/dadb63c5d3179fd83803e29dfeac27350e619314", - "reference": "dadb63c5d3179fd83803e29dfeac27350e619314", + "url": "https://api.github.com/repos/amphp/socket/zipball/b347be5aff6b2cc025208bb4d896607eb470c018", + "reference": "b347be5aff6b2cc025208bb4d896607eb470c018", "shasum": "" }, "require": { @@ -738,7 +738,7 @@ ], "support": { "issues": "https://github.com/amphp/socket/issues", - "source": "https://github.com/amphp/socket/tree/v2.4.0" + "source": "https://github.com/amphp/socket/tree/v2.4.1" }, "funding": [ { @@ -746,7 +746,7 @@ "type": "github" } ], - "time": "2026-04-19T15:09:56+00:00" + "time": "2026-08-22T18:13:20+00:00" }, { "name": "amphp/sync", @@ -825,28 +825,29 @@ }, { "name": "composer/pcre", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, "conflict": { - "phpstan/phpstan": "<1.11.10" + "phpstan/phpstan": "<2.2.2" }, "require-dev": { - "phpstan/phpstan": "^1.12 || ^2", - "phpstan/phpstan-strict-rules": "^1 || ^2", - "phpunit/phpunit": "^8 || ^9" + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9" }, "type": "library", "extra": { @@ -884,7 +885,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.2" + "source": "https://github.com/composer/pcre/tree/3.4.0" }, "funding": [ { @@ -894,13 +895,9 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-11-12T16:29:46+00:00" + "time": "2026-06-07T11:47:49+00:00" }, { "name": "composer/semver", @@ -1636,20 +1633,19 @@ }, { "name": "nikic/php-parser", - "version": "v5.7.0", + "version": "v5.9.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", "shasum": "" }, "require": { - "ext-ctype": "*", "ext-json": "*", "ext-tokenizer": "*", "php": ">=7.4" @@ -1688,9 +1684,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" }, - "time": "2025-12-06T11:56:16+00:00" + "time": "2026-09-13T18:51:52+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -1870,16 +1866,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.2", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", "shasum": "" }, "require": { @@ -1911,9 +1907,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" }, - "time": "2026-01-25T14:56:51+00:00" + "time": "2026-08-31T16:05:28+00:00" }, { "name": "psalm/plugin-phpunit", @@ -2186,16 +2182,16 @@ }, { "name": "revolt/event-loop", - "version": "v1.0.8", + "version": "v1.0.9", "source": { "type": "git", "url": "https://github.com/revoltphp/event-loop.git", - "reference": "b6fc06dce8e9b523c9946138fa5e62181934f91c" + "reference": "44061cf513e53c6200372fc935ac42271566295d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/b6fc06dce8e9b523c9946138fa5e62181934f91c", - "reference": "b6fc06dce8e9b523c9946138fa5e62181934f91c", + "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/44061cf513e53c6200372fc935ac42271566295d", + "reference": "44061cf513e53c6200372fc935ac42271566295d", "shasum": "" }, "require": { @@ -2205,7 +2201,7 @@ "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^9", - "psalm/phar": "^5.15" + "psalm/phar": "6.16.*" }, "type": "library", "extra": { @@ -2252,35 +2248,35 @@ ], "support": { "issues": "https://github.com/revoltphp/event-loop/issues", - "source": "https://github.com/revoltphp/event-loop/tree/v1.0.8" + "source": "https://github.com/revoltphp/event-loop/tree/v1.0.9" }, - "time": "2025-08-27T21:33:23+00:00" + "time": "2026-05-16T17:55:38+00:00" }, { "name": "sebastian/diff", - "version": "6.0.2", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6", + "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^12.5.33", + "symfony/process": "^7.4.17" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -2313,15 +2309,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.1" }, "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/diff", + "type": "tidelift" } ], - "time": "2024-07-03T04:53:05+00:00" + "time": "2026-08-25T15:35:54+00:00" }, { "name": "spatie/array-to-xml", @@ -2393,16 +2401,16 @@ }, { "name": "symfony/console", - "version": "v7.4.8", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707" + "reference": "3a1973458b153f566a8d7499bc06ece323d60063" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707", - "reference": "1e92e39c51f95b88e3d66fa2d9f06d1fb45dd707", + "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", + "reference": "3a1973458b153f566a8d7499bc06ece323d60063", "shasum": "" }, "require": { @@ -2467,7 +2475,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.8" + "source": "https://github.com/symfony/console/tree/v7.4.19" }, "funding": [ { @@ -2487,20 +2495,20 @@ "type": "tidelift" } ], - "time": "2026-03-30T13:54:39+00:00" + "time": "2026-09-13T10:38:41+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.6.0", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", "shasum": "" }, "require": { @@ -2513,7 +2521,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -2538,7 +2546,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" }, "funding": [ { @@ -2549,25 +2557,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:21:43+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/filesystem", - "version": "v7.4.8", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "58b9790d12f9670b7f53a1c1738febd3108970a5" + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/58b9790d12f9670b7f53a1c1738febd3108970a5", - "reference": "58b9790d12f9670b7f53a1c1738febd3108970a5", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", "shasum": "" }, "require": { @@ -2604,7 +2616,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.8" + "source": "https://github.com/symfony/filesystem/tree/v7.4.18" }, "funding": [ { @@ -2624,7 +2636,7 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/polyfill-ctype", @@ -2711,16 +2723,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.37.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e" + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e", - "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", "shasum": "" }, "require": { @@ -2769,7 +2781,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" }, "funding": [ { @@ -2789,20 +2801,20 @@ "type": "tidelift" } ], - "time": "2026-04-26T13:13:48+00:00" + "time": "2026-07-28T08:25:59+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.37.0", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "3833d7255cc303546435cb650316bff708a1c75c" + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", - "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", "shasum": "" }, "require": { @@ -2854,7 +2866,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { @@ -2874,20 +2886,20 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.37.0", + "version": "v1.38.2", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315" + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315", - "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", "shasum": "" }, "require": { @@ -2939,7 +2951,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" }, "funding": [ { @@ -2959,20 +2971,20 @@ "type": "tidelift" } ], - "time": "2026-04-10T17:25:58+00:00" + "time": "2026-05-27T06:59:30+00:00" }, { "name": "symfony/polyfill-php84", - "version": "v1.37.0", + "version": "v1.38.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06" + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06", - "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", "shasum": "" }, "require": { @@ -3019,7 +3031,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" }, "funding": [ { @@ -3039,20 +3051,20 @@ "type": "tidelift" } ], - "time": "2026-04-10T18:47:49+00:00" + "time": "2026-05-26T12:51:13+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.6.1", + "version": "v3.7.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", - "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { @@ -3070,7 +3082,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -3106,7 +3118,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" }, "funding": [ { @@ -3126,20 +3138,20 @@ "type": "tidelift" } ], - "time": "2025-07-15T11:30:57+00:00" + "time": "2026-07-27T15:39:01+00:00" }, { "name": "symfony/string", - "version": "v7.4.8", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "114ac57257d75df748eda23dd003878080b8e688" + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/114ac57257d75df748eda23dd003878080b8e688", - "reference": "114ac57257d75df748eda23dd003878080b8e688", + "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", "shasum": "" }, "require": { @@ -3197,7 +3209,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.8" + "source": "https://github.com/symfony/string/tree/v7.4.19" }, "funding": [ { @@ -3217,20 +3229,20 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-09-11T14:46:58+00:00" }, { "name": "vimeo/psalm", - "version": "6.16.1", + "version": "6.17.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "f1f5de594dc76faf8784e02d3dc4716c91c6f6ac" + "reference": "056992a902704e2b691d33f9bfe4a063e43c79f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/f1f5de594dc76faf8784e02d3dc4716c91c6f6ac", - "reference": "f1f5de594dc76faf8784e02d3dc4716c91c6f6ac", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/056992a902704e2b691d33f9bfe4a063e43c79f2", + "reference": "056992a902704e2b691d33f9bfe4a063e43c79f2", "shasum": "" }, "require": { @@ -3254,7 +3266,7 @@ "netresearch/jsonmapper": "^5.0", "nikic/php-parser": "^5.0.0", "php": "~8.1.31 || ~8.2.27 || ~8.3.16 || ~8.4.3 || ~8.5.0", - "sebastian/diff": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", "symfony/console": "^6.0 || ^7.0 || ^8.0", "symfony/filesystem": "~6.3.12 || ~6.4.3 || ^7.0.3 || ^8.0", @@ -3335,20 +3347,20 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2026-03-19T10:56:09+00:00" + "time": "2026-09-10T11:14:46+00:00" }, { "name": "webmozart/assert", - "version": "2.3.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4" + "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/eb0d790f735ba6cff25c683a85a1da0eadeff9e4", - "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/2ccb7c2e821038c03a3e6e1700c570c158c55f70", + "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70", "shasum": "" }, "require": { @@ -3364,7 +3376,11 @@ }, "type": "library", "extra": { + "psalm": { + "pluginClass": "Webmozart\\Assert\\PsalmPlugin" + }, "branch-alias": { + "dev-master": "2.0-dev", "dev-feature/2-0": "2.0-dev" } }, @@ -3395,9 +3411,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.3.0" + "source": "https://github.com/webmozarts/assert/tree/2.4.1" }, - "time": "2026-04-11T10:33:05+00:00" + "time": "2026-06-15T15:31:57+00:00" } ], "packages-dev": [],