From 98a09bcc37549db7bf671a4e074767ea0989b10b Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Tue, 25 Nov 2025 19:55:22 +0000 Subject: [PATCH 1/7] Deps: Updated PHP packages --- composer.lock | 112 +++++++++++++++++++++++++------------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/composer.lock b/composer.lock index 881521a43d8..799616abfc3 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.362.1", + "version": "3.363.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "f29a49b74d5ee771f13432e16d58651de91f7e79" + "reference": "f8b5f125248daa8942144b4771c041a63ec41900" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f29a49b74d5ee771f13432e16d58651de91f7e79", - "reference": "f29a49b74d5ee771f13432e16d58651de91f7e79", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f8b5f125248daa8942144b4771c041a63ec41900", + "reference": "f8b5f125248daa8942144b4771c041a63ec41900", "shasum": "" }, "require": { @@ -153,9 +153,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.362.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.363.2" }, - "time": "2025-11-20T19:10:40+00:00" + "time": "2025-11-25T19:04:55+00:00" }, { "name": "bacon/bacon-qr-code", @@ -214,16 +214,16 @@ }, { "name": "brick/math", - "version": "0.14.0", + "version": "0.14.1", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" + "reference": "f05858549e5f9d7bb45875a75583240a38a281d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", - "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "url": "https://api.github.com/repos/brick/math/zipball/f05858549e5f9d7bb45875a75583240a38a281d0", + "reference": "f05858549e5f9d7bb45875a75583240a38a281d0", "shasum": "" }, "require": { @@ -262,7 +262,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.14.0" + "source": "https://github.com/brick/math/tree/0.14.1" }, "funding": [ { @@ -270,7 +270,7 @@ "type": "github" } ], - "time": "2025-08-29T12:40:03+00:00" + "time": "2025-11-24T14:40:29+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -1739,16 +1739,16 @@ }, { "name": "laravel/framework", - "version": "v12.39.0", + "version": "v12.40.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "1a6176129ef28eaf42b6b4a6250025120c3d8dac" + "reference": "2e986acbf9acf62cba13400bc23c4d639bf188b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1a6176129ef28eaf42b6b4a6250025120c3d8dac", - "reference": "1a6176129ef28eaf42b6b4a6250025120c3d8dac", + "url": "https://api.github.com/repos/laravel/framework/zipball/2e986acbf9acf62cba13400bc23c4d639bf188b9", + "reference": "2e986acbf9acf62cba13400bc23c4d639bf188b9", "shasum": "" }, "require": { @@ -1860,7 +1860,7 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.7.0", + "orchestra/testbench-core": "^10.8.0", "pda/pheanstalk": "^5.0.6|^7.0.0", "php-http/discovery": "^1.15", "phpstan/phpstan": "^2.0", @@ -1954,20 +1954,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-11-18T15:16:10+00:00" + "time": "2025-11-25T16:16:33+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.7", + "version": "v0.3.8", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc" + "reference": "096748cdfb81988f60090bbb839ce3205ace0d35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/a1891d362714bc40c8d23b0b1d7090f022ea27cc", - "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc", + "url": "https://api.github.com/repos/laravel/prompts/zipball/096748cdfb81988f60090bbb839ce3205ace0d35", + "reference": "096748cdfb81988f60090bbb839ce3205ace0d35", "shasum": "" }, "require": { @@ -1983,7 +1983,7 @@ "require-dev": { "illuminate/collections": "^10.0|^11.0|^12.0", "mockery/mockery": "^1.5", - "pestphp/pest": "^2.3|^3.4", + "pestphp/pest": "^2.3|^3.4|^4.0", "phpstan/phpstan": "^1.12.28", "phpstan/phpstan-mockery": "^1.1.3" }, @@ -2011,22 +2011,22 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.7" + "source": "https://github.com/laravel/prompts/tree/v0.3.8" }, - "time": "2025-09-19T13:47:56+00:00" + "time": "2025-11-21T20:52:52+00:00" }, { "name": "laravel/serializable-closure", - "version": "v2.0.6", + "version": "v2.0.7", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "038ce42edee619599a1debb7e81d7b3759492819" + "reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/038ce42edee619599a1debb7e81d7b3759492819", - "reference": "038ce42edee619599a1debb7e81d7b3759492819", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/cb291e4c998ac50637c7eeb58189c14f5de5b9dd", + "reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd", "shasum": "" }, "require": { @@ -2035,7 +2035,7 @@ "require-dev": { "illuminate/support": "^10.0|^11.0|^12.0", "nesbot/carbon": "^2.67|^3.0", - "pestphp/pest": "^2.36|^3.0", + "pestphp/pest": "^2.36|^3.0|^4.0", "phpstan/phpstan": "^2.0", "symfony/var-dumper": "^6.2.0|^7.0.0" }, @@ -2074,20 +2074,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2025-10-09T13:42:30+00:00" + "time": "2025-11-21T20:52:36+00:00" }, { "name": "laravel/socialite", - "version": "v5.23.1", + "version": "v5.23.2", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "83d7523c97c1101d288126948947891319eef800" + "reference": "41e65d53762d33d617bf0253330d672cb95e624b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/83d7523c97c1101d288126948947891319eef800", - "reference": "83d7523c97c1101d288126948947891319eef800", + "url": "https://api.github.com/repos/laravel/socialite/zipball/41e65d53762d33d617bf0253330d672cb95e624b", + "reference": "41e65d53762d33d617bf0253330d672cb95e624b", "shasum": "" }, "require": { @@ -2103,9 +2103,9 @@ }, "require-dev": { "mockery/mockery": "^1.0", - "orchestra/testbench": "^4.0|^5.0|^6.0|^7.0|^8.0|^9.0|^10.0", + "orchestra/testbench": "^4.18|^5.20|^6.47|^7.55|^8.36|^9.15|^10.8", "phpstan/phpstan": "^1.12.23", - "phpunit/phpunit": "^8.0|^9.3|^10.4|^11.5" + "phpunit/phpunit": "^8.0|^9.3|^10.4|^11.5|^12.0" }, "type": "library", "extra": { @@ -2146,20 +2146,20 @@ "issues": "https://github.com/laravel/socialite/issues", "source": "https://github.com/laravel/socialite" }, - "time": "2025-10-27T15:36:41+00:00" + "time": "2025-11-21T14:00:38+00:00" }, { "name": "laravel/tinker", - "version": "v2.10.1", + "version": "v2.10.2", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3" + "reference": "3bcb5f62d6f837e0f093a601e26badafb127bd4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3", - "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3", + "url": "https://api.github.com/repos/laravel/tinker/zipball/3bcb5f62d6f837e0f093a601e26badafb127bd4c", + "reference": "3bcb5f62d6f837e0f093a601e26badafb127bd4c", "shasum": "" }, "require": { @@ -2210,9 +2210,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.10.1" + "source": "https://github.com/laravel/tinker/tree/v2.10.2" }, - "time": "2025-01-27T14:24:01+00:00" + "time": "2025-11-20T16:29:12+00:00" }, { "name": "league/commonmark", @@ -3466,16 +3466,16 @@ }, { "name": "nette/utils", - "version": "v4.0.8", + "version": "v4.0.9", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede" + "reference": "505a30ad386daa5211f08a318e47015b501cad30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/c930ca4e3cf4f17dcfb03037703679d2396d2ede", - "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede", + "url": "https://api.github.com/repos/nette/utils/zipball/505a30ad386daa5211f08a318e47015b501cad30", + "reference": "505a30ad386daa5211f08a318e47015b501cad30", "shasum": "" }, "require": { @@ -3549,9 +3549,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.8" + "source": "https://github.com/nette/utils/tree/v4.0.9" }, - "time": "2025-08-06T21:43:34+00:00" + "time": "2025-10-31T00:45:47+00:00" }, { "name": "nikic/php-parser", @@ -4120,16 +4120,16 @@ }, { "name": "predis/predis", - "version": "v3.2.0", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "9e9deec4dfd3ebf65d32eb368f498c646ba2ecd8" + "reference": "153097374b39a2f737fe700ebcd725642526cdec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/9e9deec4dfd3ebf65d32eb368f498c646ba2ecd8", - "reference": "9e9deec4dfd3ebf65d32eb368f498c646ba2ecd8", + "url": "https://api.github.com/repos/predis/predis/zipball/153097374b39a2f737fe700ebcd725642526cdec", + "reference": "153097374b39a2f737fe700ebcd725642526cdec", "shasum": "" }, "require": { @@ -4171,7 +4171,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v3.2.0" + "source": "https://github.com/predis/predis/tree/v3.3.0" }, "funding": [ { @@ -4179,7 +4179,7 @@ "type": "github" } ], - "time": "2025-08-06T06:41:24+00:00" + "time": "2025-11-24T17:48:50+00:00" }, { "name": "psr/clock", From 9de294343dd7309bb00e6a0011dfbd443e8620c4 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Tue, 25 Nov 2025 21:08:45 +0000 Subject: [PATCH 2/7] Notifications: Fixed error on comment notification Fixes an error where a used relation (entity) on the comment was resulting in null due to eager loading the notification when deserializing from the queue, where Laravel was then mis-matching the names when performing the eager loading. For #5918 --- app/Activity/Models/Comment.php | 14 +++++++++++++- .../Handlers/BaseNotificationHandler.php | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/Activity/Models/Comment.php b/app/Activity/Models/Comment.php index 4d6c7fa41c6..0f8e5d785a1 100644 --- a/app/Activity/Models/Comment.php +++ b/app/Activity/Models/Comment.php @@ -41,7 +41,19 @@ class Comment extends Model implements Loggable, OwnableInterface */ public function entity(): MorphTo { - return $this->morphTo('commentable'); + // We specifically define null here to avoid the different name (commentable) + // being used by Laravel eager loading instead of the method name, which it was doing + // in some scenarios like when deserialized when going through the queue system. + // So we instead specify the type and id column names to use. + // Related to: + // https://github.com/laravel/framework/pull/24815 + // https://github.com/laravel/framework/issues/27342 + // https://github.com/laravel/framework/issues/47953 + // (and probably more) + + // Ultimately, we could just align the method name to 'commentable' but that would be a potential + // breaking change and not really worthwhile in a patch due to the risk of creating extra problems. + return $this->morphTo(null, 'commentable_type', 'commentable_id'); } /** diff --git a/app/Activity/Notifications/Handlers/BaseNotificationHandler.php b/app/Activity/Notifications/Handlers/BaseNotificationHandler.php index bc6f2e22fc0..efa46b0d6ff 100644 --- a/app/Activity/Notifications/Handlers/BaseNotificationHandler.php +++ b/app/Activity/Notifications/Handlers/BaseNotificationHandler.php @@ -20,6 +20,7 @@ protected function sendNotificationToUserIds(string $notification, array $userId { $users = User::query()->whereIn('id', array_unique($userIds))->get(); + /** @var User $user */ foreach ($users as $user) { // Prevent sending to the user that initiated the activity if ($user->id === $initiator->id) { From adfac3e30ebb5a407cb72e3546f0756ab63f298d Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Wed, 3 Dec 2025 13:34:00 +0000 Subject: [PATCH 3/7] OIDC: Updated state handling to prevent loss from other requests Which was occuring in chrome, where background requests to the PWA manifest, or opensearch, endpoint caused OIDC to fail due to lost state since it was only flashed to the session. This persists it with a manual TTL. Added tests to cover. Manually tested against Azure. For #5929 --- app/Access/Controllers/OidcController.php | 22 +++++++------ tests/Auth/OidcTest.php | 39 ++++++++++++++++++++--- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/app/Access/Controllers/OidcController.php b/app/Access/Controllers/OidcController.php index 055d4c1403f..654ed692880 100644 --- a/app/Access/Controllers/OidcController.php +++ b/app/Access/Controllers/OidcController.php @@ -9,11 +9,9 @@ class OidcController extends Controller { - protected OidcService $oidcService; - - public function __construct(OidcService $oidcService) - { - $this->oidcService = $oidcService; + public function __construct( + protected OidcService $oidcService + ) { $this->middleware('guard:oidc'); } @@ -30,7 +28,7 @@ public function login() return redirect('/login'); } - session()->flash('oidc_state', $loginDetails['state']); + session()->put('oidc_state', time() . ':' . $loginDetails['state']); return redirect($loginDetails['url']); } @@ -41,10 +39,16 @@ public function login() */ public function callback(Request $request) { - $storedState = session()->pull('oidc_state'); $responseState = $request->query('state'); + $splitState = explode(':', session()->pull('oidc_state', ':'), 2); + if (count($splitState) !== 2) { + $splitState = [null, null]; + } + + [$storedStateTime, $storedState] = $splitState; + $threeMinutesAgo = time() - 3 * 60; - if ($storedState !== $responseState) { + if (!$storedState || $storedState !== $responseState || intval($storedStateTime) < $threeMinutesAgo) { $this->showErrorNotification(trans('errors.oidc_fail_authed', ['system' => config('oidc.name')])); return redirect('/login'); @@ -62,7 +66,7 @@ public function callback(Request $request) } /** - * Log the user out then start the OIDC RP-initiated logout process. + * Log the user out, then start the OIDC RP-initiated logout process. */ public function logout() { diff --git a/tests/Auth/OidcTest.php b/tests/Auth/OidcTest.php index a0db1c2ba00..710e5375785 100644 --- a/tests/Auth/OidcTest.php +++ b/tests/Auth/OidcTest.php @@ -138,7 +138,7 @@ public function test_login_success_flow() { // Start auth $this->post('/oidc/login'); - $state = session()->get('oidc_state'); + $state = explode(':', session()->get('oidc_state'), 2)[1]; $transactions = $this->mockHttpClient([$this->getMockAuthorizationResponse([ 'email' => 'benny@example.com', @@ -190,6 +190,35 @@ public function test_callback_fails_if_no_state_present_or_matching() $this->assertSessionError('Login using SingleSignOn-Testing failed, system did not provide successful authorization'); } + public function test_callback_works_even_if_other_request_made_by_session() + { + $this->mockHttpClient([$this->getMockAuthorizationResponse([ + 'email' => 'benny@example.com', + 'sub' => 'benny1010101', + ])]); + + $this->post('/oidc/login'); + $state = explode(':', session()->get('oidc_state'), 2)[1]; + + $this->get('/'); + + $resp = $this->get("/oidc/callback?code=SplxlOBeZQQYbYS6WxSbIA&state={$state}"); + $resp->assertRedirect('/'); + } + + public function test_callback_fails_if_state_timestamp_is_too_old() + { + $this->post('/oidc/login'); + $state = explode(':', session()->get('oidc_state'), 2)[1]; + session()->put('oidc_state', (time() - 60 * 4) . ':' . $state); + + $this->get('/'); + + $resp = $this->get("/oidc/callback?code=SplxlOBeZQQYbYS6WxSbIA&state={$state}"); + $resp->assertRedirect('/login'); + $this->assertSessionError('Login using SingleSignOn-Testing failed, system did not provide successful authorization'); + } + public function test_dump_user_details_option_outputs_as_expected() { config()->set('oidc.dump_user_details', true); @@ -797,7 +826,7 @@ public function test_pkce_used_on_authorize_and_access() { // Start auth $resp = $this->post('/oidc/login'); - $state = session()->get('oidc_state'); + $state = explode(':', session()->get('oidc_state'), 2)[1]; $pkceCode = session()->get('oidc_pkce_code'); $this->assertGreaterThan(30, strlen($pkceCode)); @@ -825,7 +854,7 @@ public function test_userinfo_endpoint_used_if_missing_claims_in_id_token() { config()->set('oidc.display_name_claims', 'first_name|last_name'); $this->post('/oidc/login'); - $state = session()->get('oidc_state'); + $state = explode(':', session()->get('oidc_state'), 2)[1]; $client = $this->mockHttpClient([ $this->getMockAuthorizationResponse(['name' => null]), @@ -973,7 +1002,7 @@ public function test_userinfo_endpoint_not_called_if_empty_groups_array_provided ]); $this->post('/oidc/login'); - $state = session()->get('oidc_state'); + $state = explode(':', session()->get('oidc_state'), 2)[1]; $client = $this->mockHttpClient([$this->getMockAuthorizationResponse([ 'groups' => [], ])]); @@ -999,7 +1028,7 @@ protected function withAutodiscovery(): void protected function runLogin($claimOverrides = [], $additionalHttpResponses = []): TestResponse { $this->post('/oidc/login'); - $state = session()->get('oidc_state'); + $state = explode(':', session()->get('oidc_state'), 2)[1] ?? ''; $this->mockHttpClient([$this->getMockAuthorizationResponse($claimOverrides), ...$additionalHttpResponses]); return $this->get('/oidc/callback?code=SplxlOBeZQQYbYS6WxSbIA&state=' . $state); From 2fde803c766203b58f57a119aa96a50f55328167 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Wed, 3 Dec 2025 13:55:00 +0000 Subject: [PATCH 4/7] Deps: Updated PHP package versions Needed to update some tests due to charset casing change in Symfony 7.4 --- composer.lock | 539 ++++++++++++++++--------------- tests/Api/ApiDocsTest.php | 2 +- tests/Auth/Saml2Test.php | 4 +- tests/ThemeTest.php | 4 +- tests/Uploads/AttachmentTest.php | 4 +- 5 files changed, 283 insertions(+), 270 deletions(-) diff --git a/composer.lock b/composer.lock index 799616abfc3..d5b443e24a7 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.363.2", + "version": "3.365.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "f8b5f125248daa8942144b4771c041a63ec41900" + "reference": "ce4b9a5fe8bad81caf40a3cca8069eba750103b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f8b5f125248daa8942144b4771c041a63ec41900", - "reference": "f8b5f125248daa8942144b4771c041a63ec41900", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ce4b9a5fe8bad81caf40a3cca8069eba750103b1", + "reference": "ce4b9a5fe8bad81caf40a3cca8069eba750103b1", "shasum": "" }, "require": { @@ -153,9 +153,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.363.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.365.0" }, - "time": "2025-11-25T19:04:55+00:00" + "time": "2025-12-02T16:06:36+00:00" }, { "name": "bacon/bacon-qr-code", @@ -984,31 +984,31 @@ }, { "name": "fruitcake/php-cors", - "version": "v1.3.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/fruitcake/php-cors.git", - "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + "reference": "38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", - "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379", + "reference": "38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379", "shasum": "" }, "require": { - "php": "^7.4|^8.0", - "symfony/http-foundation": "^4.4|^5.4|^6|^7" + "php": "^8.1", + "symfony/http-foundation": "^5.4|^6.4|^7.3|^8" }, "require-dev": { - "phpstan/phpstan": "^1.4", + "phpstan/phpstan": "^2", "phpunit/phpunit": "^9", - "squizlabs/php_codesniffer": "^3.5" + "squizlabs/php_codesniffer": "^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -1039,7 +1039,7 @@ ], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", - "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + "source": "https://github.com/fruitcake/php-cors/tree/v1.4.0" }, "funding": [ { @@ -1051,7 +1051,7 @@ "type": "github" } ], - "time": "2023-10-12T05:21:21+00:00" + "time": "2025-12-03T09:33:47+00:00" }, { "name": "graham-campbell/result-type", @@ -1596,16 +1596,16 @@ }, { "name": "intervention/image", - "version": "3.11.4", + "version": "3.11.5", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "8c49eb21a6d2572532d1bc425964264f3e496846" + "reference": "76e96d3809d53dd8d597005634a733d4b2f6c2c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/8c49eb21a6d2572532d1bc425964264f3e496846", - "reference": "8c49eb21a6d2572532d1bc425964264f3e496846", + "url": "https://api.github.com/repos/Intervention/image/zipball/76e96d3809d53dd8d597005634a733d4b2f6c2c3", + "reference": "76e96d3809d53dd8d597005634a733d4b2f6c2c3", "shasum": "" }, "require": { @@ -1637,11 +1637,11 @@ { "name": "Oliver Vogel", "email": "oliver@intervention.io", - "homepage": "https://intervention.io/" + "homepage": "https://intervention.io" } ], - "description": "PHP image manipulation", - "homepage": "https://image.intervention.io/", + "description": "PHP Image Processing", + "homepage": "https://image.intervention.io", "keywords": [ "gd", "image", @@ -1652,7 +1652,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.11.4" + "source": "https://github.com/Intervention/image/tree/3.11.5" }, "funding": [ { @@ -1668,7 +1668,7 @@ "type": "ko_fi" } ], - "time": "2025-07-30T13:13:19+00:00" + "time": "2025-11-29T11:18:34+00:00" }, { "name": "knplabs/knp-snappy", @@ -1739,16 +1739,16 @@ }, { "name": "laravel/framework", - "version": "v12.40.1", + "version": "v12.41.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "2e986acbf9acf62cba13400bc23c4d639bf188b9" + "reference": "3e229b05935fd0300c632fb1f718c73046d664fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/2e986acbf9acf62cba13400bc23c4d639bf188b9", - "reference": "2e986acbf9acf62cba13400bc23c4d639bf188b9", + "url": "https://api.github.com/repos/laravel/framework/zipball/3e229b05935fd0300c632fb1f718c73046d664fc", + "reference": "3e229b05935fd0300c632fb1f718c73046d664fc", "shasum": "" }, "require": { @@ -1954,7 +1954,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-11-25T16:16:33+00:00" + "time": "2025-12-03T01:02:13+00:00" }, { "name": "laravel/prompts", @@ -2216,16 +2216,16 @@ }, { "name": "league/commonmark", - "version": "2.7.1", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "10732241927d3971d28e7ea7b5712721fa2296ca" + "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/10732241927d3971d28e7ea7b5712721fa2296ca", - "reference": "10732241927d3971d28e7ea7b5712721fa2296ca", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/4efa10c1e56488e658d10adf7b7b7dcd19940bfb", + "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb", "shasum": "" }, "require": { @@ -2262,7 +2262,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.8-dev" + "dev-main": "2.9-dev" } }, "autoload": { @@ -2319,7 +2319,7 @@ "type": "tidelift" } ], - "time": "2025-07-20T12:47:49+00:00" + "time": "2025-11-26T21:48:24+00:00" }, { "name": "league/config", @@ -2813,22 +2813,22 @@ }, { "name": "league/oauth2-client", - "version": "2.8.1", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth2-client.git", - "reference": "9df2924ca644736c835fc60466a3a60390d334f9" + "reference": "26e8c5da4f3d78cede7021e09b1330a0fc093d5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/9df2924ca644736c835fc60466a3a60390d334f9", - "reference": "9df2924ca644736c835fc60466a3a60390d334f9", + "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/26e8c5da4f3d78cede7021e09b1330a0fc093d5e", + "reference": "26e8c5da4f3d78cede7021e09b1330a0fc093d5e", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", - "php": "^7.1 || >=8.0.0 <8.5.0" + "php": "^7.1 || >=8.0.0 <8.6.0" }, "require-dev": { "mockery/mockery": "^1.3.5", @@ -2872,9 +2872,9 @@ ], "support": { "issues": "https://github.com/thephpleague/oauth2-client/issues", - "source": "https://github.com/thephpleague/oauth2-client/tree/2.8.1" + "source": "https://github.com/thephpleague/oauth2-client/tree/2.9.0" }, - "time": "2025-02-26T04:37:30+00:00" + "time": "2025-11-25T22:17:17+00:00" }, { "name": "league/uri", @@ -3296,16 +3296,16 @@ }, { "name": "nesbot/carbon", - "version": "3.10.3", + "version": "3.11.0", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f" + "reference": "bdb375400dcd162624531666db4799b36b64e4a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", - "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/bdb375400dcd162624531666db4799b36b64e4a1", + "reference": "bdb375400dcd162624531666db4799b36b64e4a1", "shasum": "" }, "require": { @@ -3313,9 +3313,9 @@ "ext-json": "*", "php": "^8.1", "psr/clock": "^1.0", - "symfony/clock": "^6.3.12 || ^7.0", + "symfony/clock": "^6.3.12 || ^7.0 || ^8.0", "symfony/polyfill-mbstring": "^1.0", - "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0" + "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0 || ^8.0" }, "provide": { "psr/clock-implementation": "1.0" @@ -3397,7 +3397,7 @@ "type": "tidelift" } ], - "time": "2025-09-06T13:39:36+00:00" + "time": "2025-12-02T21:04:28+00:00" }, { "name": "nette/schema", @@ -3466,20 +3466,20 @@ }, { "name": "nette/utils", - "version": "v4.0.9", + "version": "v4.1.0", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "505a30ad386daa5211f08a318e47015b501cad30" + "reference": "fa1f0b8261ed150447979eb22e373b7b7ad5a8e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/505a30ad386daa5211f08a318e47015b501cad30", - "reference": "505a30ad386daa5211f08a318e47015b501cad30", + "url": "https://api.github.com/repos/nette/utils/zipball/fa1f0b8261ed150447979eb22e373b7b7ad5a8e0", + "reference": "fa1f0b8261ed150447979eb22e373b7b7ad5a8e0", "shasum": "" }, "require": { - "php": "8.0 - 8.5" + "php": "8.2 - 8.5" }, "conflict": { "nette/finder": "<3", @@ -3502,7 +3502,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -3549,9 +3549,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.9" + "source": "https://github.com/nette/utils/tree/v4.1.0" }, - "time": "2025-10-31T00:45:47+00:00" + "time": "2025-12-01T17:49:23+00:00" }, { "name": "nikic/php-parser", @@ -4595,16 +4595,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.14", + "version": "v0.12.15", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "95c29b3756a23855a30566b745d218bee690bef2" + "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/95c29b3756a23855a30566b745d218bee690bef2", - "reference": "95c29b3756a23855a30566b745d218bee690bef2", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/38953bc71491c838fcb6ebcbdc41ab7483cd549c", + "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c", "shasum": "" }, "require": { @@ -4668,9 +4668,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.14" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.15" }, - "time": "2025-10-27T17:15:31+00:00" + "time": "2025-11-28T00:00:14+00:00" }, { "name": "ralouphie/getallheaders", @@ -5348,16 +5348,16 @@ }, { "name": "symfony/clock", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" + "reference": "9169f24776edde469914c1e7a1442a50f7a4e110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", - "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "url": "https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110", + "reference": "9169f24776edde469914c1e7a1442a50f7a4e110", "shasum": "" }, "require": { @@ -5402,7 +5402,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.3.0" + "source": "https://github.com/symfony/clock/tree/v7.4.0" }, "funding": [ { @@ -5413,25 +5413,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": "2025-11-12T15:39:26+00:00" }, { "name": "symfony/console", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a" + "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c28ad91448f86c5f6d9d2c70f0cf68bf135f252a", - "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a", + "url": "https://api.github.com/repos/symfony/console/zipball/0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", + "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", "shasum": "" }, "require": { @@ -5439,7 +5443,7 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2" + "symfony/string": "^7.2|^8.0" }, "conflict": { "symfony/dependency-injection": "<6.4", @@ -5453,16 +5457,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5496,7 +5500,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.3.6" + "source": "https://github.com/symfony/console/tree/v7.4.0" }, "funding": [ { @@ -5516,20 +5520,20 @@ "type": "tidelift" } ], - "time": "2025-11-04T01:21:42+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/css-selector", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "84321188c4754e64273b46b406081ad9b18e8614" + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/84321188c4754e64273b46b406081ad9b18e8614", - "reference": "84321188c4754e64273b46b406081ad9b18e8614", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135", + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135", "shasum": "" }, "require": { @@ -5565,7 +5569,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.3.6" + "source": "https://github.com/symfony/css-selector/tree/v7.4.0" }, "funding": [ { @@ -5585,7 +5589,7 @@ "type": "tidelift" } ], - "time": "2025-10-29T17:24:25+00:00" + "time": "2025-10-30T13:39:42+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5656,32 +5660,33 @@ }, { "name": "symfony/error-handler", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "bbe40bfab84323d99dab491b716ff142410a92a8" + "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/bbe40bfab84323d99dab491b716ff142410a92a8", - "reference": "bbe40bfab84323d99dab491b716ff142410a92a8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/48be2b0653594eea32dcef130cca1c811dcf25c2", + "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2", "shasum": "" }, "require": { "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/polyfill-php85": "^1.32", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", "symfony/http-kernel": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4|^7.0|^8.0", "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ @@ -5713,7 +5718,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.3.6" + "source": "https://github.com/symfony/error-handler/tree/v7.4.0" }, "funding": [ { @@ -5733,20 +5738,20 @@ "type": "tidelift" } ], - "time": "2025-10-31T19:12:50+00:00" + "time": "2025-11-05T14:29:59+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.3.3", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" + "reference": "9dddcddff1ef974ad87b3708e4b442dc38b2261d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9dddcddff1ef974ad87b3708e4b442dc38b2261d", + "reference": "9dddcddff1ef974ad87b3708e4b442dc38b2261d", "shasum": "" }, "require": { @@ -5763,13 +5768,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5797,7 +5803,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.3.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.0" }, "funding": [ { @@ -5817,7 +5823,7 @@ "type": "tidelift" } ], - "time": "2025-08-13T11:49:31+00:00" + "time": "2025-10-28T09:38:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -5897,23 +5903,23 @@ }, { "name": "symfony/finder", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f" + "reference": "340b9ed7320570f319028a2cbec46d40535e94bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f", + "url": "https://api.github.com/repos/symfony/finder/zipball/340b9ed7320570f319028a2cbec46d40535e94bd", + "reference": "340b9ed7320570f319028a2cbec46d40535e94bd", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0" + "symfony/filesystem": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5941,7 +5947,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.3.5" + "source": "https://github.com/symfony/finder/tree/v7.4.0" }, "funding": [ { @@ -5961,27 +5967,26 @@ "type": "tidelift" } ], - "time": "2025-10-15T18:45:57+00:00" + "time": "2025-11-05T05:42:40+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.3.7", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4" + "reference": "769c1720b68e964b13b58529c17d4a385c62167b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/db488a62f98f7a81d5746f05eea63a74e55bb7c4", - "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/769c1720b68e964b13b58529c17d4a385c62167b", + "reference": "769c1720b68e964b13b58529c17d4a385c62167b", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "^1.1" }, "conflict": { "doctrine/dbal": "<3.6", @@ -5990,13 +5995,13 @@ "require-dev": { "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5", - "symfony/clock": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/rate-limiter": "^6.4|^7.0" + "symfony/cache": "^6.4.12|^7.1.5|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/rate-limiter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -6024,7 +6029,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.3.7" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.0" }, "funding": [ { @@ -6044,29 +6049,29 @@ "type": "tidelift" } ], - "time": "2025-11-08T16:41:12+00:00" + "time": "2025-11-13T08:49:24+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.3.7", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce" + "reference": "7348193cd384495a755554382e4526f27c456085" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/10b8e9b748ea95fa4539c208e2487c435d3c87ce", - "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7348193cd384495a755554382e4526f27c456085", + "reference": "7348193cd384495a755554382e4526f27c456085", "shasum": "" }, "require": { "php": ">=8.2", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^7.3", - "symfony/http-foundation": "^7.3", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^7.3|^8.0", + "symfony/http-foundation": "^7.4|^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -6076,6 +6081,7 @@ "symfony/console": "<6.4", "symfony/dependency-injection": "<6.4", "symfony/doctrine-bridge": "<6.4", + "symfony/flex": "<2.10", "symfony/form": "<6.4", "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", @@ -6093,27 +6099,27 @@ }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^6.4|^7.0", - "symfony/clock": "^6.4|^7.0", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/css-selector": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", + "symfony/browser-kit": "^6.4|^7.0|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/dom-crawler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^6.4|^7.0", - "symfony/property-access": "^7.1", - "symfony/routing": "^6.4|^7.0", - "symfony/serializer": "^7.1", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/translation": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-access": "^7.1|^8.0", + "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/serializer": "^7.1|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^6.4|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0", - "symfony/var-exporter": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0|^8.0", + "symfony/validator": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0", + "symfony/var-exporter": "^6.4|^7.0|^8.0", "twig/twig": "^3.12" }, "type": "library", @@ -6142,7 +6148,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.3.7" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.0" }, "funding": [ { @@ -6162,20 +6168,20 @@ "type": "tidelift" } ], - "time": "2025-11-12T11:38:40+00:00" + "time": "2025-11-27T13:38:24+00:00" }, { "name": "symfony/mailer", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba" + "reference": "a3d9eea8cfa467ece41f0f54ba28185d74bd53fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/fd497c45ba9c10c37864e19466b090dcb60a50ba", - "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba", + "url": "https://api.github.com/repos/symfony/mailer/zipball/a3d9eea8cfa467ece41f0f54ba28185d74bd53fd", + "reference": "a3d9eea8cfa467ece41f0f54ba28185d74bd53fd", "shasum": "" }, "require": { @@ -6183,8 +6189,8 @@ "php": ">=8.2", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/mime": "^7.2", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/mime": "^7.2|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -6195,10 +6201,10 @@ "symfony/twig-bridge": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/twig-bridge": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/twig-bridge": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -6226,7 +6232,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.3.5" + "source": "https://github.com/symfony/mailer/tree/v7.4.0" }, "funding": [ { @@ -6246,24 +6252,25 @@ "type": "tidelift" } ], - "time": "2025-10-24T14:27:20+00:00" + "time": "2025-11-21T15:26:00+00:00" }, { "name": "symfony/mime", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35" + "reference": "bdb02729471be5d047a3ac4a69068748f1a6be7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35", - "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35", + "url": "https://api.github.com/repos/symfony/mime/zipball/bdb02729471be5d047a3ac4a69068748f1a6be7a", + "reference": "bdb02729471be5d047a3ac4a69068748f1a6be7a", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -6278,11 +6285,11 @@ "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/property-access": "^6.4|^7.0", - "symfony/property-info": "^6.4|^7.0", - "symfony/serializer": "^6.4.3|^7.0.3" + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-access": "^6.4|^7.0|^8.0", + "symfony/property-info": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4.3|^7.0.3|^8.0" }, "type": "library", "autoload": { @@ -6314,7 +6321,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.3.4" + "source": "https://github.com/symfony/mime/tree/v7.4.0" }, "funding": [ { @@ -6334,7 +6341,7 @@ "type": "tidelift" } ], - "time": "2025-09-16T08:38:17+00:00" + "time": "2025-11-16T10:14:42+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7167,16 +7174,16 @@ }, { "name": "symfony/process", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" + "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", + "url": "https://api.github.com/repos/symfony/process/zipball/7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", + "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", "shasum": "" }, "require": { @@ -7208,7 +7215,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.3.4" + "source": "https://github.com/symfony/process/tree/v7.4.0" }, "funding": [ { @@ -7228,20 +7235,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-10-16T11:21:06+00:00" }, { "name": "symfony/routing", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091" + "reference": "4720254cb2644a0b876233d258a32bf017330db7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/c97abe725f2a1a858deca629a6488c8fc20c3091", - "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091", + "url": "https://api.github.com/repos/symfony/routing/zipball/4720254cb2644a0b876233d258a32bf017330db7", + "reference": "4720254cb2644a0b876233d258a32bf017330db7", "shasum": "" }, "require": { @@ -7255,11 +7262,11 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7293,7 +7300,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.3.6" + "source": "https://github.com/symfony/routing/tree/v7.4.0" }, "funding": [ { @@ -7313,7 +7320,7 @@ "type": "tidelift" } ], - "time": "2025-11-05T07:57:47+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/service-contracts", @@ -7404,22 +7411,23 @@ }, { "name": "symfony/string", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f96476035142921000338bad71e5247fbc138872" + "reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", - "reference": "f96476035142921000338bad71e5247fbc138872", + "url": "https://api.github.com/repos/symfony/string/zipball/d50e862cb0a0e0886f73ca1f31b865efbb795003", + "reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-grapheme": "~1.33", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, @@ -7427,11 +7435,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7470,7 +7478,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.4" + "source": "https://github.com/symfony/string/tree/v7.4.0" }, "funding": [ { @@ -7490,27 +7498,27 @@ "type": "tidelift" } ], - "time": "2025-09-11T14:36:48+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/translation", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "ec25870502d0c7072d086e8ffba1420c85965174" + "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/ec25870502d0c7072d086e8ffba1420c85965174", - "reference": "ec25870502d0c7072d086e8ffba1420c85965174", + "url": "https://api.github.com/repos/symfony/translation/zipball/2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", + "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5|^3.0" + "symfony/translation-contracts": "^2.5.3|^3.3" }, "conflict": { "nikic/php-parser": "<5.0", @@ -7529,17 +7537,17 @@ "require-dev": { "nikic/php-parser": "^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0" + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7570,7 +7578,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.3.4" + "source": "https://github.com/symfony/translation/tree/v7.4.0" }, "funding": [ { @@ -7590,7 +7598,7 @@ "type": "tidelift" } ], - "time": "2025-09-07T11:39:36+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/translation-contracts", @@ -7676,16 +7684,16 @@ }, { "name": "symfony/uid", - "version": "v7.3.1", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb" + "reference": "2498e9f81b7baa206f44de583f2f48350b90142c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/a69f69f3159b852651a6bf45a9fdd149520525bb", - "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb", + "url": "https://api.github.com/repos/symfony/uid/zipball/2498e9f81b7baa206f44de583f2f48350b90142c", + "reference": "2498e9f81b7baa206f44de583f2f48350b90142c", "shasum": "" }, "require": { @@ -7693,7 +7701,7 @@ "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7730,7 +7738,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.3.1" + "source": "https://github.com/symfony/uid/tree/v7.4.0" }, "funding": [ { @@ -7741,25 +7749,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-06-27T19:55:54+00:00" + "time": "2025-09-25T11:02:55+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d" + "reference": "41fd6c4ae28c38b294b42af6db61446594a0dece" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/476c4ae17f43a9a36650c69879dcf5b1e6ae724d", - "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/41fd6c4ae28c38b294b42af6db61446594a0dece", + "reference": "41fd6c4ae28c38b294b42af6db61446594a0dece", "shasum": "" }, "require": { @@ -7771,10 +7783,10 @@ "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/uid": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/uid": "^6.4|^7.0|^8.0", "twig/twig": "^3.12" }, "bin": [ @@ -7813,7 +7825,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.3.5" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.0" }, "funding": [ { @@ -7833,7 +7845,7 @@ "type": "tidelift" } ], - "time": "2025-09-27T09:00:46+00:00" + "time": "2025-10-27T20:36:44+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -9192,16 +9204,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.44", + "version": "11.5.45", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c346885c95423eda3f65d85a194aaa24873cda82" + "reference": "faf5fff4fb9beb290affa53f812b05380819c51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c346885c95423eda3f65d85a194aaa24873cda82", - "reference": "c346885c95423eda3f65d85a194aaa24873cda82", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/faf5fff4fb9beb290affa53f812b05380819c51a", + "reference": "faf5fff4fb9beb290affa53f812b05380819c51a", "shasum": "" }, "require": { @@ -9273,7 +9285,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.44" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.45" }, "funding": [ { @@ -9297,7 +9309,7 @@ "type": "tidelift" } ], - "time": "2025-11-13T07:17:35+00:00" + "time": "2025-12-01T07:38:43+00:00" }, { "name": "sebastian/cli-parser", @@ -10462,26 +10474,27 @@ }, { "name": "symfony/dom-crawler", - "version": "v7.3.3", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba" + "reference": "8f3e7464fe7e77294686e935956a6a8ccf7442c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/efa076ea0eeff504383ff0dcf827ea5ce15690ba", - "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8f3e7464fe7e77294686e935956a6a8ccf7442c4", + "reference": "8f3e7464fe7e77294686e935956a6a8ccf7442c4", "shasum": "" }, "require": { "masterminds/html5": "^2.6", "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/css-selector": "^6.4|^7.0" + "symfony/css-selector": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -10509,7 +10522,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.3.3" + "source": "https://github.com/symfony/dom-crawler/tree/v7.4.0" }, "funding": [ { @@ -10529,7 +10542,7 @@ "type": "tidelift" } ], - "time": "2025-08-06T20:13:54+00:00" + "time": "2025-10-31T09:30:03+00:00" }, { "name": "theseer/tokenizer", diff --git a/tests/Api/ApiDocsTest.php b/tests/Api/ApiDocsTest.php index a1603e0ef82..bdf753e87f7 100644 --- a/tests/Api/ApiDocsTest.php +++ b/tests/Api/ApiDocsTest.php @@ -22,7 +22,7 @@ public function test_docs_page_returns_view_with_docs_content() $resp->assertStatus(200); $resp->assertSee(url('/api/docs.json')); $resp->assertSee('Show a JSON view of the API docs data.'); - $resp->assertHeader('Content-Type', 'text/html; charset=UTF-8'); + $resp->assertHeader('Content-Type', 'text/html; charset=utf-8'); } public function test_docs_json_endpoint_returns_json() diff --git a/tests/Auth/Saml2Test.php b/tests/Auth/Saml2Test.php index 3de6238edc8..6a3063bcf51 100644 --- a/tests/Auth/Saml2Test.php +++ b/tests/Auth/Saml2Test.php @@ -36,7 +36,7 @@ protected function setUp(): void public function test_metadata_endpoint_displays_xml_as_expected() { $req = $this->get('/saml2/metadata'); - $req->assertHeader('Content-Type', 'text/xml; charset=UTF-8'); + $req->assertHeader('Content-Type', 'text/xml; charset=utf-8'); $req->assertSee('md:EntityDescriptor'); $req->assertSee(url('/saml2/acs')); } @@ -51,7 +51,7 @@ public function test_metadata_endpoint_loads_when_autoloading_with_bad_url_set() $req = $this->get('/saml2/metadata'); $req->assertOk(); - $req->assertHeader('Content-Type', 'text/xml; charset=UTF-8'); + $req->assertHeader('Content-Type', 'text/xml; charset=utf-8'); $req->assertSee('md:EntityDescriptor'); } diff --git a/tests/ThemeTest.php b/tests/ThemeTest.php index 4dff384186c..841ff78caf0 100644 --- a/tests/ThemeTest.php +++ b/tests/ThemeTest.php @@ -478,7 +478,7 @@ public function test_public_folder_contents_accessible_via_route() $resp = $this->asAdmin()->get("/theme/{$themeFolderName}/file.txt"); $resp->assertStreamedContent($text); - $resp->assertHeader('Content-Type', 'text/plain; charset=UTF-8'); + $resp->assertHeader('Content-Type', 'text/plain; charset=utf-8'); $resp->assertHeader('Cache-Control', 'max-age=86400, private'); $resp = $this->asAdmin()->get("/theme/{$themeFolderName}/image.png"); @@ -487,7 +487,7 @@ public function test_public_folder_contents_accessible_via_route() $resp = $this->asAdmin()->get("/theme/{$themeFolderName}/file.css"); $resp->assertStreamedContent($css); - $resp->assertHeader('Content-Type', 'text/css; charset=UTF-8'); + $resp->assertHeader('Content-Type', 'text/css; charset=utf-8'); $resp->assertHeader('Cache-Control', 'max-age=86400, private'); }); } diff --git a/tests/Uploads/AttachmentTest.php b/tests/Uploads/AttachmentTest.php index 2eaf21d9c6f..b443ca9f117 100644 --- a/tests/Uploads/AttachmentTest.php +++ b/tests/Uploads/AttachmentTest.php @@ -323,7 +323,7 @@ public function test_file_access_with_open_query_param_provides_inline_response_ $attachmentGet = $this->get($attachment->getUrl(true)); // http-foundation/Response does some 'fixing' of responses to add charsets to text responses. - $attachmentGet->assertHeader('Content-Type', 'text/plain; charset=UTF-8'); + $attachmentGet->assertHeader('Content-Type', 'text/plain; charset=utf-8'); $attachmentGet->assertHeader('Content-Disposition', 'inline; filename="upload_test_file.txt"'); $attachmentGet->assertHeader('X-Content-Type-Options', 'nosniff'); @@ -339,7 +339,7 @@ public function test_html_file_access_with_open_forces_plain_content_type() $attachmentGet = $this->get($attachment->getUrl(true)); // http-foundation/Response does some 'fixing' of responses to add charsets to text responses. - $attachmentGet->assertHeader('Content-Type', 'text/plain; charset=UTF-8'); + $attachmentGet->assertHeader('Content-Type', 'text/plain; charset=utf-8'); $attachmentGet->assertHeader('Content-Disposition', 'inline; filename="test_file.html"'); $this->files->deleteAllAttachmentFiles(); From 65f7b61c1f55594607dfa152acec83a035d8aa5c Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Wed, 3 Dec 2025 14:10:09 +0000 Subject: [PATCH 5/7] Sessions: Ignored extra meta/dist content in history tracking For #5925 Added tests to cover. Extracted existing test to place with similiar sessions tests --- app/Http/Middleware/StartSessionExtended.php | 5 +- tests/SessionTest.php | 53 ++++++++++++++++++++ tests/Uploads/ImageTest.php | 23 --------- 3 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 tests/SessionTest.php diff --git a/app/Http/Middleware/StartSessionExtended.php b/app/Http/Middleware/StartSessionExtended.php index 26cd250ac34..8c5c7cf18b9 100644 --- a/app/Http/Middleware/StartSessionExtended.php +++ b/app/Http/Middleware/StartSessionExtended.php @@ -14,7 +14,10 @@ class StartSessionExtended extends Middleware { protected static array $pathPrefixesExcludedFromHistory = [ - 'uploads/images/' + 'uploads/images/', + 'dist/', + 'manifest.json', + 'opensearch.xml', ]; /** diff --git a/tests/SessionTest.php b/tests/SessionTest.php new file mode 100644 index 00000000000..3a1300722ff --- /dev/null +++ b/tests/SessionTest.php @@ -0,0 +1,53 @@ +set('filesystems.images', 'local_secure'); + $this->asEditor(); + $page = $this->entities->page(); + $result = $this->files->uploadGalleryImageToPage($this, $page); + $expectedPath = storage_path($result['path']); + $this->assertFileExists($expectedPath); + + $this->get('/books'); + $this->assertEquals(url('/books'), session()->previousUrl()); + + $resp = $this->get($result['path']); + $resp->assertOk(); + $resp->assertHeader('Content-Type', 'image/png'); + + $this->assertEquals(url('/books'), session()->previousUrl()); + + if (file_exists($expectedPath)) { + unlink($expectedPath); + } + } + + public function test_pwa_manifest_is_not_tracked_in_session_history() + { + $this->asEditor()->get('/books'); + $this->get('/manifest.json'); + + $this->assertEquals(url('/books'), session()->previousUrl()); + } + + public function test_dist_dir_access_is_not_tracked_in_session_history() + { + $this->asEditor()->get('/books'); + $this->get('/dist/sub/hello.txt'); + + $this->assertEquals(url('/books'), session()->previousUrl()); + } + + public function test_opensearch_is_not_tracked_in_session_history() + { + $this->asEditor()->get('/books'); + $this->get('/opensearch.xml'); + + $this->assertEquals(url('/books'), session()->previousUrl()); + } +} diff --git a/tests/Uploads/ImageTest.php b/tests/Uploads/ImageTest.php index f36be87023d..2aad158c966 100644 --- a/tests/Uploads/ImageTest.php +++ b/tests/Uploads/ImageTest.php @@ -429,29 +429,6 @@ public function test_system_images_remain_public_with_local_secure() } } - public function test_secure_images_not_tracked_in_session_history() - { - config()->set('filesystems.images', 'local_secure'); - $this->asEditor(); - $page = $this->entities->page(); - $result = $this->files->uploadGalleryImageToPage($this, $page); - $expectedPath = storage_path($result['path']); - $this->assertFileExists($expectedPath); - - $this->get('/books'); - $this->assertEquals(url('/books'), session()->previousUrl()); - - $resp = $this->get($result['path']); - $resp->assertOk(); - $resp->assertHeader('Content-Type', 'image/png'); - - $this->assertEquals(url('/books'), session()->previousUrl()); - - if (file_exists($expectedPath)) { - unlink($expectedPath); - } - } - public function test_system_images_remain_public_with_local_secure_restricted() { config()->set('filesystems.images', 'local_secure_restricted'); From 1d87b513be321da7625c083387077da2f4209597 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Tue, 9 Dec 2025 20:40:48 +0000 Subject: [PATCH 6/7] Deps: Updated PHP package versions --- composer.json | 2 +- composer.lock | 265 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 170 insertions(+), 97 deletions(-) diff --git a/composer.json b/composer.json index ab33e87a46c..7e7412976d6 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,7 @@ "league/flysystem-aws-s3-v3": "^3.0", "league/html-to-markdown": "^5.0.0", "league/oauth2-client": "^2.6", - "onelogin/php-saml": "^4.0", + "onelogin/php-saml": "^4.3.1", "phpseclib/phpseclib": "^3.0", "pragmarx/google2fa": "^8.0", "predis/predis": "^3.2", diff --git a/composer.lock b/composer.lock index d5b443e24a7..98f2d460634 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "506bcb9f80a5fd736b79c8e138efafa0", + "content-hash": "9f946fb1755acd72dcc63d0c3af637e9", "packages": [ { "name": "aws/aws-crt-php", @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.365.0", + "version": "3.366.4", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "ce4b9a5fe8bad81caf40a3cca8069eba750103b1" + "reference": "1861cc8eede21cdaab0732fd44f43f19ddf1effd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ce4b9a5fe8bad81caf40a3cca8069eba750103b1", - "reference": "ce4b9a5fe8bad81caf40a3cca8069eba750103b1", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1861cc8eede21cdaab0732fd44f43f19ddf1effd", + "reference": "1861cc8eede21cdaab0732fd44f43f19ddf1effd", "shasum": "" }, "require": { @@ -84,7 +84,8 @@ "guzzlehttp/psr7": "^2.4.5", "mtdowling/jmespath.php": "^2.8.0", "php": ">=8.1", - "psr/http-message": "^1.0 || ^2.0" + "psr/http-message": "^1.0 || ^2.0", + "symfony/filesystem": "^v6.4.3 || ^v7.1.0 || ^v8.0.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", @@ -95,13 +96,11 @@ "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", - "ext-pcntl": "*", "ext-sockets": "*", - "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", + "phpunit/phpunit": "^9.6", "psr/cache": "^2.0 || ^3.0", "psr/simple-cache": "^2.0 || ^3.0", "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", - "symfony/filesystem": "^v6.4.0 || ^v7.1.0", "yoast/phpunit-polyfills": "^2.0" }, "suggest": { @@ -109,6 +108,7 @@ "doctrine/cache": "To use the DoctrineCacheAdapter", "ext-curl": "To send requests using cURL", "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages", + "ext-pcntl": "To use client-side monitoring", "ext-sockets": "To use client-side monitoring" }, "type": "library", @@ -153,9 +153,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.365.0" + "source": "https://github.com/aws/aws-sdk-php/tree/3.366.4" }, - "time": "2025-12-02T16:06:36+00:00" + "time": "2025-12-09T19:21:22+00:00" }, { "name": "bacon/bacon-qr-code", @@ -1739,16 +1739,16 @@ }, { "name": "laravel/framework", - "version": "v12.41.1", + "version": "v12.42.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "3e229b05935fd0300c632fb1f718c73046d664fc" + "reference": "509b33095564c5165366d81bbaa0afaac28abe75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/3e229b05935fd0300c632fb1f718c73046d664fc", - "reference": "3e229b05935fd0300c632fb1f718c73046d664fc", + "url": "https://api.github.com/repos/laravel/framework/zipball/509b33095564c5165366d81bbaa0afaac28abe75", + "reference": "509b33095564c5165366d81bbaa0afaac28abe75", "shasum": "" }, "require": { @@ -1836,6 +1836,7 @@ "illuminate/process": "self.version", "illuminate/queue": "self.version", "illuminate/redis": "self.version", + "illuminate/reflection": "self.version", "illuminate/routing": "self.version", "illuminate/session": "self.version", "illuminate/support": "self.version", @@ -1860,7 +1861,7 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.8.0", + "orchestra/testbench-core": "^10.8.1", "pda/pheanstalk": "^5.0.6|^7.0.0", "php-http/discovery": "^1.15", "phpstan/phpstan": "^2.0", @@ -1922,6 +1923,7 @@ "src/Illuminate/Filesystem/functions.php", "src/Illuminate/Foundation/helpers.php", "src/Illuminate/Log/functions.php", + "src/Illuminate/Reflection/helpers.php", "src/Illuminate/Support/functions.php", "src/Illuminate/Support/helpers.php" ], @@ -1930,7 +1932,8 @@ "Illuminate\\Support\\": [ "src/Illuminate/Macroable/", "src/Illuminate/Collections/", - "src/Illuminate/Conditionable/" + "src/Illuminate/Conditionable/", + "src/Illuminate/Reflection/" ] } }, @@ -1954,7 +1957,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-12-03T01:02:13+00:00" + "time": "2025-12-09T15:51:23+00:00" }, { "name": "laravel/prompts", @@ -2078,16 +2081,16 @@ }, { "name": "laravel/socialite", - "version": "v5.23.2", + "version": "v5.24.0", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "41e65d53762d33d617bf0253330d672cb95e624b" + "reference": "1d19358c28e8951dde6e36603b89d8f09e6cfbfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/41e65d53762d33d617bf0253330d672cb95e624b", - "reference": "41e65d53762d33d617bf0253330d672cb95e624b", + "url": "https://api.github.com/repos/laravel/socialite/zipball/1d19358c28e8951dde6e36603b89d8f09e6cfbfd", + "reference": "1d19358c28e8951dde6e36603b89d8f09e6cfbfd", "shasum": "" }, "require": { @@ -2146,7 +2149,7 @@ "issues": "https://github.com/laravel/socialite/issues", "source": "https://github.com/laravel/socialite" }, - "time": "2025-11-21T14:00:38+00:00" + "time": "2025-12-09T15:37:06+00:00" }, { "name": "laravel/tinker", @@ -2878,20 +2881,20 @@ }, { "name": "league/uri", - "version": "7.6.0", + "version": "7.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "f625804987a0a9112d954f9209d91fec52182344" + "reference": "8d587cddee53490f9b82bf203d3a9aa7ea4f9807" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/f625804987a0a9112d954f9209d91fec52182344", - "reference": "f625804987a0a9112d954f9209d91fec52182344", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/8d587cddee53490f9b82bf203d3a9aa7ea4f9807", + "reference": "8d587cddee53490f9b82bf203d3a9aa7ea4f9807", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.6", + "league/uri-interfaces": "^7.7", "php": "^8.1", "psr/http-factory": "^1" }, @@ -2964,7 +2967,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.6.0" + "source": "https://github.com/thephpleague/uri/tree/7.7.0" }, "funding": [ { @@ -2972,20 +2975,20 @@ "type": "github" } ], - "time": "2025-11-18T12:17:23+00:00" + "time": "2025-12-07T16:02:06+00:00" }, { "name": "league/uri-interfaces", - "version": "7.6.0", + "version": "7.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368" + "reference": "62ccc1a0435e1c54e10ee6022df28d6c04c2946c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/ccbfb51c0445298e7e0b7f4481b942f589665368", - "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/62ccc1a0435e1c54e10ee6022df28d6c04c2946c", + "reference": "62ccc1a0435e1c54e10ee6022df28d6c04c2946c", "shasum": "" }, "require": { @@ -3048,7 +3051,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.6.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.7.0" }, "funding": [ { @@ -3056,7 +3059,7 @@ "type": "github" } ], - "time": "2025-11-18T12:17:23+00:00" + "time": "2025-12-07T16:03:21+00:00" }, { "name": "masterminds/html5", @@ -3555,16 +3558,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.6.2", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "3a454ca033b9e06b63282ce19562e892747449bb" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", - "reference": "3a454ca033b9e06b63282ce19562e892747449bb", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { @@ -3607,9 +3610,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2025-10-21T19:32:17+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "nunomaduro/termwind", @@ -3700,21 +3703,21 @@ }, { "name": "onelogin/php-saml", - "version": "4.3.0", + "version": "4.3.1", "source": { "type": "git", "url": "https://github.com/SAML-Toolkits/php-saml.git", - "reference": "bf5efce9f2df5d489d05e78c27003a0fc8bc50f0" + "reference": "b009f160e4ac11f49366a45e0d45706b48429353" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SAML-Toolkits/php-saml/zipball/bf5efce9f2df5d489d05e78c27003a0fc8bc50f0", - "reference": "bf5efce9f2df5d489d05e78c27003a0fc8bc50f0", + "url": "https://api.github.com/repos/SAML-Toolkits/php-saml/zipball/b009f160e4ac11f49366a45e0d45706b48429353", + "reference": "b009f160e4ac11f49366a45e0d45706b48429353", "shasum": "" }, "require": { "php": ">=7.3", - "robrichards/xmlseclibs": "^3.1" + "robrichards/xmlseclibs": ">=3.1.4" }, "require-dev": { "pdepend/pdepend": "^2.8.0", @@ -3760,7 +3763,7 @@ "type": "github" } ], - "time": "2025-05-25T14:28:00+00:00" + "time": "2025-12-09T10:50:49+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -4595,16 +4598,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.15", + "version": "v0.12.16", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c" + "reference": "ee6d5028be4774f56c6c2c85ec4e6bc9acfe6b67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/38953bc71491c838fcb6ebcbdc41ab7483cd549c", - "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ee6d5028be4774f56c6c2c85ec4e6bc9acfe6b67", + "reference": "ee6d5028be4774f56c6c2c85ec4e6bc9acfe6b67", "shasum": "" }, "require": { @@ -4612,8 +4615,8 @@ "ext-tokenizer": "*", "nikic/php-parser": "^5.0 || ^4.0", "php": "^8.0 || ^7.4", - "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" @@ -4668,9 +4671,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.15" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.16" }, - "time": "2025-11-28T00:00:14+00:00" + "time": "2025-12-07T03:39:01+00:00" }, { "name": "ralouphie/getallheaders", @@ -4872,16 +4875,16 @@ }, { "name": "robrichards/xmlseclibs", - "version": "3.1.3", + "version": "3.1.4", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07" + "reference": "bc87389224c6de95802b505e5265b0ec2c5bcdbd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/2bdfd742624d739dfadbd415f00181b4a77aaf07", - "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/bc87389224c6de95802b505e5265b0ec2c5bcdbd", + "reference": "bc87389224c6de95802b505e5265b0ec2c5bcdbd", "shasum": "" }, "require": { @@ -4908,9 +4911,9 @@ ], "support": { "issues": "https://github.com/robrichards/xmlseclibs/issues", - "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.3" + "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.4" }, - "time": "2024-11-20T21:13:56+00:00" + "time": "2025-12-08T11:57:53+00:00" }, { "name": "sabberworm/php-css-parser", @@ -5426,16 +5429,16 @@ }, { "name": "symfony/console", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8" + "reference": "6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", - "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", + "url": "https://api.github.com/repos/symfony/console/zipball/6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e", + "reference": "6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e", "shasum": "" }, "require": { @@ -5500,7 +5503,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.0" + "source": "https://github.com/symfony/console/tree/v7.4.1" }, "funding": [ { @@ -5520,7 +5523,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2025-12-05T15:23:39+00:00" }, { "name": "symfony/css-selector", @@ -5901,6 +5904,76 @@ ], "time": "2024-09-25T14:21:43+00:00" }, + { + "name": "symfony/filesystem", + "version": "v7.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "d551b38811096d0be9c4691d406991b47c0c630a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", + "reference": "d551b38811096d0be9c4691d406991b47c0c630a", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^6.4|^7.0|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v7.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-27T13:27:24+00:00" + }, { "name": "symfony/finder", "version": "v7.4.0", @@ -5971,16 +6044,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "769c1720b68e964b13b58529c17d4a385c62167b" + "reference": "bd1af1e425811d6f077db240c3a588bdb405cd27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/769c1720b68e964b13b58529c17d4a385c62167b", - "reference": "769c1720b68e964b13b58529c17d4a385c62167b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/bd1af1e425811d6f077db240c3a588bdb405cd27", + "reference": "bd1af1e425811d6f077db240c3a588bdb405cd27", "shasum": "" }, "require": { @@ -6029,7 +6102,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.0" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.1" }, "funding": [ { @@ -6049,20 +6122,20 @@ "type": "tidelift" } ], - "time": "2025-11-13T08:49:24+00:00" + "time": "2025-12-07T11:13:10+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.0", + "version": "v7.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "7348193cd384495a755554382e4526f27c456085" + "reference": "f6e6f0a5fa8763f75a504b930163785fb6dd055f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7348193cd384495a755554382e4526f27c456085", - "reference": "7348193cd384495a755554382e4526f27c456085", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f6e6f0a5fa8763f75a504b930163785fb6dd055f", + "reference": "f6e6f0a5fa8763f75a504b930163785fb6dd055f", "shasum": "" }, "require": { @@ -6148,7 +6221,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.4.0" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.2" }, "funding": [ { @@ -6168,7 +6241,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:38:24+00:00" + "time": "2025-12-08T07:43:37+00:00" }, { "name": "symfony/mailer", @@ -8816,11 +8889,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.32", + "version": "2.1.33", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e126cad1e30a99b137b8ed75a85a676450ebb227", - "reference": "e126cad1e30a99b137b8ed75a85a676450ebb227", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9e800e6bee7d5bd02784d4c6069b48032d16224f", + "reference": "9e800e6bee7d5bd02784d4c6069b48032d16224f", "shasum": "" }, "require": { @@ -8865,7 +8938,7 @@ "type": "github" } ], - "time": "2025-11-11T15:18:17+00:00" + "time": "2025-12-05T10:24:31+00:00" }, { "name": "phpunit/php-code-coverage", @@ -9204,16 +9277,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.45", + "version": "11.5.46", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "faf5fff4fb9beb290affa53f812b05380819c51a" + "reference": "75dfe79a2aa30085b7132bb84377c24062193f33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/faf5fff4fb9beb290affa53f812b05380819c51a", - "reference": "faf5fff4fb9beb290affa53f812b05380819c51a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/75dfe79a2aa30085b7132bb84377c24062193f33", + "reference": "75dfe79a2aa30085b7132bb84377c24062193f33", "shasum": "" }, "require": { @@ -9285,7 +9358,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.45" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.46" }, "funding": [ { @@ -9309,7 +9382,7 @@ "type": "tidelift" } ], - "time": "2025-12-01T07:38:43+00:00" + "time": "2025-12-06T08:01:15+00:00" }, { "name": "sebastian/cli-parser", @@ -10474,16 +10547,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "8f3e7464fe7e77294686e935956a6a8ccf7442c4" + "reference": "0c5e8f20c74c78172a8ee72b125909b505033597" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8f3e7464fe7e77294686e935956a6a8ccf7442c4", - "reference": "8f3e7464fe7e77294686e935956a6a8ccf7442c4", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/0c5e8f20c74c78172a8ee72b125909b505033597", + "reference": "0c5e8f20c74c78172a8ee72b125909b505033597", "shasum": "" }, "require": { @@ -10522,7 +10595,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.4.0" + "source": "https://github.com/symfony/dom-crawler/tree/v7.4.1" }, "funding": [ { @@ -10542,7 +10615,7 @@ "type": "tidelift" } ], - "time": "2025-10-31T09:30:03+00:00" + "time": "2025-12-06T15:47:47+00:00" }, { "name": "theseer/tokenizer", From 313326b32adc8a916420d77d1ce1aa6f1d6b8ebb Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Tue, 9 Dec 2025 20:59:57 +0000 Subject: [PATCH 7/7] Updated translator & dependency attribution before release v25.11.6 --- dev/licensing/js-library-licenses.txt | 482 ++++++++++++++----------- dev/licensing/php-library-licenses.txt | 9 +- 2 files changed, 281 insertions(+), 210 deletions(-) diff --git a/dev/licensing/js-library-licenses.txt b/dev/licensing/js-library-licenses.txt index b5fa446a468..95acfa6af78 100644 --- a/dev/licensing/js-library-licenses.txt +++ b/dev/licensing/js-library-licenses.txt @@ -1,16 +1,3 @@ -abab -License: BSD-3-Clause -License File: node_modules/abab/LICENSE.md -Source: git+https://github.com/jsdom/abab.git -Link: https://github.com/jsdom/abab#readme ------------ -acorn-globals -License: MIT -License File: node_modules/acorn-globals/LICENSE -Copyright: Copyright (c) 2014 Forbes Lindesay -Source: https://github.com/ForbesLindesay/acorn-globals.git -Link: https://github.com/ForbesLindesay/acorn-globals.git ------------ acorn-jsx License: MIT License File: node_modules/acorn-jsx/LICENSE @@ -34,8 +21,10 @@ Link: https://github.com/acornjs/acorn ----------- agent-base License: MIT -Source: git://github.com/TooTallNate/node-agent-base.git -Link: git://github.com/TooTallNate/node-agent-base.git +License File: node_modules/agent-base/LICENSE +Copyright: Copyright (c) 2013 Nathan Rajlich <******@***********.***> +Source: https://github.com/TooTallNate/proxy-agents.git +Link: https://github.com/TooTallNate/proxy-agents.git ----------- ajv License: MIT @@ -54,7 +43,7 @@ Link: sindresorhus/ansi-escapes ansi-regex License: MIT License File: node_modules/ansi-regex/license -Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com) +Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com) Source: chalk/ansi-regex Link: chalk/ansi-regex ----------- @@ -134,20 +123,6 @@ Copyright: Copyright (c) 2016 EduardoRFS Source: git+https://github.com/ljharb/async-function.git Link: https://github.com/ljharb/async-function#readme ----------- -async -License: MIT -License File: node_modules/async/LICENSE -Copyright: Copyright (c) 2010-2018 Caolan McMahon -Source: https://github.com/caolan/async.git -Link: https://caolan.github.io/async/ ------------ -asynckit -License: MIT -License File: node_modules/asynckit/LICENSE -Copyright: Copyright (c) 2016 Alex Indigo -Source: git+https://github.com/alexindigo/asynckit.git -Link: https://github.com/alexindigo/asynckit#readme ------------ available-typed-arrays License: MIT License File: node_modules/available-typed-arrays/LICENSE @@ -318,7 +293,7 @@ ci-info License: MIT License File: node_modules/ci-info/LICENSE Copyright: Copyright (c) 2016 Thomas Watson Steen -Source: https://github.com/watson/ci-info.git +Source: github:watson/ci-info Link: https://github.com/watson/ci-info ----------- cjs-module-lexer @@ -369,13 +344,6 @@ License File: node_modules/color-name/LICENSE Source: git@github.com:colorjs/color-name.git Link: https://github.com/colorjs/color-name ----------- -combined-stream -License: MIT -License File: node_modules/combined-stream/License -Copyright: Copyright (c) 2011 Debuggable Limited <*****@**********.***> -Source: git://github.com/felixge/node-combined-stream.git -Link: https://github.com/felixge/node-combined-stream ------------ concat-map License: MIT License File: node_modules/concat-map/LICENSE @@ -390,13 +358,6 @@ All rights reserved. Source: git://github.com/thlorenz/convert-source-map.git Link: https://github.com/thlorenz/convert-source-map ----------- -create-jest -License: MIT -License File: node_modules/create-jest/LICENSE -Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. -Source: https://github.com/jestjs/jest.git -Link: https://github.com/jestjs/jest.git ------------ create-require License: MIT License File: node_modules/create-require/LICENSE @@ -418,13 +379,6 @@ Copyright: Copyright (c) 2018 Made With MOXY Lda <*****@****.******> Source: git@github.com:moxystudio/node-cross-spawn.git Link: https://github.com/moxystudio/node-cross-spawn ----------- -cssom -License: MIT -License File: node_modules/cssom/LICENSE.txt -Copyright: Copyright (c) Nikita Vasilyev -Source: NV/CSSOM -Link: NV/CSSOM ------------ cssstyle License: MIT License File: node_modules/cssstyle/LICENSE @@ -515,13 +469,6 @@ Copyright: Copyright (C) 2015 Jordan Harband Source: git://github.com/ljharb/define-properties.git Link: git://github.com/ljharb/define-properties.git ----------- -delayed-stream -License: MIT -License File: node_modules/delayed-stream/License -Copyright: Copyright (c) 2011 Debuggable Limited <*****@**********.***> -Source: git://github.com/felixge/node-delayed-stream.git -Link: https://github.com/felixge/node-delayed-stream ------------ detect-libc License: Apache-2.0 License File: node_modules/detect-libc/LICENSE @@ -535,13 +482,6 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.co Source: sindresorhus/detect-newline Link: sindresorhus/detect-newline ----------- -diff-sequences -License: MIT -License File: node_modules/diff-sequences/LICENSE -Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. -Source: https://github.com/jestjs/jest.git -Link: https://github.com/jestjs/jest.git ------------ diff License: BSD-3-Clause License File: node_modules/diff/LICENSE @@ -555,12 +495,6 @@ License File: node_modules/doctrine/LICENSE Source: eslint/doctrine Link: https://github.com/eslint/doctrine ----------- -domexception -License: MIT -License File: node_modules/domexception/LICENSE.txt -Source: jsdom/domexception -Link: jsdom/domexception ------------ dunder-proto License: MIT License File: node_modules/dunder-proto/LICENSE @@ -568,11 +502,10 @@ Copyright: Copyright (c) 2024 ECMAScript Shims Source: git+https://github.com/es-shims/dunder-proto.git Link: https://github.com/es-shims/dunder-proto#readme ----------- -ejs -License: Apache-2.0 -License File: node_modules/ejs/LICENSE -Source: git://github.com/mde/ejs.git -Link: https://github.com/mde/ejs +eastasianwidth +License: MIT +Source: git://github.com/komagata/eastasianwidth.git +Link: git://github.com/komagata/eastasianwidth.git ----------- electron-to-chromium License: ISC @@ -679,13 +612,6 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindres Source: sindresorhus/escape-string-regexp Link: sindresorhus/escape-string-regexp ----------- -escodegen -License: BSD-2-Clause -License File: node_modules/escodegen/LICENSE.BSD -Copyright: Copyright (C) 2012 Yusuke Suzuki (twitter: @Constellation) and other contributors. -Source: http://github.com/estools/escodegen.git -Link: http://github.com/estools/escodegen ------------ eslint-import-resolver-node License: MIT License File: node_modules/eslint-import-resolver-node/LICENSE @@ -772,9 +698,10 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindres Source: sindresorhus/execa Link: sindresorhus/execa ----------- -exit -Source: git://github.com/cowboy/node-exit.git -Link: https://github.com/cowboy/node-exit +exit-x +License: MIT +Source: git://github.com/gruntjs/node-exit-x.git +Link: https://github.com/gruntjs/node-exit-x ----------- expect License: MIT @@ -817,11 +744,6 @@ Copyright: Copyright (c) Roy Riojas & Jared Wray Source: jaredwray/file-entry-cache Link: jaredwray/file-entry-cache ----------- -filelist -License: Apache-2.0 -Source: git://github.com/mde/filelist.git -Link: https://github.com/mde/filelist ------------ fill-range License: MIT License File: node_modules/fill-range/LICENSE @@ -857,12 +779,12 @@ Copyright: Copyright (c) 2012 Raynos. Source: https://github.com/Raynos/for-each.git Link: https://github.com/Raynos/for-each ----------- -form-data -License: MIT -License File: node_modules/form-data/License -Copyright: Copyright (c) 2012 Felix Geisendörfer (*****@**********.***) and contributors -Source: git://github.com/form-data/form-data.git -Link: git://github.com/form-data/form-data.git +foreground-child +License: ISC +License File: node_modules/foreground-child/LICENSE +Copyright: Copyright (c) 2015-2023 Isaac Z. Schlueter and Contributors +Source: git+https://github.com/tapjs/foreground-child.git +Link: git+https://github.com/tapjs/foreground-child.git ----------- fs.realpath License: ISC @@ -951,7 +873,7 @@ Link: gulpjs/glob-parent glob License: ISC License File: node_modules/glob/LICENSE -Copyright: Copyright (c) Isaac Z. Schlueter and Contributors +Copyright: Copyright (c) 2009-2023 Isaac Z. Schlueter and Contributors Source: git://github.com/isaacs/node-glob.git Link: git://github.com/isaacs/node-glob.git ----------- @@ -983,6 +905,13 @@ Copyright: Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contri Source: https://github.com/isaacs/node-graceful-fs Link: https://github.com/isaacs/node-graceful-fs ----------- +handlebars +License: MIT +License File: node_modules/handlebars/LICENSE +Copyright: Copyright (C) 2011-2019 by Yehuda Katz +Source: https://github.com/handlebars-lang/handlebars.js.git +Link: https://www.handlebarsjs.com/ +----------- has-bigints License: MIT License File: node_modules/has-bigints/LICENSE @@ -1054,13 +983,17 @@ Link: https://github.com/WebReflection/html-escaper ----------- http-proxy-agent License: MIT -Source: git://github.com/TooTallNate/node-http-proxy-agent.git -Link: git://github.com/TooTallNate/node-http-proxy-agent.git +License File: node_modules/http-proxy-agent/LICENSE +Copyright: Copyright (c) 2013 Nathan Rajlich <******@***********.***> +Source: https://github.com/TooTallNate/proxy-agents.git +Link: https://github.com/TooTallNate/proxy-agents.git ----------- https-proxy-agent License: MIT -Source: git://github.com/TooTallNate/node-https-proxy-agent.git -Link: git://github.com/TooTallNate/node-https-proxy-agent.git +License File: node_modules/https-proxy-agent/LICENSE +Copyright: Copyright (c) 2013 Nathan Rajlich <******@***********.***> +Source: https://github.com/TooTallNate/proxy-agents.git +Link: https://github.com/TooTallNate/proxy-agents.git ----------- human-signals License: Apache-2.0 @@ -1398,10 +1331,11 @@ Copyright: Copyright 2012-2015 Yahoo! Inc. Source: git+ssh://git@github.com/istanbuljs/istanbuljs.git Link: https://istanbul.js.org/ ----------- -jake -License: Apache-2.0 -Source: git://github.com/jakejs/jake.git -Link: git://github.com/jakejs/jake.git +jackspeak +License: BlueOak-1.0.0 +License File: node_modules/jackspeak/LICENSE.md +Source: git+https://github.com/isaacs/jackspeak.git +Link: git+https://github.com/isaacs/jackspeak.git ----------- jest-changed-files License: MIT @@ -1466,13 +1400,6 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. Source: https://github.com/jestjs/jest.git Link: https://github.com/jestjs/jest.git ----------- -jest-get-type -License: MIT -License File: node_modules/jest-get-type/LICENSE -Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. -Source: https://github.com/jestjs/jest.git -Link: https://github.com/jestjs/jest.git ------------ jest-haste-map License: MIT License File: node_modules/jest-haste-map/LICENSE @@ -1608,8 +1535,8 @@ jsdom License: MIT License File: node_modules/jsdom/LICENSE.txt Copyright: Copyright (c) 2010 Elijah Insua -Source: jsdom/jsdom -Link: jsdom/jsdom +Source: git+https://github.com/jsdom/jsdom.git +Link: git+https://github.com/jsdom/jsdom.git ----------- jsesc License: MIT @@ -1664,13 +1591,6 @@ License: MIT Source: git+https://github.com/jaredwray/keyv.git Link: https://github.com/jaredwray/keyv ----------- -kleur -License: MIT -License File: node_modules/kleur/license -Copyright: Copyright (c) Luke Edwards <****.*********@*****.***> (lukeed.com) -Source: lukeed/kleur -Link: lukeed/kleur ------------ leven License: MIT License File: node_modules/leven/license @@ -1827,22 +1747,6 @@ Copyright: Copyright (c) 2014-present, Jon Schlinkert. Source: micromatch/micromatch Link: https://github.com/micromatch/micromatch ----------- -mime-db -License: MIT -License File: node_modules/mime-db/LICENSE -Copyright: Copyright (c) 2014 Jonathan Ong <**@***********.***> -Copyright (c) 2015-2022 Douglas Christopher Wilson <****@*************.***> -Source: jshttp/mime-db -Link: jshttp/mime-db ------------ -mime-types -License: MIT -License File: node_modules/mime-types/LICENSE -Copyright: Copyright (c) 2014 Jonathan Ong <**@***********.***> -Copyright (c) 2015 Douglas Christopher Wilson <****@*************.***> -Source: jshttp/mime-types -Link: jshttp/mime-types ------------ mimic-fn License: MIT License File: node_modules/mimic-fn/license @@ -1863,6 +1767,13 @@ License File: node_modules/minimist/LICENSE Source: git://github.com/minimistjs/minimist.git Link: https://github.com/minimistjs/minimist ----------- +minipass +License: ISC +License File: node_modules/minipass/LICENSE +Copyright: Copyright (c) 2017-2023 npm, Inc., Isaac Z. Schlueter, and Contributors +Source: https://github.com/isaacs/minipass +Link: https://github.com/isaacs/minipass +----------- ms License: MIT License File: node_modules/ms/license.md @@ -1870,11 +1781,26 @@ Copyright: Copyright (c) 2020 Vercel, Inc. Source: vercel/ms Link: vercel/ms ----------- +napi-postinstall +License: MIT +License File: node_modules/napi-postinstall/LICENSE +Copyright: Copyright (c) 2021-present UnTS +Source: git+https://github.com/un-ts/napi-postinstall.git +Link: git+https://github.com/un-ts/napi-postinstall.git +----------- natural-compare License: MIT Source: git://github.com/litejs/natural-compare-lite.git Link: git://github.com/litejs/natural-compare-lite.git ----------- +neo-async +License: MIT +License File: node_modules/neo-async/LICENSE +Copyright: Copyright (c) 2014-2018 Suguru Motegi +Based on Async.js, Copyright Caolan McMahon +Source: git@github.com:suguru03/neo-async.git +Link: https://github.com/suguru03/neo-async +----------- nice-try License: MIT License File: node_modules/nice-try/LICENSE @@ -2038,6 +1964,12 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.co Source: sindresorhus/p-try Link: sindresorhus/p-try ----------- +package-json-from-dist +License: BlueOak-1.0.0 +License File: node_modules/package-json-from-dist/LICENSE.md +Source: git+https://github.com/isaacs/package-json-from-dist.git +Link: git+https://github.com/isaacs/package-json-from-dist.git +----------- parent-module License: MIT License File: node_modules/parent-module/license @@ -2087,6 +2019,12 @@ Copyright: Copyright (c) 2015 Javier Blanco Source: https://github.com/jbgutierrez/path-parse.git Link: https://github.com/jbgutierrez/path-parse#readme ----------- +path-scurry +License: BlueOak-1.0.0 +License File: node_modules/path-scurry/LICENSE.md +Source: git+https://github.com/isaacs/path-scurry +Link: git+https://github.com/isaacs/path-scurry +----------- path-type License: MIT License File: node_modules/path-type/license @@ -2157,20 +2095,6 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. Source: https://github.com/jestjs/jest.git Link: https://github.com/jestjs/jest.git ----------- -prompts -License: MIT -License File: node_modules/prompts/license -Copyright: Copyright (c) 2018 Terkel Gjervig Nielsen -Source: terkelg/prompts -Link: terkelg/prompts ------------ -psl -License: MIT -License File: node_modules/psl/LICENSE -Copyright: Copyright (c) 2017 Lupo Montero ***********@*****.*** -Source: git@github.com:lupomontero/psl.git -Link: git@github.com:lupomontero/psl.git ------------ punycode.js License: MIT License File: node_modules/punycode.js/LICENSE-MIT.txt @@ -2190,13 +2114,6 @@ Copyright: Copyright (c) 2018 Nicolas DUBIEN Source: git+https://github.com/dubzzz/pure-rand.git Link: https://github.com/dubzzz/pure-rand#readme ----------- -querystringify -License: MIT -License File: node_modules/querystringify/LICENSE -Copyright: Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors. -Source: https://github.com/unshiftio/querystringify -Link: https://github.com/unshiftio/querystringify ------------ react-is License: MIT License File: node_modules/react-is/LICENSE @@ -2246,13 +2163,6 @@ Copyright: Copyright (c) 2016, Contributors Source: git+ssh://git@github.com/yargs/require-main-filename.git Link: https://github.com/yargs/require-main-filename#readme ----------- -requires-port -License: MIT -License File: node_modules/requires-port/LICENSE -Copyright: Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors. -Source: https://github.com/unshiftio/requires-port -Link: https://github.com/unshiftio/requires-port ------------ resolve-cwd License: MIT License File: node_modules/resolve-cwd/license @@ -2267,13 +2177,6 @@ Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.co Source: sindresorhus/resolve-from Link: sindresorhus/resolve-from ----------- -resolve.exports -License: MIT -License File: node_modules/resolve.exports/license -Copyright: Copyright (c) Luke Edwards <****.*********@*****.***> (lukeed.com) -Source: lukeed/resolve.exports -Link: lukeed/resolve.exports ------------ resolve License: MIT License File: node_modules/resolve/LICENSE @@ -2281,6 +2184,13 @@ Copyright: Copyright (c) 2012 James Halliday Source: git://github.com/browserify/resolve.git Link: git://github.com/browserify/resolve.git ----------- +rrweb-cssom +License: MIT +License File: node_modules/rrweb-cssom/LICENSE.txt +Copyright: Copyright (c) Nikita Vasilyev +Source: rrweb-io/CSSOM +Link: rrweb-io/CSSOM +----------- safe-array-concat License: MIT License File: node_modules/safe-array-concat/LICENSE @@ -2412,13 +2322,6 @@ Copyright: Copyright (c) 2015, Contributors Source: https://github.com/tapjs/signal-exit.git Link: https://github.com/tapjs/signal-exit ----------- -sisteransi -License: MIT -License File: node_modules/sisteransi/license -Copyright: Copyright (c) 2018 Terkel Gjervig Nielsen -Source: https://github.com/terkelg/sisteransi -Link: https://github.com/terkelg/sisteransi ------------ slash License: MIT License File: node_modules/slash/license @@ -2516,6 +2419,13 @@ Link: sindresorhus/string-length ----------- string-width License: MIT +License File: node_modules/string-width-cjs/license +Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com) +Source: sindresorhus/string-width +Link: sindresorhus/string-width +----------- +string-width +License: MIT License File: node_modules/string-width/license Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com) Source: sindresorhus/string-width @@ -2551,11 +2461,18 @@ Link: git://github.com/es-shims/String.prototype.trimStart.git ----------- strip-ansi License: MIT -License File: node_modules/strip-ansi/license +License File: node_modules/strip-ansi-cjs/license Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (sindresorhus.com) Source: chalk/strip-ansi Link: chalk/strip-ansi ----------- +strip-ansi +License: MIT +License File: node_modules/strip-ansi/license +Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com) +Source: chalk/strip-ansi +Link: chalk/strip-ansi +----------- strip-bom License: MIT License File: node_modules/strip-bom/license @@ -2605,6 +2522,13 @@ Copyright: Copyright (c) 2015 Joris van der Wel Source: https://github.com/jsdom/js-symbol-tree.git Link: https://github.com/jsdom/js-symbol-tree#symbol-tree ----------- +synckit +License: MIT +License File: node_modules/synckit/LICENSE +Copyright: Copyright (c) 2021 UnTS +Source: https://github.com/un-ts/synckit.git +Link: https://github.com/un-ts/synckit.git +----------- test-exclude License: ISC License File: node_modules/test-exclude/LICENSE.txt @@ -2612,6 +2536,20 @@ Copyright: Copyright (c) 2016, Contributors Source: git+https://github.com/istanbuljs/test-exclude.git Link: https://istanbul.js.org/ ----------- +tldts-core +License: MIT +License File: node_modules/tldts-core/LICENSE +Copyright: Copyright (c) 2017 Thomas Parisot, 2018 Rémi Berson +Source: git+ssh://git@github.com/remusao/tldts.git +Link: https://github.com/remusao/tldts#readme +----------- +tldts +License: MIT +License File: node_modules/tldts/LICENSE +Copyright: Copyright (c) 2017 Thomas Parisot, 2018 Rémi Berson +Source: git+ssh://git@github.com/remusao/tldts.git +Link: https://github.com/remusao/tldts#readme +----------- tmpl License: BSD-3-Clause License File: node_modules/tmpl/license @@ -2722,6 +2660,13 @@ License File: node_modules/uc.micro/LICENSE.txt Source: markdown-it/uc.micro Link: markdown-it/uc.micro ----------- +uglify-js +License: BSD-2-Clause +License File: node_modules/uglify-js/LICENSE +Copyright: Copyright 2012-2024 (c) Mihai Bazon <*****.*****@*****.***> +Source: mishoo/UglifyJS +Link: mishoo/UglifyJS +----------- unbox-primitive License: MIT License File: node_modules/unbox-primitive/LICENSE @@ -2736,12 +2681,10 @@ Copyright: Copyright (c) Matteo Collina and Undici contributors Source: git+https://github.com/nodejs/undici.git Link: https://undici.nodejs.org ----------- -universalify +unrs-resolver License: MIT -License File: node_modules/universalify/LICENSE -Copyright: Copyright (c) 2017, Ryan Zimmerman <*******@*******.***> -Source: git+https://github.com/RyanZim/universalify.git -Link: https://github.com/RyanZim/universalify#readme +Source: git+https://github.com/unrs/unrs-resolver.git +Link: https://github.com/unrs/unrs-resolver#readme ----------- update-browserslist-db License: MIT @@ -2757,13 +2700,6 @@ Copyright: Copyright 2011 Gary Court. All rights reserved. Source: http://github.com/garycourt/uri-js Link: https://github.com/garycourt/uri-js ----------- -url-parse -License: MIT -License File: node_modules/url-parse/LICENSE -Copyright: Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors. -Source: https://github.com/unshiftio/url-parse.git -Link: https://github.com/unshiftio/url-parse.git ------------ v8-compile-cache-lib License: MIT License File: node_modules/v8-compile-cache-lib/LICENSE @@ -2880,6 +2816,19 @@ Copyright: Copyright (c) 2014-2016, Jon Schlinkert Source: jonschlinkert/word-wrap Link: https://github.com/jonschlinkert/word-wrap ----------- +wordwrap +License: MIT +License File: node_modules/wordwrap/LICENSE +Source: git://github.com/substack/node-wordwrap.git +Link: git://github.com/substack/node-wordwrap.git +----------- +wrap-ansi +License: MIT +License File: node_modules/wrap-ansi-cjs/license +Copyright: Copyright (c) Sindre Sorhus <************@*****.***> (https://sindresorhus.com) +Source: chalk/wrap-ansi +Link: chalk/wrap-ansi +----------- wrap-ansi License: MIT License File: node_modules/wrap-ansi/license @@ -2971,6 +2920,31 @@ License File: node_modules/@ampproject/remapping/LICENSE Source: git+https://github.com/ampproject/remapping.git Link: git+https://github.com/ampproject/remapping.git ----------- +@asamuzakjp/css-color +License: MIT +License File: node_modules/@asamuzakjp/css-color/LICENSE +Copyright: Copyright (c) 2024 asamuzaK (Kazz) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +Source: git+https://github.com/asamuzaK/cssColor.git +Link: https://github.com/asamuzaK/cssColor#readme +----------- @babel/code-frame License: MIT License File: node_modules/@babel/code-frame/LICENSE @@ -3335,6 +3309,40 @@ Copyright: Copyright (c) 2014 Evan Wallace Source: https://github.com/cspotcode/node-source-map-support Link: https://github.com/cspotcode/node-source-map-support ----------- +@csstools/color-helpers +License: MIT-0 +License File: node_modules/@csstools/color-helpers/LICENSE.md +Source: git+https://github.com/csstools/postcss-plugins.git +Link: https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers#readme +----------- +@csstools/css-calc +License: MIT +License File: node_modules/@csstools/css-calc/LICENSE.md +Copyright: Copyright 2022 Romain Menke, Antonio Laguna <*******@******.**> +Source: git+https://github.com/csstools/postcss-plugins.git +Link: https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc#readme +----------- +@csstools/css-color-parser +License: MIT +License File: node_modules/@csstools/css-color-parser/LICENSE.md +Copyright: Copyright 2022 Romain Menke, Antonio Laguna <*******@******.**> +Source: git+https://github.com/csstools/postcss-plugins.git +Link: https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser#readme +----------- +@csstools/css-parser-algorithms +License: MIT +License File: node_modules/@csstools/css-parser-algorithms/LICENSE.md +Copyright: Copyright 2022 Romain Menke, Antonio Laguna <*******@******.**> +Source: git+https://github.com/csstools/postcss-plugins.git +Link: https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms#readme +----------- +@csstools/css-tokenizer +License: MIT +License File: node_modules/@csstools/css-tokenizer/LICENSE.md +Copyright: Copyright 2022 Romain Menke, Antonio Laguna <*******@******.**> +Source: git+https://github.com/csstools/postcss-plugins.git +Link: https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer#readme +----------- @esbuild/linux-x64 License: MIT Source: git+https://github.com/evanw/esbuild.git @@ -3420,6 +3428,13 @@ License File: node_modules/@humanwhocodes/retry/LICENSE Source: git+https://github.com/humanwhocodes/retry.git Link: git+https://github.com/humanwhocodes/retry.git ----------- +@isaacs/cliui +License: ISC +License File: node_modules/@isaacs/cliui/LICENSE.txt +Copyright: Copyright (c) 2015, Contributors +Source: yargs/cliui +Link: yargs/cliui +----------- @istanbuljs/load-nyc-config License: ISC License File: node_modules/@istanbuljs/load-nyc-config/LICENSE @@ -3448,6 +3463,20 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. Source: https://github.com/jestjs/jest.git Link: https://jestjs.io/ ----------- +@jest/diff-sequences +License: MIT +License File: node_modules/@jest/diff-sequences/LICENSE +Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. +Source: https://github.com/jestjs/jest.git +Link: https://github.com/jestjs/jest.git +----------- +@jest/environment-jsdom-abstract +License: MIT +License File: node_modules/@jest/environment-jsdom-abstract/LICENSE +Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. +Source: https://github.com/jestjs/jest.git +Link: https://github.com/jestjs/jest.git +----------- @jest/environment License: MIT License File: node_modules/@jest/environment/LICENSE @@ -3476,6 +3505,13 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. Source: https://github.com/jestjs/jest.git Link: https://github.com/jestjs/jest.git ----------- +@jest/get-type +License: MIT +License File: node_modules/@jest/get-type/LICENSE +Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. +Source: https://github.com/jestjs/jest.git +Link: https://github.com/jestjs/jest.git +----------- @jest/globals License: MIT License File: node_modules/@jest/globals/LICENSE @@ -3483,6 +3519,13 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. Source: https://github.com/jestjs/jest.git Link: https://github.com/jestjs/jest.git ----------- +@jest/pattern +License: MIT +License File: node_modules/@jest/pattern/LICENSE +Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. +Source: https://github.com/jestjs/jest.git +Link: https://github.com/jestjs/jest.git +----------- @jest/reporters License: MIT License File: node_modules/@jest/reporters/LICENSE @@ -3497,6 +3540,13 @@ Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. Source: https://github.com/jestjs/jest.git Link: https://github.com/jestjs/jest.git ----------- +@jest/snapshot-utils +License: MIT +License File: node_modules/@jest/snapshot-utils/LICENSE +Copyright: Copyright (c) Meta Platforms, Inc. and affiliates. +Source: https://github.com/jestjs/jest.git +Link: https://github.com/jestjs/jest.git +----------- @jest/source-map License: MIT License File: node_modules/@jest/source-map/LICENSE @@ -3665,6 +3715,17 @@ Copyright: Copyright (c) 2017-present Devon Govett Source: https://github.com/parcel-bundler/watcher.git Link: https://github.com/parcel-bundler/watcher.git ----------- +@pkgjs/parseargs +License: MIT +License File: node_modules/@pkgjs/parseargs/LICENSE +Source: git@github.com:pkgjs/parseargs.git +Link: https://github.com/pkgjs/parseargs#readme +----------- +@pkgr/core +License: MIT +Source: git+https://github.com/un-ts/pkgr.git +Link: https://github.com/un-ts/pkgr/blob/master/packages/core +----------- @rtsao/scc License: MIT License File: node_modules/@rtsao/scc/LICENSE @@ -3690,7 +3751,7 @@ Link: https://github.com/sinonjs/commons#readme License: BSD-3-Clause License File: node_modules/@sinonjs/fake-timers/LICENSE Copyright: Copyright (c) 2010-2014, Christian Johansen, *********@*********.**. All rights reserved. -Source: https://github.com/sinonjs/fake-timers.git +Source: git+https://github.com/sinonjs/fake-timers.git Link: https://github.com/sinonjs/fake-timers ----------- @ssddanbrown/codemirror-lang-smarty @@ -3703,13 +3764,6 @@ License: MIT License File: node_modules/@ssddanbrown/codemirror-lang-twig/LICENSE Copyright: Copyright (C) 2023 by Dan Brown, Marijn Haverbeke and others ----------- -@tootallnate/once -License: MIT -License File: node_modules/@tootallnate/once/LICENSE -Copyright: Copyright (c) 2020 Nathan Rajlich -Source: git://github.com/TooTallNate/once.git -Link: git://github.com/TooTallNate/once.git ------------ @tsconfig/node10 License: MIT License File: node_modules/@tsconfig/node10/LICENSE @@ -3773,13 +3827,6 @@ Copyright: Copyright (c) Microsoft Corporation. Source: https://github.com/DefinitelyTyped/DefinitelyTyped.git Link: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree ----------- -@types/graceful-fs -License: MIT -License File: node_modules/@types/graceful-fs/LICENSE -Copyright: Copyright (c) Microsoft Corporation. -Source: https://github.com/DefinitelyTyped/DefinitelyTyped.git -Link: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/graceful-fs ------------ @types/istanbul-lib-coverage License: MIT License File: node_modules/@types/istanbul-lib-coverage/LICENSE @@ -3889,3 +3936,20 @@ License File: node_modules/@types/yargs/LICENSE Copyright: Copyright (c) Microsoft Corporation. Source: https://github.com/DefinitelyTyped/DefinitelyTyped.git Link: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/yargs +----------- +@ungap/structured-clone +License: ISC +License File: node_modules/@ungap/structured-clone/LICENSE +Copyright: Copyright (c) 2021, Andrea Giammarchi, @WebReflection +Source: git+https://github.com/ungap/structured-clone.git +Link: https://github.com/ungap/structured-clone#readme +----------- +@unrs/resolver-binding-linux-x64-gnu +License: MIT +Source: git+https://github.com/unrs/unrs-resolver.git +Link: https://github.com/unrs/unrs-resolver#readme +----------- +@unrs/resolver-binding-linux-x64-musl +License: MIT +Source: git+https://github.com/unrs/unrs-resolver.git +Link: https://github.com/unrs/unrs-resolver#readme diff --git a/dev/licensing/php-library-licenses.txt b/dev/licensing/php-library-licenses.txt index 276f3923062..d178e92434d 100644 --- a/dev/licensing/php-library-licenses.txt +++ b/dev/licensing/php-library-licenses.txt @@ -176,7 +176,7 @@ License: MIT License File: vendor/intervention/image/LICENSE Copyright: Copyright (c) 2013-present Oliver Vogel Source: https://github.com/Intervention/image.git -Link: https://image.intervention.io/ +Link: https://image.intervention.io ----------- knplabs/knp-snappy License: MIT @@ -592,6 +592,13 @@ Copyright: Copyright (c) 2018-present Fabien Potencier Source: https://github.com/symfony/event-dispatcher-contracts.git Link: https://symfony.com ----------- +symfony/filesystem +License: MIT +License File: vendor/symfony/filesystem/LICENSE +Copyright: Copyright (c) 2004-present Fabien Potencier +Source: https://github.com/symfony/filesystem.git +Link: https://symfony.com +----------- symfony/finder License: MIT License File: vendor/symfony/finder/LICENSE