diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 005cde58ab..4d62820b0c 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -15,9 +15,11 @@ jobs: fail-fast: false matrix: php: [8.5, 8.4, 8.3, 8.2] - laravel: [12.*, 11.*] + laravel: [13.*, 12.*, 11.*] dependency-version: [prefer-stable] include: + - laravel: 13.* + testbench: 11.* - laravel: 12.* testbench: 10.* - laravel: 11.* @@ -34,6 +36,9 @@ jobs: - php: 8.2 pest: ^3.7 pest-plugin-laravel: ^3.0 + exclude: + - laravel: 13.* + php: 8.2 name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bebf42ff54..f1adb388c0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,15 +15,19 @@ jobs: fail-fast: true matrix: php: [8.5, 8.4, 8.3] - laravel: [12.*, 11.*] + laravel: [13.*, 12.*, 11.*] db: [sqlite, mysql, pgsql] dependency-version: [prefer-stable] include: + - laravel: 13.* + testbench: 11.* - laravel: 12.* testbench: 10.* - laravel: 11.* testbench: 9.* exclude: + - laravel: 13.* + php: 8.2 - laravel: 11.* php: 8.5 name: P${{ matrix.php }} - L${{ matrix.laravel }} - DB:${{ matrix.db }} diff --git a/composer.json b/composer.json index aa07b37c7e..deea4c394b 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,6 @@ "ext-intl": "*" }, "require-dev": { - "anourvalar/eloquent-serialize": "^1.2", "chillerlan/php-qrcode": "^5.0", "filament/support": "*", "larastan/larastan": "^3.0", @@ -18,7 +17,7 @@ "league/flysystem-aws-s3-v3": "^3.0", "nunomaduro/termwind": "^2.0", "openspout/openspout": "^4.23", - "orchestra/testbench": "^9.0|^10.0", + "orchestra/testbench": "^9.0|^10.0|^11.0", "pestphp/pest": "^3.7|^4.0", "pestphp/pest-plugin-browser": "^4.1", "pestphp/pest-plugin-laravel": "^3.0|^4.0", diff --git a/composer.lock b/composer.lock index e07248fadc..384facadbd 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": "dc8c580c7dda4560698702b25135a519", + "content-hash": "a37dd210ea840b549149abef093c6b6b", "packages": [], "packages-dev": [ { @@ -1229,72 +1229,6 @@ ], "time": "2025-08-24T17:25:34+00:00" }, - { - "name": "anourvalar/eloquent-serialize", - "version": "1.3.5", - "source": { - "type": "git", - "url": "https://github.com/AnourValar/eloquent-serialize.git", - "reference": "1a7dead8d532657e5358f8f27c0349373517681e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/1a7dead8d532657e5358f8f27c0349373517681e", - "reference": "1a7dead8d532657e5358f8f27c0349373517681e", - "shasum": "" - }, - "require": { - "laravel/framework": "^8.0|^9.0|^10.0|^11.0|^12.0", - "php": "^7.4|^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.26", - "laravel/legacy-factories": "^1.1", - "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0", - "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^9.5|^10.5|^11.0", - "psalm/plugin-laravel": "^2.8|^3.0", - "squizlabs/php_codesniffer": "^3.7" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "EloquentSerialize": "AnourValar\\EloquentSerialize\\Facades\\EloquentSerializeFacade" - } - } - }, - "autoload": { - "psr-4": { - "AnourValar\\EloquentSerialize\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Laravel Query Builder (Eloquent) serialization", - "homepage": "https://github.com/AnourValar/eloquent-serialize", - "keywords": [ - "anourvalar", - "builder", - "copy", - "eloquent", - "job", - "laravel", - "query", - "querybuilder", - "queue", - "serializable", - "serialization", - "serialize" - ], - "support": { - "issues": "https://github.com/AnourValar/eloquent-serialize/issues", - "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.3.5" - }, - "time": "2025-12-04T13:38:21+00:00" - }, { "name": "aws/aws-crt-php", "version": "v1.2.7", @@ -1351,16 +1285,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.371.0", + "version": "3.373.4", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "80bafcdc7f22362e204f49c5adfea66e85939cc8" + "reference": "902f23313c949a8f25f0982064f318b69ae69382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/80bafcdc7f22362e204f49c5adfea66e85939cc8", - "reference": "80bafcdc7f22362e204f49c5adfea66e85939cc8", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/902f23313c949a8f25f0982064f318b69ae69382", + "reference": "902f23313c949a8f25f0982064f318b69ae69382", "shasum": "" }, "require": { @@ -1381,12 +1315,12 @@ "aws/aws-php-sns-message-validator": "~1.0", "behat/behat": "~3.0", "composer/composer": "^2.7.8", - "dms/phpunit-arraysubset-asserts": "^0.4.0", + "dms/phpunit-arraysubset-asserts": "^v0.5.0", "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", "ext-sockets": "*", - "phpunit/phpunit": "^9.6", + "phpunit/phpunit": "^10.0", "psr/cache": "^2.0 || ^3.0", "psr/simple-cache": "^2.0 || ^3.0", "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", @@ -1424,11 +1358,11 @@ "authors": [ { "name": "Amazon Web Services", - "homepage": "http://aws.amazon.com" + "homepage": "https://aws.amazon.com" } ], "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project", - "homepage": "http://aws.amazon.com/sdkforphp", + "homepage": "https://aws.amazon.com/sdk-for-php", "keywords": [ "amazon", "aws", @@ -1442,32 +1376,32 @@ "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.371.0" + "source": "https://github.com/aws/aws-sdk-php/tree/3.373.4" }, - "time": "2026-02-24T19:08:17+00:00" + "time": "2026-03-17T18:11:35+00:00" }, { "name": "blade-ui-kit/blade-heroicons", - "version": "2.6.0", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/driesvints/blade-heroicons.git", - "reference": "4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19" + "reference": "66fa8ba09dba12e0cdb410b8cb94f3b890eca440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/driesvints/blade-heroicons/zipball/4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19", - "reference": "4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19", + "url": "https://api.github.com/repos/driesvints/blade-heroicons/zipball/66fa8ba09dba12e0cdb410b8cb94f3b890eca440", + "reference": "66fa8ba09dba12e0cdb410b8cb94f3b890eca440", "shasum": "" }, "require": { "blade-ui-kit/blade-icons": "^1.6", - "illuminate/support": "^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^9.0|^10.0|^11.0|^12.0|^13.0", "php": "^8.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", - "phpunit/phpunit": "^9.0|^10.5|^11.0" + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0|^12.0" }, "type": "library", "extra": { @@ -1493,7 +1427,7 @@ } ], "description": "A package to easily make use of Heroicons in your Laravel Blade views.", - "homepage": "https://github.com/blade-ui-kit/blade-heroicons", + "homepage": "https://github.com/driesvints/blade-heroicons", "keywords": [ "Heroicons", "blade", @@ -1501,7 +1435,7 @@ ], "support": { "issues": "https://github.com/driesvints/blade-heroicons/issues", - "source": "https://github.com/driesvints/blade-heroicons/tree/2.6.0" + "source": "https://github.com/driesvints/blade-heroicons/tree/2.7.0" }, "funding": [ { @@ -1513,7 +1447,7 @@ "type": "paypal" } ], - "time": "2025-02-13T20:53:33+00:00" + "time": "2026-03-16T13:00:23+00:00" }, { "name": "blade-ui-kit/blade-icons", @@ -2056,27 +1990,27 @@ }, { "name": "danharrin/livewire-rate-limiting", - "version": "v2.1.0", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/danharrin/livewire-rate-limiting.git", - "reference": "14dde653a9ae8f38af07a0ba4921dc046235e1a0" + "reference": "c03e649220089f6e5a52d422e24e3f98c73e456d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/14dde653a9ae8f38af07a0ba4921dc046235e1a0", - "reference": "14dde653a9ae8f38af07a0ba4921dc046235e1a0", + "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/c03e649220089f6e5a52d422e24e3f98c73e456d", + "reference": "c03e649220089f6e5a52d422e24e3f98c73e456d", "shasum": "" }, "require": { - "illuminate/support": "^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^9.0|^10.0|^11.0|^12.0|^13.0", "php": "^8.0" }, "require-dev": { "livewire/livewire": "^3.0", "livewire/volt": "^1.3", - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", - "phpunit/phpunit": "^9.0|^10.0|^11.5.3" + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0", + "phpunit/phpunit": "^9.0|^10.0|^11.5.3|^12.5.12" }, "type": "library", "autoload": { @@ -2106,7 +2040,7 @@ "type": "github" } ], - "time": "2025-02-21T08:52:11+00:00" + "time": "2026-03-16T11:29:23+00:00" }, { "name": "daverandom/libdns", @@ -2703,22 +2637,21 @@ "dist": { "type": "path", "url": "packages/support", - "reference": "56e7eb48e308bb442872bbe69100fd22230cc4a6" + "reference": "ba9f774450d4f74eb2e9bb37a6301c2ea6aa54f1" }, "require": { "blade-ui-kit/blade-heroicons": "^2.5", "danharrin/livewire-rate-limiting": "^2.0", "ext-intl": "*", - "illuminate/contracts": "^11.28|^12.0", + "illuminate/contracts": "^11.28|^12.0|^13.0", "kirschbaum-development/eloquent-power-joins": "^4.0", "league/uri-components": "^7.0", "livewire/livewire": "^3.5", "nette/php-generator": "^4.0", "php": "^8.2", - "ryangjchandler/blade-capture-directive": "^1.0", "spatie/invade": "^2.0", "spatie/laravel-package-tools": "^1.9", - "symfony/console": "^7.0", + "symfony/console": "^7.0|^8.0", "symfony/html-sanitizer": "^7.0|^8.0" }, "type": "library", @@ -3165,16 +3098,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.8.0", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "21dc724a0583619cd1652f673303492272778051" + "reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", - "reference": "21dc724a0583619cd1652f673303492272778051", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/7d0ed42f28e42d61352a7a79de682e5e67fec884", + "reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884", "shasum": "" }, "require": { @@ -3190,6 +3123,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "0.9.0", + "jshttp/mime-db": "1.54.0.1", "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { @@ -3261,7 +3195,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.8.0" + "source": "https://github.com/guzzle/psr7/tree/2.9.0" }, "funding": [ { @@ -3277,7 +3211,7 @@ "type": "tidelift" } ], - "time": "2025-08-23T21:21:41+00:00" + "time": "2026-03-10T16:41:02+00:00" }, { "name": "guzzlehttp/uri-template", @@ -3577,28 +3511,28 @@ }, { "name": "kirschbaum-development/eloquent-power-joins", - "version": "4.2.11", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", - "reference": "0e3e3372992e4bf82391b3c7b84b435c3db73588" + "reference": "dbf2dfaa1900152f2e3dc42b30b67f67a82e7c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/0e3e3372992e4bf82391b3c7b84b435c3db73588", - "reference": "0e3e3372992e4bf82391b3c7b84b435c3db73588", + "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/dbf2dfaa1900152f2e3dc42b30b67f67a82e7c36", + "reference": "dbf2dfaa1900152f2e3dc42b30b67f67a82e7c36", "shasum": "" }, "require": { - "illuminate/database": "^11.42|^12.0", - "illuminate/support": "^11.42|^12.0", + "illuminate/database": "^11.42|^12.0|^13.0", + "illuminate/support": "^11.42|^12.0|^13.0", "php": "^8.2" }, "require-dev": { "friendsofphp/php-cs-fixer": "dev-master", - "laravel/legacy-factories": "^1.0@dev", - "orchestra/testbench": "^9.0|^10.0", - "phpunit/phpunit": "^10.0|^11.0" + "laravel/legacy-factories": "^1.0@dev|dev-master", + "orchestra/testbench": "^9.0|^10.0|^11.0", + "phpunit/phpunit": "^10.0|^11.0|^12.0" }, "type": "library", "extra": { @@ -3634,46 +3568,46 @@ ], "support": { "issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues", - "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.2.11" + "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.0" }, - "time": "2025-12-17T00:37:48+00:00" + "time": "2026-03-17T16:43:01+00:00" }, { "name": "larastan/larastan", - "version": "v3.9.2", + "version": "v3.9.3", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "2e9ed291bdc1969e7f270fb33c9cdf3c912daeb2" + "reference": "64a52bcc5347c89fdf131cb59f96ebfbc8d1ad65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/2e9ed291bdc1969e7f270fb33c9cdf3c912daeb2", - "reference": "2e9ed291bdc1969e7f270fb33c9cdf3c912daeb2", + "url": "https://api.github.com/repos/larastan/larastan/zipball/64a52bcc5347c89fdf131cb59f96ebfbc8d1ad65", + "reference": "64a52bcc5347c89fdf131cb59f96ebfbc8d1ad65", "shasum": "" }, "require": { "ext-json": "*", "iamcal/sql-parser": "^0.7.0", - "illuminate/console": "^11.44.2 || ^12.4.1", - "illuminate/container": "^11.44.2 || ^12.4.1", - "illuminate/contracts": "^11.44.2 || ^12.4.1", - "illuminate/database": "^11.44.2 || ^12.4.1", - "illuminate/http": "^11.44.2 || ^12.4.1", - "illuminate/pipeline": "^11.44.2 || ^12.4.1", - "illuminate/support": "^11.44.2 || ^12.4.1", + "illuminate/console": "^11.44.2 || ^12.4.1 || ^13", + "illuminate/container": "^11.44.2 || ^12.4.1 || ^13", + "illuminate/contracts": "^11.44.2 || ^12.4.1 || ^13", + "illuminate/database": "^11.44.2 || ^12.4.1 || ^13", + "illuminate/http": "^11.44.2 || ^12.4.1 || ^13", + "illuminate/pipeline": "^11.44.2 || ^12.4.1 || ^13", + "illuminate/support": "^11.44.2 || ^12.4.1 || ^13", "php": "^8.2", "phpstan/phpstan": "^2.1.32" }, "require-dev": { "doctrine/coding-standard": "^13", - "laravel/framework": "^11.44.2 || ^12.7.2", + "laravel/framework": "^11.44.2 || ^12.7.2 || ^13", "mockery/mockery": "^1.6.12", "nikic/php-parser": "^5.4", - "orchestra/canvas": "^v9.2.2 || ^10.0.1", - "orchestra/testbench-core": "^9.12.0 || ^10.1", + "orchestra/canvas": "^v9.2.2 || ^10.0.1 || ^11", + "orchestra/testbench-core": "^9.12.0 || ^10.1 || ^11", "phpstan/phpstan-deprecation-rules": "^2.0.1", - "phpunit/phpunit": "^10.5.35 || ^11.5.15" + "phpunit/phpunit": "^10.5.35 || ^11.5.15 || ^12.5.8" }, "suggest": { "orchestra/testbench": "Using Larastan for analysing a package needs Testbench", @@ -3718,7 +3652,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v3.9.2" + "source": "https://github.com/larastan/larastan/tree/v3.9.3" }, "funding": [ { @@ -3726,28 +3660,28 @@ "type": "github" } ], - "time": "2026-01-30T15:16:32+00:00" + "time": "2026-02-20T12:07:12+00:00" }, { "name": "laravel/framework", - "version": "v12.53.0", + "version": "v13.0.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "f57f035c0d34503d9ff30be76159bb35a003cd1f" + "reference": "3e33f431a05365d008742ff8001b92641086d5f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/f57f035c0d34503d9ff30be76159bb35a003cd1f", - "reference": "f57f035c0d34503d9ff30be76159bb35a003cd1f", + "url": "https://api.github.com/repos/laravel/framework/zipball/3e33f431a05365d008742ff8001b92641086d5f8", + "reference": "3e33f431a05365d008742ff8001b92641086d5f8", "shasum": "" }, "require": { - "brick/math": "^0.11|^0.12|^0.13|^0.14", + "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", - "egulias/email-validator": "^3.2.1|^4.0", + "egulias/email-validator": "^4.0", "ext-ctype": "*", "ext-filter": "*", "ext-hash": "*", @@ -3759,33 +3693,32 @@ "guzzlehttp/guzzle": "^7.8.2", "guzzlehttp/uri-template": "^1.0", "laravel/prompts": "^0.3.0", - "laravel/serializable-closure": "^1.3|^2.0", - "league/commonmark": "^2.7", + "laravel/serializable-closure": "^2.0.10", + "league/commonmark": "^2.8.1", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", "league/uri": "^7.5.1", "monolog/monolog": "^3.0", "nesbot/carbon": "^3.8.4", "nunomaduro/termwind": "^2.0", - "php": "^8.2", - "psr/container": "^1.1.1|^2.0.1", - "psr/log": "^1.0|^2.0|^3.0", - "psr/simple-cache": "^1.0|^2.0|^3.0", + "php": "^8.3", + "psr/container": "^1.1.1 || ^2.0.1", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.2.0", - "symfony/error-handler": "^7.2.0", - "symfony/finder": "^7.2.0", - "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.2.0", - "symfony/mailer": "^7.2.0", - "symfony/mime": "^7.2.0", - "symfony/polyfill-php83": "^1.33", + "symfony/console": "^7.4.0 || ^8.0.0", + "symfony/error-handler": "^7.4.0 || ^8.0.0", + "symfony/finder": "^7.4.0 || ^8.0.0", + "symfony/http-foundation": "^7.4.0 || ^8.0.0", + "symfony/http-kernel": "^7.4.0 || ^8.0.0", + "symfony/mailer": "^7.4.0 || ^8.0.0", + "symfony/mime": "^7.4.0 || ^8.0.0", "symfony/polyfill-php84": "^1.33", "symfony/polyfill-php85": "^1.33", - "symfony/process": "^7.2.0", - "symfony/routing": "^7.2.0", - "symfony/uid": "^7.2.0", - "symfony/var-dumper": "^7.2.0", + "symfony/process": "^7.4.5 || ^8.0.5", + "symfony/routing": "^7.4.0 || ^8.0.0", + "symfony/uid": "^7.4.0 || ^8.0.0", + "symfony/var-dumper": "^7.4.0 || ^8.0.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.6.1", "voku/portable-ascii": "^2.0.2" @@ -3794,9 +3727,9 @@ "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.1|2.0", - "psr/log-implementation": "1.0|2.0|3.0", - "psr/simple-cache-implementation": "1.0|2.0|3.0" + "psr/container-implementation": "1.1 || 2.0", + "psr/log-implementation": "1.0 || 2.0 || 3.0", + "psr/simple-cache-implementation": "1.0 || 2.0 || 3.0" }, "replace": { "illuminate/auth": "self.version", @@ -3852,22 +3785,22 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.9.0", - "pda/pheanstalk": "^5.0.6|^7.0.0", + "orchestra/testbench-core": "^11.0.0", + "pda/pheanstalk": "^7.0.0 || ^8.0.0", "php-http/discovery": "^1.15", "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", - "predis/predis": "^2.3|^3.0", - "resend/resend-php": "^0.10.0|^1.0", - "symfony/cache": "^7.2.0", - "symfony/http-client": "^7.2.0", - "symfony/psr-http-message-bridge": "^7.2.0", - "symfony/translation": "^7.2.0" + "phpunit/phpunit": "^11.5.50 || ^12.5.8 || ^13.0.3", + "predis/predis": "^2.3 || ^3.0", + "resend/resend-php": "^1.0", + "symfony/cache": "^7.4.0 || ^8.0.0", + "symfony/http-client": "^7.4.0 || ^8.0.0", + "symfony/psr-http-message-bridge": "^7.4.0 || ^8.0.0", + "symfony/translation": "^7.4.0 || ^8.0.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", - "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", + "brianium/paratest": "Required to run tests in parallel (^7.0 || ^8.0).", "ext-apcu": "Required to use the APC cache driver.", "ext-fileinfo": "Required to use the Filesystem class.", "ext-ftp": "Required to use the Flysystem FTP driver.", @@ -3876,7 +3809,7 @@ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0 || ^5.0 || ^6.0).", "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "laravel/tinker": "Required to use the tinker console command (^2.0).", @@ -3886,24 +3819,24 @@ "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", "mockery/mockery": "Required to use mocking (^1.6).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^7.0 || ^8.0).", "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", - "predis/predis": "Required to use the predis connector (^2.3|^3.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^11.5.50 || ^12.5.8 || ^13.0.3).", + "predis/predis": "Required to use the predis connector (^2.3 || ^3.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0 || ^7.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0 || ^1.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.4 || ^8.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.4 || ^8.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.4 || ^8.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.4 || ^8.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.4 || ^8.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "12.x-dev" + "dev-master": "13.0.x-dev" } }, "autoload": { @@ -3948,7 +3881,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-02-24T14:35:15+00:00" + "time": "2026-03-17T14:42:13+00:00" }, { "name": "laravel/pail", @@ -4098,16 +4031,16 @@ }, { "name": "laravel/prompts", - "version": "v0.3.13", + "version": "v0.3.15", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "ed8c466571b37e977532fb2fd3c272c784d7050d" + "reference": "4bb8107ec97651fd3f17f897d6489dbc4d8fb999" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/ed8c466571b37e977532fb2fd3c272c784d7050d", - "reference": "ed8c466571b37e977532fb2fd3c272c784d7050d", + "url": "https://api.github.com/repos/laravel/prompts/zipball/4bb8107ec97651fd3f17f897d6489dbc4d8fb999", + "reference": "4bb8107ec97651fd3f17f897d6489dbc4d8fb999", "shasum": "" }, "require": { @@ -4151,9 +4084,9 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.13" + "source": "https://github.com/laravel/prompts/tree/v0.3.15" }, - "time": "2026-02-06T12:17:10+00:00" + "time": "2026-03-17T13:45:17+00:00" }, { "name": "laravel/serializable-closure", @@ -4218,33 +4151,33 @@ }, { "name": "laravel/tinker", - "version": "v2.11.1", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741" + "reference": "cc74081282ba2e3dae1f0068ccb330370d24634e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741", - "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741", + "url": "https://api.github.com/repos/laravel/tinker/zipball/cc74081282ba2e3dae1f0068ccb330370d24634e", + "reference": "cc74081282ba2e3dae1f0068ccb330370d24634e", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", - "php": "^7.2.5|^8.0", - "psy/psysh": "^0.11.1|^0.12.0", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0" + "illuminate/console": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "php": "^8.1", + "psy/psysh": "^0.12.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" + "phpunit/phpunit": "^10.5|^11.5" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." + "illuminate/database": "The Illuminate Database package (^8.0|^9.0|^10.0|^11.0|^12.0|^13.0)." }, "type": "library", "extra": { @@ -4252,6 +4185,9 @@ "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" ] + }, + "branch-alias": { + "dev-master": "3.x-dev" } }, "autoload": { @@ -4278,22 +4214,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.11.1" + "source": "https://github.com/laravel/tinker/tree/v3.0.0" }, - "time": "2026-02-06T14:12:35+00:00" + "time": "2026-03-17T14:53:17+00:00" }, { "name": "league/commonmark", - "version": "2.8.0", + "version": "2.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb" + "reference": "84b1ca48347efdbe775426f108622a42735a6579" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/4efa10c1e56488e658d10adf7b7b7dcd19940bfb", - "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84b1ca48347efdbe775426f108622a42735a6579", + "reference": "84b1ca48347efdbe775426f108622a42735a6579", "shasum": "" }, "require": { @@ -4318,9 +4254,9 @@ "phpstan/phpstan": "^1.8.2", "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0 | ^7.0", - "symfony/process": "^5.4 | ^6.0 | ^7.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", + "symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0", + "symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0 || ^8.0", "unleashedtech/php-coding-standard": "^3.1.1", "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0" }, @@ -4387,7 +4323,7 @@ "type": "tidelift" } ], - "time": "2025-11-26T21:48:24+00:00" + "time": "2026-03-05T21:37:03+00:00" }, { "name": "league/config", @@ -4564,16 +4500,16 @@ }, { "name": "league/flysystem", - "version": "3.31.0", + "version": "3.32.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff" + "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1717e0b3642b0df65ecb0cc89cdd99fa840672ff", - "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/254b1595b16b22dbddaaef9ed6ca9fdac4956725", + "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725", "shasum": "" }, "require": { @@ -4641,22 +4577,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.31.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.32.0" }, - "time": "2026-01-23T15:38:47+00:00" + "time": "2026-02-25T17:01:41+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.31.0", + "version": "3.32.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "e36a2bc60b06332c92e4435047797ded352b446f" + "reference": "a1979df7c9784d334ea6df356aed3d18ac6673d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/e36a2bc60b06332c92e4435047797ded352b446f", - "reference": "e36a2bc60b06332c92e4435047797ded352b446f", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/a1979df7c9784d334ea6df356aed3d18ac6673d0", + "reference": "a1979df7c9784d334ea6df356aed3d18ac6673d0", "shasum": "" }, "require": { @@ -4696,9 +4632,9 @@ "storage" ], "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.31.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.32.0" }, - "time": "2026-01-23T15:30:45+00:00" + "time": "2026-02-25T16:46:44+00:00" }, { "name": "league/flysystem-local", @@ -4807,20 +4743,20 @@ }, { "name": "league/uri", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "4436c6ec8d458e4244448b069cc572d088230b76" + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76", - "reference": "4436c6ec8d458e4244448b069cc572d088230b76", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.8", + "league/uri-interfaces": "^7.8.1", "php": "^8.1", "psr/http-factory": "^1" }, @@ -4893,7 +4829,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.8.0" + "source": "https://github.com/thephpleague/uri/tree/7.8.1" }, "funding": [ { @@ -4901,24 +4837,24 @@ "type": "github" } ], - "time": "2026-01-14T17:24:56+00:00" + "time": "2026-03-15T20:22:25+00:00" }, { "name": "league/uri-components", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-components.git", - "reference": "8b5ffcebcc0842b76eb80964795bd56a8333b2ba" + "reference": "848ff9db2f0be06229d6034b7c2e33d41b4fd675" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/8b5ffcebcc0842b76eb80964795bd56a8333b2ba", - "reference": "8b5ffcebcc0842b76eb80964795bd56a8333b2ba", + "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/848ff9db2f0be06229d6034b7c2e33d41b4fd675", + "reference": "848ff9db2f0be06229d6034b7c2e33d41b4fd675", "shasum": "" }, "require": { - "league/uri": "^7.8", + "league/uri": "^7.8.1", "php": "^8.1" }, "suggest": { @@ -4977,7 +4913,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-components/tree/7.8.0" + "source": "https://github.com/thephpleague/uri-components/tree/7.8.1" }, "funding": [ { @@ -4985,20 +4921,20 @@ "type": "github" } ], - "time": "2026-01-14T17:24:56+00:00" + "time": "2026-03-15T20:22:25+00:00" }, { "name": "league/uri-interfaces", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4" + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4", - "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928", "shasum": "" }, "require": { @@ -5061,7 +4997,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.8.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1" }, "funding": [ { @@ -5069,40 +5005,40 @@ "type": "github" } ], - "time": "2026-01-15T06:54:53+00:00" + "time": "2026-03-08T20:05:35+00:00" }, { "name": "livewire/livewire", - "version": "v3.7.10", + "version": "v3.7.11", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "0dc679eb4c8b4470cb12522b5927ef08ca2358bb" + "reference": "addd6e8e9234df75f29e6a327ee2a745a7d67bb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/0dc679eb4c8b4470cb12522b5927ef08ca2358bb", - "reference": "0dc679eb4c8b4470cb12522b5927ef08ca2358bb", + "url": "https://api.github.com/repos/livewire/livewire/zipball/addd6e8e9234df75f29e6a327ee2a745a7d67bb6", + "reference": "addd6e8e9234df75f29e6a327ee2a745a7d67bb6", "shasum": "" }, "require": { - "illuminate/database": "^10.0|^11.0|^12.0", - "illuminate/routing": "^10.0|^11.0|^12.0", - "illuminate/support": "^10.0|^11.0|^12.0", - "illuminate/validation": "^10.0|^11.0|^12.0", + "illuminate/database": "^10.0|^11.0|^12.0|^13.0", + "illuminate/routing": "^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", + "illuminate/validation": "^10.0|^11.0|^12.0|^13.0", "laravel/prompts": "^0.1.24|^0.2|^0.3", "league/mime-type-detection": "^1.9", "php": "^8.1", - "symfony/console": "^6.0|^7.0", - "symfony/http-kernel": "^6.2|^7.0" + "symfony/console": "^6.0|^7.0|^8.0", + "symfony/http-kernel": "^6.2|^7.0|^8.0" }, "require-dev": { "calebporzio/sushi": "^2.1", - "laravel/framework": "^10.15.0|^11.0|^12.0", + "laravel/framework": "^10.15.0|^11.0|^12.0|^13.0", "mockery/mockery": "^1.3.1", - "orchestra/testbench": "^8.21.0|^9.0|^10.0", - "orchestra/testbench-dusk": "^8.24|^9.1|^10.0", - "phpunit/phpunit": "^10.4|^11.5", + "orchestra/testbench": "^8.21.0|^9.0|^10.0|^11.0", + "orchestra/testbench-dusk": "^8.24|^9.1|^10.0|^11.0", + "phpunit/phpunit": "^10.4|^11.5|^12.5", "psy/psysh": "^0.11.22|^0.12" }, "type": "library", @@ -5137,7 +5073,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v3.7.10" + "source": "https://github.com/livewire/livewire/tree/v3.7.11" }, "funding": [ { @@ -5145,7 +5081,7 @@ "type": "github" } ], - "time": "2026-02-09T22:49:33+00:00" + "time": "2026-02-26T00:58:19+00:00" }, { "name": "maennchen/zipstream-php", @@ -5539,16 +5475,16 @@ }, { "name": "nesbot/carbon", - "version": "3.11.1", + "version": "3.11.3", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "f438fcc98f92babee98381d399c65336f3a3827f" + "reference": "6a7e652845bb018c668220c2a545aded8594fbbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/f438fcc98f92babee98381d399c65336f3a3827f", - "reference": "f438fcc98f92babee98381d399c65336f3a3827f", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/6a7e652845bb018c668220c2a545aded8594fbbf", + "reference": "6a7e652845bb018c668220c2a545aded8594fbbf", "shasum": "" }, "require": { @@ -5640,20 +5576,20 @@ "type": "tidelift" } ], - "time": "2026-01-29T09:26:29+00:00" + "time": "2026-03-11T17:23:39+00:00" }, { "name": "nette/php-generator", - "version": "v4.2.1", + "version": "v4.2.2", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "52aff4d9b12f20ca9f3e31a559b646d2fd21dd61" + "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/52aff4d9b12f20ca9f3e31a559b646d2fd21dd61", - "reference": "52aff4d9b12f20ca9f3e31a559b646d2fd21dd61", + "url": "https://api.github.com/repos/nette/php-generator/zipball/0d7060926f5c3e8c488b9b9ced42d857f12a34b5", + "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5", "shasum": "" }, "require": { @@ -5662,9 +5598,11 @@ }, "require-dev": { "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", "nette/tester": "^2.6", "nikic/php-parser": "^5.0", - "phpstan/phpstan": "^2.0@stable", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1.40@stable", "tracy/tracy": "^2.8" }, "suggest": { @@ -5710,9 +5648,9 @@ ], "support": { "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v4.2.1" + "source": "https://github.com/nette/php-generator/tree/v4.2.2" }, - "time": "2026-02-09T05:43:31+00:00" + "time": "2026-02-26T00:58:33+00:00" }, { "name": "nette/schema", @@ -6208,42 +6146,37 @@ }, { "name": "orchestra/canvas", - "version": "v10.1.1", + "version": "v11.0.0", "source": { "type": "git", "url": "https://github.com/orchestral/canvas.git", - "reference": "6e63f56acd46b0ee842e922d0ebb18af8f7a60f6" + "reference": "e7c270ef22584edf6b5e27dd847b1196a18afcf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/canvas/zipball/6e63f56acd46b0ee842e922d0ebb18af8f7a60f6", - "reference": "6e63f56acd46b0ee842e922d0ebb18af8f7a60f6", + "url": "https://api.github.com/repos/orchestral/canvas/zipball/e7c270ef22584edf6b5e27dd847b1196a18afcf1", + "reference": "e7c270ef22584edf6b5e27dd847b1196a18afcf1", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "composer/semver": "^3.0", - "illuminate/console": "^12.40.0", - "illuminate/database": "^12.40.0", - "illuminate/filesystem": "^12.40.0", - "illuminate/support": "^12.40.0", - "orchestra/canvas-core": "^10.1.2", - "orchestra/sidekick": "^1.2.7", - "orchestra/testbench-core": "^10.8.0", - "php": "^8.2", - "symfony/polyfill-php83": "^1.33", - "symfony/yaml": "^7.2.0" - }, - "conflict": { - "laravel/framework": "<12.40.0|>=13.0.0" + "illuminate/console": "^13.0.0", + "illuminate/database": "^13.0.0", + "illuminate/filesystem": "^13.0.0", + "illuminate/support": "^13.0.0", + "orchestra/canvas-core": "^11.0.0", + "orchestra/sidekick": "~1.1.23|~1.2.20", + "orchestra/testbench-core": "^11.0.0", + "php": "^8.3", + "symfony/yaml": "^7.4.0|^8.0.0" }, "require-dev": { - "laravel/framework": "^12.40.0", + "laravel/framework": "^13.0.0", "laravel/pint": "^1.24", - "mockery/mockery": "^1.6.12", + "mockery/mockery": "^1.6.10", "phpstan/phpstan": "^2.1.14", - "phpunit/phpunit": "^11.5.18|^12.0", - "spatie/laravel-ray": "^1.42.0" + "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0" }, "bin": [ "canvas" @@ -6278,42 +6211,40 @@ "description": "Code Generators for Laravel Applications and Packages", "support": { "issues": "https://github.com/orchestral/canvas/issues", - "source": "https://github.com/orchestral/canvas/tree/v10.1.1" + "source": "https://github.com/orchestral/canvas/tree/v11.0.0" }, - "time": "2025-11-24T04:53:34+00:00" + "time": "2026-03-16T15:27:40+00:00" }, { "name": "orchestra/canvas-core", - "version": "v10.1.2", + "version": "v11.0.0", "source": { "type": "git", "url": "https://github.com/orchestral/canvas-core.git", - "reference": "af1ac73bb0e4f5a65eeb3aadc1030983c6ea0aea" + "reference": "88d091ff989748e2ca447bca0cd06ab14671ba82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/canvas-core/zipball/af1ac73bb0e4f5a65eeb3aadc1030983c6ea0aea", - "reference": "af1ac73bb0e4f5a65eeb3aadc1030983c6ea0aea", + "url": "https://api.github.com/repos/orchestral/canvas-core/zipball/88d091ff989748e2ca447bca0cd06ab14671ba82", + "reference": "88d091ff989748e2ca447bca0cd06ab14671ba82", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "composer/semver": "^3.0", - "illuminate/console": "^12.40.0", - "illuminate/support": "^12.40.0", - "orchestra/sidekick": "^1.2.0", - "php": "^8.2", - "symfony/polyfill-php83": "^1.33" + "illuminate/console": "^13.0", + "illuminate/support": "^13.0", + "orchestra/sidekick": "~1.1.23|~1.2.20", + "php": "^8.3" }, "require-dev": { - "laravel/framework": "^12.40.0", + "laravel/framework": "^13.0", "laravel/pint": "^1.24", "mockery/mockery": "^1.6.10", - "orchestra/testbench-core": "^10.8.0", - "phpstan/phpstan": "^2.1.14", - "phpunit/phpunit": "^11.5.12|^12.0.1", - "spatie/laravel-ray": "^1.40.2", - "symfony/yaml": "^7.2" + "orchestra/testbench-core": "^11.0", + "phpstan/phpstan": "^2.1.17", + "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0", + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "extra": { @@ -6345,9 +6276,9 @@ "description": "Code Generators Builder for Laravel Applications and Packages", "support": { "issues": "https://github.com/orchestral/canvas/issues", - "source": "https://github.com/orchestral/canvas-core/tree/v10.1.2" + "source": "https://github.com/orchestral/canvas-core/tree/v11.0.0" }, - "time": "2025-11-24T04:41:15+00:00" + "time": "2026-03-16T15:10:50+00:00" }, { "name": "orchestra/sidekick", @@ -6410,29 +6341,29 @@ }, { "name": "orchestra/testbench", - "version": "v10.9.0", + "version": "v11.0.0", "source": { "type": "git", "url": "https://github.com/orchestral/testbench.git", - "reference": "040a37b60e1a9d7ae10b496407b6c3bb63b47038" + "reference": "60efc9e8ec12137a2a7084e9d54c976f78c192f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench/zipball/040a37b60e1a9d7ae10b496407b6c3bb63b47038", - "reference": "040a37b60e1a9d7ae10b496407b6c3bb63b47038", + "url": "https://api.github.com/repos/orchestral/testbench/zipball/60efc9e8ec12137a2a7084e9d54c976f78c192f5", + "reference": "60efc9e8ec12137a2a7084e9d54c976f78c192f5", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "fakerphp/faker": "^1.23", - "laravel/framework": "^12.40.0", + "laravel/framework": "^13.0.0", "mockery/mockery": "^1.6.10", - "orchestra/testbench-core": "^10.9.0", - "orchestra/workbench": "^10.0.8", - "php": "^8.2", - "phpunit/phpunit": "^11.5.3|^12.0.1", - "symfony/process": "^7.2", - "symfony/yaml": "^7.2", + "orchestra/testbench-core": "^11.0.0", + "orchestra/workbench": "^11.0.0", + "php": "^8.3", + "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0", + "symfony/process": "^7.4.5|^8.0.5", + "symfony/yaml": "^7.4|^8.0", "vlucas/phpdotenv": "^5.6.1" }, "type": "library", @@ -6459,62 +6390,61 @@ ], "support": { "issues": "https://github.com/orchestral/testbench/issues", - "source": "https://github.com/orchestral/testbench/tree/v10.9.0" + "source": "https://github.com/orchestral/testbench/tree/v11.0.0" }, - "time": "2026-01-14T03:26:57+00:00" + "time": "2026-03-16T15:02:09+00:00" }, { "name": "orchestra/testbench-core", - "version": "v10.9.0", + "version": "v11.0.0", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "754d2b71601822d1f57f28119e4dea27ed1a5205" + "reference": "1fe4c0e9f08199bfee3167a0f536ae124da77dab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/754d2b71601822d1f57f28119e4dea27ed1a5205", - "reference": "754d2b71601822d1f57f28119e4dea27ed1a5205", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/1fe4c0e9f08199bfee3167a0f536ae124da77dab", + "reference": "1fe4c0e9f08199bfee3167a0f536ae124da77dab", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "orchestra/sidekick": "~1.1.23|~1.2.20", - "php": "^8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/polyfill-php83": "^1.33" + "php": "^8.3", + "symfony/deprecation-contracts": "^2.5|^3.0" }, "conflict": { "brianium/paratest": "<7.3.0|>=8.0.0", - "laravel/framework": "<12.40.0|>=13.0.0", - "laravel/serializable-closure": "<1.3.0|>=2.0.0 <2.0.3|>=3.0.0", - "nunomaduro/collision": "<8.0.0|>=9.0.0", - "phpunit/phpunit": "<10.5.35|>=11.0.0 <11.5.3|12.0.0|>=12.6.0" + "laravel/framework": "<13.0.0|>=14.0.0", + "laravel/serializable-closure": ">=2.0.0 <2.0.10|>=3.0.0", + "nunomaduro/collision": "<8.9.0|>=9.0.0", + "phpunit/phpunit": "<11.5.50|>=12.0.0 <12.5.8|>=13.1.0" }, "require-dev": { "fakerphp/faker": "^1.24", - "laravel/framework": "^12.40.0", + "laravel/framework": "^13.0.0", "laravel/pint": "^1.24", - "laravel/serializable-closure": "^1.3|^2.0.4", + "laravel/serializable-closure": "^2.0.10", "mockery/mockery": "^1.6.10", - "phpstan/phpstan": "^2.1.33", - "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", - "spatie/laravel-ray": "^1.42.0", - "symfony/process": "^7.2.0", - "symfony/yaml": "^7.2.0", + "phpstan/phpstan": "^2.1.38", + "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0", + "spatie/laravel-ray": "^1.43.6", + "symfony/process": "^7.4.5|^8.0.5", + "symfony/yaml": "^7.4.0|^8.0.0", "vlucas/phpdotenv": "^5.6.1" }, "suggest": { "brianium/paratest": "Allow using parallel testing (^7.3).", "ext-pcntl": "Required to use all features of the console signal trapping.", "fakerphp/faker": "Allow using Faker for testing (^1.23).", - "laravel/framework": "Required for testing (^12.40.0).", + "laravel/framework": "Required for testing (^13.0.0).", "mockery/mockery": "Allow using Mockery for testing (^1.6).", - "nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^8.0).", - "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^10.0).", - "phpunit/phpunit": "Allow using PHPUnit for testing (^10.5.35|^11.5.3|^12.0.1).", - "symfony/process": "Required to use Orchestra\\Testbench\\remote function (^7.2).", - "symfony/yaml": "Required for Testbench CLI (^7.2).", + "nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^8.9).", + "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^11.0).", + "phpunit/phpunit": "Allow using PHPUnit for testing (^11.5.50|^12.5.8|^13.0.0).", + "symfony/process": "Required to use Orchestra\\Testbench\\remote function (^7.4|^8.0).", + "symfony/yaml": "Required for Testbench CLI (^7.4|^8.0).", "vlucas/phpdotenv": "Required for Testbench CLI (^5.6.1)." }, "bin": [ @@ -6554,43 +6484,42 @@ "issues": "https://github.com/orchestral/testbench/issues", "source": "https://github.com/orchestral/testbench-core" }, - "time": "2026-01-13T05:19:42+00:00" + "time": "2026-03-16T14:54:46+00:00" }, { "name": "orchestra/workbench", - "version": "v10.0.8", + "version": "v11.0.0", "source": { "type": "git", "url": "https://github.com/orchestral/workbench.git", - "reference": "88bb9b5872539dd8b556b232a1b466f639c18259" + "reference": "059472a206fd3a245a82f6132b735988d190b44b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/workbench/zipball/88bb9b5872539dd8b556b232a1b466f639c18259", - "reference": "88bb9b5872539dd8b556b232a1b466f639c18259", + "url": "https://api.github.com/repos/orchestral/workbench/zipball/059472a206fd3a245a82f6132b735988d190b44b", + "reference": "059472a206fd3a245a82f6132b735988d190b44b", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "fakerphp/faker": "^1.23", - "laravel/framework": "^12.40.0", - "laravel/pail": "^1.2.2", - "laravel/tinker": "^2.10.1", - "nunomaduro/collision": "^8.6", - "orchestra/canvas": "^10.1.1", + "laravel/framework": "^13.0.0", + "laravel/pail": "^1.2.5", + "laravel/tinker": "^3.0.0", + "nunomaduro/collision": "^8.9", + "orchestra/canvas": "^11.0.0", "orchestra/sidekick": "~1.1.23|~1.2.20", - "orchestra/testbench-core": "^10.8.0", - "php": "^8.2", - "symfony/polyfill-php83": "^1.33", - "symfony/process": "^7.2", - "symfony/yaml": "^7.2" + "orchestra/testbench-core": "^11.0.0", + "php": "^8.3", + "symfony/process": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, "require-dev": { "laravel/pint": "^1.22.0", "mockery/mockery": "^1.6.12", "phpstan/phpstan": "^2.1.33", - "phpunit/phpunit": "^11.5.3|^12.0.1", - "spatie/laravel-ray": "^1.42.0" + "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0", + "spatie/laravel-ray": "^1.43.6" }, "suggest": { "ext-pcntl": "Required to use all features of the console signal trapping." @@ -6620,9 +6549,9 @@ ], "support": { "issues": "https://github.com/orchestral/workbench/issues", - "source": "https://github.com/orchestral/workbench/tree/v10.0.8" + "source": "https://github.com/orchestral/workbench/tree/v11.0.0" }, - "time": "2026-01-12T14:48:09+00:00" + "time": "2026-03-16T15:51:50+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -6695,21 +6624,21 @@ }, { "name": "pestphp/pest", - "version": "v4.4.1", + "version": "v4.4.2", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "f96a1b27864b585b0b29b0ee7331176726f7e54a" + "reference": "5d42e8fe3ae1d9fdf7c9f73ee88138fd30265701" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/f96a1b27864b585b0b29b0ee7331176726f7e54a", - "reference": "f96a1b27864b585b0b29b0ee7331176726f7e54a", + "url": "https://api.github.com/repos/pestphp/pest/zipball/5d42e8fe3ae1d9fdf7c9f73ee88138fd30265701", + "reference": "5d42e8fe3ae1d9fdf7c9f73ee88138fd30265701", "shasum": "" }, "require": { "brianium/paratest": "^7.19.0", - "nunomaduro/collision": "^8.9.0", + "nunomaduro/collision": "^8.9.1", "nunomaduro/termwind": "^2.4.0", "pestphp/pest-plugin": "^4.0.0", "pestphp/pest-plugin-arch": "^4.0.0", @@ -6729,7 +6658,7 @@ "pestphp/pest-dev-tools": "^4.1.0", "pestphp/pest-plugin-browser": "^4.3.0", "pestphp/pest-plugin-type-coverage": "^4.0.3", - "psy/psysh": "^0.12.20" + "psy/psysh": "^0.12.21" }, "bin": [ "bin/pest" @@ -6795,7 +6724,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v4.4.1" + "source": "https://github.com/pestphp/pest/tree/v4.4.2" }, "funding": [ { @@ -6807,7 +6736,7 @@ "type": "github" } ], - "time": "2026-02-17T15:27:18+00:00" + "time": "2026-03-10T21:09:12+00:00" }, { "name": "pestphp/pest-plugin", @@ -7482,16 +7411,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.6", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8" + "reference": "897b5986ece6b4f9d8413fea345c7d49c757d6bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/5cee1d3dfc2d2aa6599834520911d246f656bcb8", - "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/897b5986ece6b4f9d8413fea345c7d49c757d6bf", + "reference": "897b5986ece6b4f9d8413fea345c7d49c757d6bf", "shasum": "" }, "require": { @@ -7499,8 +7428,8 @@ "ext-filter": "*", "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7|^2.0", + "phpdocumentor/type-resolver": "^2.0", + "phpstan/phpdoc-parser": "^2.0", "webmozart/assert": "^1.9.1 || ^2" }, "require-dev": { @@ -7510,7 +7439,8 @@ "phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-webmozart-assert": "^1.2", "phpunit/phpunit": "^9.5", - "psalm/phar": "^5.26" + "psalm/phar": "^5.26", + "shipmonk/dead-code-detector": "^0.5.1" }, "type": "library", "extra": { @@ -7540,44 +7470,44 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.6" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.2" }, - "time": "2025-12-22T21:13:58+00:00" + "time": "2026-03-01T18:43:49+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.12.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" + "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/327a05bbee54120d4786a0dc67aad30226ad4cf9", + "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", - "php": "^7.3 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.18|^2.0" + "phpstan/phpdoc-parser": "^2.0" }, "require-dev": { "ext-tokenizer": "*", "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" + "psalm/phar": "^4" }, "type": "library", "extra": { "branch-alias": { - "dev-1.x": "1.x-dev" + "dev-1.x": "1.x-dev", + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -7598,9 +7528,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/2.0.0" }, - "time": "2025-11-21T15:09:14+00:00" + "time": "2026-01-06T21:53:42+00:00" }, { "name": "phpoption/phpoption", @@ -7774,11 +7704,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.40", + "version": "2.1.42", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b", - "reference": "9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1279e1ce86ba768f0780c9d889852b4e02ff40d0", + "reference": "1279e1ce86ba768f0780c9d889852b4e02ff40d0", "shasum": "" }, "require": { @@ -7823,7 +7753,7 @@ "type": "github" } ], - "time": "2026-02-23T15:04:35+00:00" + "time": "2026-03-17T14:58:32+00:00" }, { "name": "phpunit/php-code-coverage", @@ -8810,16 +8740,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.20", + "version": "v0.12.21", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "19678eb6b952a03b8a1d96ecee9edba518bb0373" + "reference": "4821fab5b7cd8c49a673a9fd5754dc9162bb9e97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/19678eb6b952a03b8a1d96ecee9edba518bb0373", - "reference": "19678eb6b952a03b8a1d96ecee9edba518bb0373", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4821fab5b7cd8c49a673a9fd5754dc9162bb9e97", + "reference": "4821fab5b7cd8c49a673a9fd5754dc9162bb9e97", "shasum": "" }, "require": { @@ -8883,9 +8813,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.20" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.21" }, - "time": "2026-02-11T15:05:28+00:00" + "time": "2026-03-06T21:21:28+00:00" }, { "name": "ralouphie/getallheaders", @@ -9087,21 +9017,21 @@ }, { "name": "rector/rector", - "version": "2.3.8", + "version": "2.3.9", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "bbd37aedd8df749916cffa2a947cfc4714d1ba2c" + "reference": "917842143fd9f5331a2adefc214b8d7143bd32c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/bbd37aedd8df749916cffa2a947cfc4714d1ba2c", - "reference": "bbd37aedd8df749916cffa2a947cfc4714d1ba2c", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/917842143fd9f5331a2adefc214b8d7143bd32c4", + "reference": "917842143fd9f5331a2adefc214b8d7143bd32c4", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.1.38" + "phpstan/phpstan": "^2.1.40" }, "conflict": { "rector/rector-doctrine": "*", @@ -9135,7 +9065,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.3.8" + "source": "https://github.com/rectorphp/rector/tree/2.3.9" }, "funding": [ { @@ -9143,7 +9073,7 @@ "type": "github" } ], - "time": "2026-02-22T09:45:50+00:00" + "time": "2026-03-16T09:43:55+00:00" }, { "name": "revolt/event-loop", @@ -9217,84 +9147,6 @@ }, "time": "2025-08-27T21:33:23+00:00" }, - { - "name": "ryangjchandler/blade-capture-directive", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/ryangjchandler/blade-capture-directive.git", - "reference": "bbb1513dfd89eaec87a47fe0c449a7e3d4a1976d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ryangjchandler/blade-capture-directive/zipball/bbb1513dfd89eaec87a47fe0c449a7e3d4a1976d", - "reference": "bbb1513dfd89eaec87a47fe0c449a7e3d4a1976d", - "shasum": "" - }, - "require": { - "illuminate/contracts": "^10.0|^11.0|^12.0", - "php": "^8.1", - "spatie/laravel-package-tools": "^1.9.2" - }, - "require-dev": { - "nunomaduro/collision": "^7.0|^8.0", - "nunomaduro/larastan": "^2.0|^3.0", - "orchestra/testbench": "^8.0|^9.0|^10.0", - "pestphp/pest": "^2.0|^3.7", - "pestphp/pest-plugin-laravel": "^2.0|^3.1", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", - "phpstan/phpstan-phpunit": "^1.0|^2.0", - "phpunit/phpunit": "^10.0|^11.5.3", - "spatie/laravel-ray": "^1.26" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "BladeCaptureDirective": "RyanChandler\\BladeCaptureDirective\\Facades\\BladeCaptureDirective" - }, - "providers": [ - "RyanChandler\\BladeCaptureDirective\\BladeCaptureDirectiveServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "RyanChandler\\BladeCaptureDirective\\": "src", - "RyanChandler\\BladeCaptureDirective\\Database\\Factories\\": "database/factories" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ryan Chandler", - "email": "support@ryangjchandler.co.uk", - "role": "Developer" - } - ], - "description": "Create inline partials in your Blade templates with ease.", - "homepage": "https://github.com/ryangjchandler/blade-capture-directive", - "keywords": [ - "blade-capture-directive", - "laravel", - "ryangjchandler" - ], - "support": { - "issues": "https://github.com/ryangjchandler/blade-capture-directive/issues", - "source": "https://github.com/ryangjchandler/blade-capture-directive/tree/v1.1.0" - }, - "funding": [ - { - "url": "https://github.com/ryangjchandler", - "type": "github" - } - ], - "time": "2025-02-25T09:09:36+00:00" - }, { "name": "scrivo/highlight.php", "version": "v9.18.1.10", @@ -9661,16 +9513,16 @@ }, { "name": "sebastian/environment", - "version": "8.0.3", + "version": "8.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68" + "reference": "7b8842c2d8e85d0c3a5831236bf5869af6ab2a11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68", - "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/7b8842c2d8e85d0c3a5831236bf5869af6ab2a11", + "reference": "7b8842c2d8e85d0c3a5831236bf5869af6ab2a11", "shasum": "" }, "require": { @@ -9713,7 +9565,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3" + "source": "https://github.com/sebastianbergmann/environment/tree/8.0.4" }, "funding": [ { @@ -9733,7 +9585,7 @@ "type": "tidelift" } ], - "time": "2025-08-12T14:11:56+00:00" + "time": "2026-03-15T07:05:40+00:00" }, { "name": "sebastian/exporter", @@ -10346,16 +10198,16 @@ }, { "name": "spatie/image", - "version": "3.9.1", + "version": "3.9.4", "source": { "type": "git", "url": "https://github.com/spatie/image.git", - "reference": "9a8e02839897b236f37708d24bcb12381ba050ff" + "reference": "6a322b5e9268e3903d4fb6e1ff08b7dcc3aa9429" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image/zipball/9a8e02839897b236f37708d24bcb12381ba050ff", - "reference": "9a8e02839897b236f37708d24bcb12381ba050ff", + "url": "https://api.github.com/repos/spatie/image/zipball/6a322b5e9268e3903d4fb6e1ff08b7dcc3aa9429", + "reference": "6a322b5e9268e3903d4fb6e1ff08b7dcc3aa9429", "shasum": "" }, "require": { @@ -10403,7 +10255,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/image/tree/3.9.1" + "source": "https://github.com/spatie/image/tree/3.9.4" }, "funding": [ { @@ -10415,7 +10267,7 @@ "type": "github" } ], - "time": "2026-01-12T07:34:13+00:00" + "time": "2026-03-13T14:23:45+00:00" }, { "name": "spatie/image-optimizer", @@ -10704,31 +10556,31 @@ }, { "name": "spatie/laravel-settings", - "version": "3.7.0", + "version": "3.7.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-settings.git", - "reference": "83b179e8097645a30d402d75ba3c19621464494d" + "reference": "3e4e9ca8b16ef327839ed5486511b91186cdbbdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-settings/zipball/83b179e8097645a30d402d75ba3c19621464494d", - "reference": "83b179e8097645a30d402d75ba3c19621464494d", + "url": "https://api.github.com/repos/spatie/laravel-settings/zipball/3e4e9ca8b16ef327839ed5486511b91186cdbbdb", + "reference": "3e4e9ca8b16ef327839ed5486511b91186cdbbdb", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/database": "^11.0|^12.0", + "illuminate/database": "^11.0|^12.0|^13.0", "php": "^8.2", - "phpdocumentor/type-resolver": "^1.5", + "phpdocumentor/type-resolver": "^1.5|^2.0", "spatie/temporary-directory": "^1.3|^2.0" }, "require-dev": { "ext-redis": "*", "mockery/mockery": "^1.4", - "orchestra/testbench": "^9.0|^10.0", - "pestphp/pest": "^2.0|^3.0", - "pestphp/pest-plugin-laravel": "^2.0|^3.0", + "orchestra/testbench": "^9.0|^10.0|^11.0", + "pestphp/pest": "^2.0|^3.0|^4.0", + "pestphp/pest-plugin-laravel": "^2.0|^3.0|^4.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", @@ -10773,7 +10625,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-settings/issues", - "source": "https://github.com/spatie/laravel-settings/tree/3.7.0" + "source": "https://github.com/spatie/laravel-settings/tree/3.7.2" }, "funding": [ { @@ -10785,7 +10637,7 @@ "type": "github" } ], - "time": "2026-02-09T15:22:32+00:00" + "time": "2026-03-17T09:11:43+00:00" }, { "name": "spatie/laravel-tags", @@ -11120,29 +10972,29 @@ }, { "name": "staudenmeir/belongs-to-through", - "version": "v2.17", + "version": "v2.18", "source": { "type": "git", "url": "https://github.com/staudenmeir/belongs-to-through.git", - "reference": "e45460f8eecd882e5daea2af8f948d7596c20ba0" + "reference": "accb37643cf4829319617923877d11b55558a099" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/staudenmeir/belongs-to-through/zipball/e45460f8eecd882e5daea2af8f948d7596c20ba0", - "reference": "e45460f8eecd882e5daea2af8f948d7596c20ba0", + "url": "https://api.github.com/repos/staudenmeir/belongs-to-through/zipball/accb37643cf4829319617923877d11b55558a099", + "reference": "accb37643cf4829319617923877d11b55558a099", "shasum": "" }, "require": { - "illuminate/database": "^12.0", - "php": "^8.2" + "illuminate/database": "^13.0", + "php": "^8.3" }, "require-dev": { "barryvdh/laravel-ide-helper": "^3.0", "larastan/larastan": "^3.0", - "laravel/framework": "^12.0", + "laravel/framework": "^13.0", "mockery/mockery": "^1.5.1", - "orchestra/testbench-core": "^10.0", - "phpunit/phpunit": "^11.0" + "orchestra/testbench-core": "^11.0", + "phpunit/phpunit": "^12.5" }, "type": "library", "extra": { @@ -11175,7 +11027,7 @@ "description": "Laravel Eloquent BelongsToThrough relationships", "support": { "issues": "https://github.com/staudenmeir/belongs-to-through/issues", - "source": "https://github.com/staudenmeir/belongs-to-through/tree/v2.17" + "source": "https://github.com/staudenmeir/belongs-to-through/tree/v2.18" }, "funding": [ { @@ -11183,38 +11035,37 @@ "type": "custom" } ], - "time": "2025-02-20T19:24:03+00:00" + "time": "2026-02-28T16:25:30+00:00" }, { "name": "staudenmeir/eloquent-has-many-deep", - "version": "v1.21.2", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/staudenmeir/eloquent-has-many-deep.git", - "reference": "b0a3041c44237ebcd0d1005e475a4c736cba482c" + "reference": "e4fe26fd2acaab05cc283bb916d813425f960947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep/zipball/b0a3041c44237ebcd0d1005e475a4c736cba482c", - "reference": "b0a3041c44237ebcd0d1005e475a4c736cba482c", + "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep/zipball/e4fe26fd2acaab05cc283bb916d813425f960947", + "reference": "e4fe26fd2acaab05cc283bb916d813425f960947", "shasum": "" }, "require": { - "illuminate/database": "^12.0", - "php": "^8.2", - "staudenmeir/eloquent-has-many-deep-contracts": "^1.3" + "illuminate/database": "^13.0", + "php": "^8.3", + "staudenmeir/eloquent-has-many-deep-contracts": "^1.4" }, "require-dev": { - "awobaz/compoships": "^2.3", + "awobaz/compoships": "^2.5.5", "barryvdh/laravel-ide-helper": "^3.0", - "korridor/laravel-has-many-merged": "^1.2", "larastan/larastan": "^3.0", - "laravel/framework": "^12.0", + "laravel/framework": "^13.0", "mockery/mockery": "^1.6", - "orchestra/testbench-core": "^10.0", - "phpunit/phpunit": "^11.0", - "staudenmeir/eloquent-json-relations": "^1.14", - "staudenmeir/laravel-adjacency-list": "^1.24" + "orchestra/testbench-core": "^11.0", + "phpunit/phpunit": "^12.5", + "staudenmeir/eloquent-json-relations": "v1.15", + "staudenmeir/laravel-adjacency-list": "v1.26" }, "type": "library", "extra": { @@ -11242,7 +11093,7 @@ "description": "Laravel Eloquent HasManyThrough relationships with unlimited levels", "support": { "issues": "https://github.com/staudenmeir/eloquent-has-many-deep/issues", - "source": "https://github.com/staudenmeir/eloquent-has-many-deep/tree/v1.21.2" + "source": "https://github.com/staudenmeir/eloquent-has-many-deep/tree/v1.22.1" }, "funding": [ { @@ -11250,25 +11101,25 @@ "type": "custom" } ], - "time": "2025-11-08T08:44:24+00:00" + "time": "2026-03-14T10:53:06+00:00" }, { "name": "staudenmeir/eloquent-has-many-deep-contracts", - "version": "v1.3", + "version": "v1.4", "source": { "type": "git", "url": "https://github.com/staudenmeir/eloquent-has-many-deep-contracts.git", - "reference": "37ce351e4db919b3af606bc8ca0e62e2e4939cde" + "reference": "6eadbd6904c057e9439f86f8de185f56693fa537" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep-contracts/zipball/37ce351e4db919b3af606bc8ca0e62e2e4939cde", - "reference": "37ce351e4db919b3af606bc8ca0e62e2e4939cde", + "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep-contracts/zipball/6eadbd6904c057e9439f86f8de185f56693fa537", + "reference": "6eadbd6904c057e9439f86f8de185f56693fa537", "shasum": "" }, "require": { - "illuminate/database": "^12.0", - "php": "^8.2" + "illuminate/database": "^13.0", + "php": "^8.3" }, "type": "library", "autoload": { @@ -11289,9 +11140,9 @@ "description": "Contracts for staudenmeir/eloquent-has-many-deep", "support": { "issues": "https://github.com/staudenmeir/eloquent-has-many-deep-contracts/issues", - "source": "https://github.com/staudenmeir/eloquent-has-many-deep-contracts/tree/v1.3" + "source": "https://github.com/staudenmeir/eloquent-has-many-deep-contracts/tree/v1.4" }, - "time": "2025-02-15T17:11:01+00:00" + "time": "2026-02-28T21:33:50+00:00" }, { "name": "symfony/clock", @@ -11372,47 +11223,39 @@ }, { "name": "symfony/console", - "version": "v7.4.4", + "version": "v8.0.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894" + "reference": "15ed9008a4ebe2d6a78e4937f74e0c13ef2e618a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/41e38717ac1dd7a46b6bda7d6a82af2d98a78894", - "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894", + "url": "https://api.github.com/repos/symfony/console/zipball/15ed9008a4ebe2d6a78e4937f74e0c13ef2e618a", + "reference": "15ed9008a4ebe2d6a78e4937f74e0c13ef2e618a", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", + "php": ">=8.4", + "symfony/polyfill-mbstring": "^1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2|^8.0" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" + "symfony/string": "^7.4|^8.0" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/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" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -11446,7 +11289,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.4" + "source": "https://github.com/symfony/console/tree/v8.0.7" }, "funding": [ { @@ -11466,20 +11309,20 @@ "type": "tidelift" } ], - "time": "2026-01-13T11:36:38+00:00" + "time": "2026-03-06T14:06:22+00:00" }, { "name": "symfony/css-selector", - "version": "v8.0.0", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "6225bd458c53ecdee056214cb4a2ffaf58bd592b" + "reference": "2a178bf80f05dbbe469a337730eba79d61315262" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/6225bd458c53ecdee056214cb4a2ffaf58bd592b", - "reference": "6225bd458c53ecdee056214cb4a2ffaf58bd592b", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/2a178bf80f05dbbe469a337730eba79d61315262", + "reference": "2a178bf80f05dbbe469a337730eba79d61315262", "shasum": "" }, "require": { @@ -11515,7 +11358,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v8.0.0" + "source": "https://github.com/symfony/css-selector/tree/v8.0.6" }, "funding": [ { @@ -11535,7 +11378,7 @@ "type": "tidelift" } ], - "time": "2025-10-30T14:17:19+00:00" + "time": "2026-02-17T13:07:04+00:00" }, { "name": "symfony/deprecation-contracts", @@ -11606,33 +11449,32 @@ }, { "name": "symfony/error-handler", - "version": "v7.4.4", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "8da531f364ddfee53e36092a7eebbbd0b775f6b8" + "reference": "7620b97ec0ab1d2d6c7fb737aa55da411bea776a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/8da531f364ddfee53e36092a7eebbbd0b775f6b8", - "reference": "8da531f364ddfee53e36092a7eebbbd0b775f6b8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/7620b97ec0ab1d2d6c7fb737aa55da411bea776a", + "reference": "7620b97ec0ab1d2d6c7fb737aa55da411bea776a", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "psr/log": "^1|^2|^3", "symfony/polyfill-php85": "^1.32", - "symfony/var-dumper": "^6.4|^7.0|^8.0" + "symfony/var-dumper": "^7.4|^8.0" }, "conflict": { - "symfony/deprecation-contracts": "<2.5", - "symfony/http-kernel": "<6.4" + "symfony/deprecation-contracts": "<2.5" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", + "symfony/console": "^7.4|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/serializer": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ @@ -11664,7 +11506,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.4.4" + "source": "https://github.com/symfony/error-handler/tree/v8.0.4" }, "funding": [ { @@ -11684,7 +11526,7 @@ "type": "tidelift" } ], - "time": "2026-01-20T16:42:42+00:00" + "time": "2026-01-23T11:07:10+00:00" }, { "name": "symfony/event-dispatcher", @@ -11849,16 +11691,16 @@ }, { "name": "symfony/filesystem", - "version": "v8.0.1", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "d937d400b980523dc9ee946bb69972b5e619058d" + "reference": "7bf9162d7a0dff98d079b72948508fa48018a770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d937d400b980523dc9ee946bb69972b5e619058d", - "reference": "d937d400b980523dc9ee946bb69972b5e619058d", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/7bf9162d7a0dff98d079b72948508fa48018a770", + "reference": "7bf9162d7a0dff98d079b72948508fa48018a770", "shasum": "" }, "require": { @@ -11895,7 +11737,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v8.0.1" + "source": "https://github.com/symfony/filesystem/tree/v8.0.6" }, "funding": [ { @@ -11915,27 +11757,27 @@ "type": "tidelift" } ], - "time": "2025-12-01T09:13:36+00:00" + "time": "2026-02-25T16:59:43+00:00" }, { "name": "symfony/finder", - "version": "v7.4.5", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb" + "reference": "441404f09a54de6d1bd6ad219e088cdf4c91f97c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", - "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", + "url": "https://api.github.com/repos/symfony/finder/zipball/441404f09a54de6d1bd6ad219e088cdf4c91f97c", + "reference": "441404f09a54de6d1bd6ad219e088cdf4c91f97c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0|^8.0" + "symfony/filesystem": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -11963,7 +11805,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.5" + "source": "https://github.com/symfony/finder/tree/v8.0.6" }, "funding": [ { @@ -11983,20 +11825,20 @@ "type": "tidelift" } ], - "time": "2026-01-26T15:07:59+00:00" + "time": "2026-01-29T09:41:02+00:00" }, { "name": "symfony/html-sanitizer", - "version": "v8.0.0", + "version": "v8.0.7", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "b091fe14296544172b1ec810cbd0af42e8d8ce89" + "reference": "555b37caeee3d07af33471e02377d5ff561f8ac2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/b091fe14296544172b1ec810cbd0af42e8d8ce89", - "reference": "b091fe14296544172b1ec810cbd0af42e8d8ce89", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/555b37caeee3d07af33471e02377d5ff561f8ac2", + "reference": "555b37caeee3d07af33471e02377d5ff561f8ac2", "shasum": "" }, "require": { @@ -12035,7 +11877,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v8.0.0" + "source": "https://github.com/symfony/html-sanitizer/tree/v8.0.7" }, "funding": [ { @@ -12055,41 +11897,39 @@ "type": "tidelift" } ], - "time": "2025-10-30T14:17:19+00:00" + "time": "2026-03-06T13:17:40+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.4.5", + "version": "v8.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "446d0db2b1f21575f1284b74533e425096abdfb6" + "reference": "c5ecf7b07408dbc4a87482634307654190954ae8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/446d0db2b1f21575f1284b74533e425096abdfb6", - "reference": "446d0db2b1f21575f1284b74533e425096abdfb6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c5ecf7b07408dbc4a87482634307654190954ae8", + "reference": "c5ecf7b07408dbc4a87482634307654190954ae8", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4", "symfony/polyfill-mbstring": "^1.1" }, "conflict": { - "doctrine/dbal": "<3.6", - "symfony/cache": "<6.4.12|>=7.0,<7.1.5" + "doctrine/dbal": "<4.3" }, "require-dev": { - "doctrine/dbal": "^3.6|^4", + "doctrine/dbal": "^4.3", "predis/predis": "^1.1|^2.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" + "symfony/cache": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -12117,7 +11957,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.5" + "source": "https://github.com/symfony/http-foundation/tree/v8.0.7" }, "funding": [ { @@ -12137,78 +11977,63 @@ "type": "tidelift" } ], - "time": "2026-01-27T16:16:02+00:00" + "time": "2026-03-06T13:17:40+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.5", + "version": "v8.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "229eda477017f92bd2ce7615d06222ec0c19e82a" + "reference": "c04721f45723d8ce049fa3eee378b5a505272ac7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/229eda477017f92bd2ce7615d06222ec0c19e82a", - "reference": "229eda477017f92bd2ce7615d06222ec0c19e82a", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c04721f45723d8ce049fa3eee378b5a505272ac7", + "reference": "c04721f45723d8ce049fa3eee378b5a505272ac7", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^7.3|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", "symfony/http-foundation": "^7.4|^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/browser-kit": "<6.4", - "symfony/cache": "<6.4", - "symfony/config": "<6.4", - "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", - "symfony/mailer": "<6.4", - "symfony/messenger": "<6.4", - "symfony/translation": "<6.4", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<6.4", - "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.4", - "twig/twig": "<3.12" + "twig/twig": "<3.21" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.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/browser-kit": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/css-selector": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/dom-crawler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", "symfony/http-client-contracts": "^2.5|^3", - "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/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", "symfony/translation-contracts": "^2.5|^3", - "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" + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0", + "symfony/var-exporter": "^7.4|^8.0", + "twig/twig": "^3.21" }, "type": "library", "autoload": { @@ -12236,7 +12061,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.5" + "source": "https://github.com/symfony/http-kernel/tree/v8.0.7" }, "funding": [ { @@ -12256,43 +12081,39 @@ "type": "tidelift" } ], - "time": "2026-01-28T10:33:42+00:00" + "time": "2026-03-06T16:58:46+00:00" }, { "name": "symfony/mailer", - "version": "v7.4.4", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "7b750074c40c694ceb34cb926d6dffee231c5cd6" + "reference": "a8971c86b25ff8557e844f08c1f6207d9b3e614c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/7b750074c40c694ceb34cb926d6dffee231c5cd6", - "reference": "7b750074c40c694ceb34cb926d6dffee231c5cd6", + "url": "https://api.github.com/repos/symfony/mailer/zipball/a8971c86b25ff8557e844f08c1f6207d9b3e614c", + "reference": "a8971c86b25ff8557e844f08c1f6207d9b3e614c", "shasum": "" }, "require": { "egulias/email-validator": "^2.1.10|^3|^4", - "php": ">=8.2", + "php": ">=8.4", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/mime": "^7.2|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<6.4", - "symfony/messenger": "<6.4", - "symfony/mime": "<6.4", - "symfony/twig-bridge": "<6.4" + "symfony/http-client-contracts": "<2.5" }, "require-dev": { - "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" + "symfony/console": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/twig-bridge": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -12320,7 +12141,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.4.4" + "source": "https://github.com/symfony/mailer/tree/v8.0.6" }, "funding": [ { @@ -12340,44 +12161,41 @@ "type": "tidelift" } ], - "time": "2026-01-08T08:25:11+00:00" + "time": "2026-02-25T16:59:43+00:00" }, { "name": "symfony/mime", - "version": "v7.4.5", + "version": "v8.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "b18c7e6e9eee1e19958138df10412f3c4c316148" + "reference": "5d26d1958aeeba2ace8cc64a3a93d4f5d8f8022b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b18c7e6e9eee1e19958138df10412f3c4c316148", - "reference": "b18c7e6e9eee1e19958138df10412f3c4c316148", + "url": "https://api.github.com/repos/symfony/mime/zipball/5d26d1958aeeba2ace8cc64a3a93d4f5d8f8022b", + "reference": "5d26d1958aeeba2ace8cc64a3a93d4f5d8f8022b", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<5.2|>=6", - "phpdocumentor/type-resolver": "<1.5.1", - "symfony/mailer": "<6.4", - "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + "phpdocumentor/reflection-docblock": "<5.2|>=7", + "phpdocumentor/type-resolver": "<1.5.1" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", - "phpdocumentor/reflection-docblock": "^5.2", - "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" + "phpdocumentor/reflection-docblock": "^5.2|^6.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -12409,7 +12227,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.4.5" + "source": "https://github.com/symfony/mime/tree/v8.0.7" }, "funding": [ { @@ -12429,7 +12247,7 @@ "type": "tidelift" } ], - "time": "2026-01-27T08:59:58+00:00" + "time": "2026-03-06T13:17:40+00:00" }, { "name": "symfony/polyfill-ctype", @@ -13262,20 +13080,20 @@ }, { "name": "symfony/process", - "version": "v7.4.5", + "version": "v8.0.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "608476f4604102976d687c483ac63a79ba18cc97" + "reference": "b5f3aa6762e33fd95efbaa2ec4f4bc9fdd16d674" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/608476f4604102976d687c483ac63a79ba18cc97", - "reference": "608476f4604102976d687c483ac63a79ba18cc97", + "url": "https://api.github.com/repos/symfony/process/zipball/b5f3aa6762e33fd95efbaa2ec4f4bc9fdd16d674", + "reference": "b5f3aa6762e33fd95efbaa2ec4f4bc9fdd16d674", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4" }, "type": "library", "autoload": { @@ -13303,7 +13121,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.5" + "source": "https://github.com/symfony/process/tree/v8.0.5" }, "funding": [ { @@ -13323,38 +13141,33 @@ "type": "tidelift" } ], - "time": "2026-01-26T15:07:59+00:00" + "time": "2026-01-26T15:08:38+00:00" }, { "name": "symfony/routing", - "version": "v7.4.4", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "0798827fe2c79caeed41d70b680c2c3507d10147" + "reference": "053c40fd46e1d19c5c5a94cada93ce6c3facdd55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/0798827fe2c79caeed41d70b680c2c3507d10147", - "reference": "0798827fe2c79caeed41d70b680c2c3507d10147", + "url": "https://api.github.com/repos/symfony/routing/zipball/053c40fd46e1d19c5c5a94cada93ce6c3facdd55", + "reference": "053c40fd46e1d19c5c5a94cada93ce6c3facdd55", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/deprecation-contracts": "^2.5|^3" }, - "conflict": { - "symfony/config": "<6.4", - "symfony/dependency-injection": "<6.4", - "symfony/yaml": "<6.4" - }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/yaml": "^6.4|^7.0|^8.0" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -13388,7 +13201,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.4" + "source": "https://github.com/symfony/routing/tree/v8.0.6" }, "funding": [ { @@ -13408,7 +13221,7 @@ "type": "tidelift" } ], - "time": "2026-01-12T12:19:02+00:00" + "time": "2026-02-25T16:59:43+00:00" }, { "name": "symfony/service-contracts", @@ -13499,16 +13312,16 @@ }, { "name": "symfony/string", - "version": "v8.0.4", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "758b372d6882506821ed666032e43020c4f57194" + "reference": "6c9e1108041b5dce21a9a4984b531c4923aa9ec4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/758b372d6882506821ed666032e43020c4f57194", - "reference": "758b372d6882506821ed666032e43020c4f57194", + "url": "https://api.github.com/repos/symfony/string/zipball/6c9e1108041b5dce21a9a4984b531c4923aa9ec4", + "reference": "6c9e1108041b5dce21a9a4984b531c4923aa9ec4", "shasum": "" }, "require": { @@ -13565,7 +13378,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v8.0.4" + "source": "https://github.com/symfony/string/tree/v8.0.6" }, "funding": [ { @@ -13585,20 +13398,20 @@ "type": "tidelift" } ], - "time": "2026-01-12T12:37:40+00:00" + "time": "2026-02-09T10:14:57+00:00" }, { "name": "symfony/translation", - "version": "v8.0.4", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "db70c8ce7db74fd2da7b1d268db46b2a8ce32c10" + "reference": "13ff19bcf2bea492d3c2fbeaa194dd6f4599ce1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/db70c8ce7db74fd2da7b1d268db46b2a8ce32c10", - "reference": "db70c8ce7db74fd2da7b1d268db46b2a8ce32c10", + "url": "https://api.github.com/repos/symfony/translation/zipball/13ff19bcf2bea492d3c2fbeaa194dd6f4599ce1b", + "reference": "13ff19bcf2bea492d3c2fbeaa194dd6f4599ce1b", "shasum": "" }, "require": { @@ -13658,7 +13471,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v8.0.4" + "source": "https://github.com/symfony/translation/tree/v8.0.6" }, "funding": [ { @@ -13678,7 +13491,7 @@ "type": "tidelift" } ], - "time": "2026-01-13T13:06:50+00:00" + "time": "2026-02-17T13:07:04+00:00" }, { "name": "symfony/translation-contracts", @@ -13764,24 +13577,24 @@ }, { "name": "symfony/uid", - "version": "v7.4.4", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "7719ce8aba76be93dfe249192f1fbfa52c588e36" + "reference": "8b81bd3700f5c1913c22a3266a647aa1bb974435" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/7719ce8aba76be93dfe249192f1fbfa52c588e36", - "reference": "7719ce8aba76be93dfe249192f1fbfa52c588e36", + "url": "https://api.github.com/repos/symfony/uid/zipball/8b81bd3700f5c1913c22a3266a647aa1bb974435", + "reference": "8b81bd3700f5c1913c22a3266a647aa1bb974435", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0" + "symfony/console": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -13818,7 +13631,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.4.4" + "source": "https://github.com/symfony/uid/tree/v8.0.4" }, "funding": [ { @@ -13838,35 +13651,35 @@ "type": "tidelift" } ], - "time": "2026-01-03T23:30:35+00:00" + "time": "2026-01-03T23:40:55+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.4.4", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0e4769b46a0c3c62390d124635ce59f66874b282" + "reference": "2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0e4769b46a0c3c62390d124635ce59f66874b282", - "reference": "0e4769b46a0c3c62390d124635ce59f66874b282", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209", + "reference": "2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4", + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<7.4", + "symfony/error-handler": "<7.4" }, "require-dev": { - "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", + "symfony/console": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", "twig/twig": "^3.12" }, "bin": [ @@ -13905,7 +13718,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.4" + "source": "https://github.com/symfony/var-dumper/tree/v8.0.6" }, "funding": [ { @@ -13925,32 +13738,31 @@ "type": "tidelift" } ], - "time": "2026-01-01T22:13:48+00:00" + "time": "2026-02-15T10:53:29+00:00" }, { "name": "symfony/yaml", - "version": "v7.4.1", + "version": "v8.0.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "24dd4de28d2e3988b311751ac49e684d783e2345" + "reference": "5f006c50a981e1630bbb70ad409c5d85f9a716e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/24dd4de28d2e3988b311751ac49e684d783e2345", - "reference": "24dd4de28d2e3988b311751ac49e684d783e2345", + "url": "https://api.github.com/repos/symfony/yaml/zipball/5f006c50a981e1630bbb70ad409c5d85f9a716e0", + "reference": "5f006c50a981e1630bbb70ad409c5d85f9a716e0", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<7.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0" + "symfony/console": "^7.4|^8.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -13981,7 +13793,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.1" + "source": "https://github.com/symfony/yaml/tree/v8.0.6" }, "funding": [ { @@ -14001,7 +13813,7 @@ "type": "tidelift" } ], - "time": "2025-12-04T18:11:45+00:00" + "time": "2026-02-09T10:14:57+00:00" }, { "name": "symplify/monorepo-builder", @@ -14448,16 +14260,16 @@ }, { "name": "webmozart/assert", - "version": "2.1.5", + "version": "2.1.6", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "79155f94852fa27e2f73b459f6503f5e87e2c188" + "reference": "ff31ad6efc62e66e518fbab1cde3453d389bcdc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/79155f94852fa27e2f73b459f6503f5e87e2c188", - "reference": "79155f94852fa27e2f73b459f6503f5e87e2c188", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/ff31ad6efc62e66e518fbab1cde3453d389bcdc8", + "reference": "ff31ad6efc62e66e518fbab1cde3453d389bcdc8", "shasum": "" }, "require": { @@ -14504,9 +14316,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.1.5" + "source": "https://github.com/webmozarts/assert/tree/2.1.6" }, - "time": "2026-02-18T14:09:36+00:00" + "time": "2026-02-27T10:28:38+00:00" } ], "aliases": [], diff --git a/packages/actions/composer.json b/packages/actions/composer.json index af3dfd4521..86d02191d6 100644 --- a/packages/actions/composer.json +++ b/packages/actions/composer.json @@ -9,7 +9,6 @@ }, "require": { "php": "^8.2", - "anourvalar/eloquent-serialize": "^1.2", "filament/forms": "self.version", "filament/infolists": "self.version", "filament/notifications": "self.version", diff --git a/packages/actions/src/Concerns/CanExportRecords.php b/packages/actions/src/Concerns/CanExportRecords.php index 4cd9eb00a9..2da0d06dc5 100644 --- a/packages/actions/src/Concerns/CanExportRecords.php +++ b/packages/actions/src/Concerns/CanExportRecords.php @@ -2,7 +2,6 @@ namespace Filament\Actions\Concerns; -use AnourValar\EloquentSerialize\Facades\EloquentSerializeFacade; use Closure; use Filament\Actions\Action; use Filament\Actions\ExportAction; @@ -24,6 +23,7 @@ use Filament\Schemas\Components\Fieldset; use Filament\Schemas\Components\Flex; use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Components\Utilities\Set; +use Filament\Support\EloquentSerializer\EloquentSerializer; use Filament\Support\Enums\Size; use Filament\Support\Enums\Width; use Filament\Support\Facades\FilamentIcon; @@ -294,7 +294,7 @@ trait CanExportRecords $hasCsv = in_array(ExportFormat::Csv, $formats); $hasXlsx = in_array(ExportFormat::Xlsx, $formats); - $serializedQuery = EloquentSerializeFacade::serialize($query); + $serializedQuery = app(EloquentSerializer::class)->serialize($query); $job = $action->getJob(); $jobQueue = $exporter->getJobQueue(); diff --git a/packages/actions/src/Exports/Jobs/ExportCsv.php b/packages/actions/src/Exports/Jobs/ExportCsv.php index d7d5056575..828273375c 100644 --- a/packages/actions/src/Exports/Jobs/ExportCsv.php +++ b/packages/actions/src/Exports/Jobs/ExportCsv.php @@ -2,10 +2,10 @@ namespace Filament\Actions\Exports\Jobs; -use AnourValar\EloquentSerialize\Facades\EloquentSerializeFacade; use Carbon\CarbonInterface; use Filament\Actions\Exports\Exporter; use Filament\Actions\Exports\Models\Export; +use Filament\Support\EloquentSerializer\EloquentSerializer; use Illuminate\Bus\Batchable; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Auth\Authenticatable; @@ -74,7 +74,7 @@ class ExportCsv implements ShouldQueue $csv = Writer::from(new SplTempFileObject); $csv->setDelimiter($this->exporter::getCsvDelimiter()); - $query = EloquentSerializeFacade::unserialize($this->query); + $query = app(EloquentSerializer::class)->unserialize($this->query); foreach ($this->exporter->getCachedColumns() as $column) { $column->applyRelationshipAggregates($query); diff --git a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php index 35b6653f04..e4abd3998c 100644 --- a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php +++ b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php @@ -2,9 +2,9 @@ namespace Filament\Actions\Exports\Jobs; -use AnourValar\EloquentSerialize\Facades\EloquentSerializeFacade; use Filament\Actions\Exports\Exporter; use Filament\Actions\Exports\Models\Export; +use Filament\Support\EloquentSerializer\EloquentSerializer; use Illuminate\Bus\Batchable; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Filesystem\Filesystem; @@ -60,7 +60,7 @@ class PrepareCsvExport implements ShouldQueue $filePath = $this->export->getFileDirectory() . DIRECTORY_SEPARATOR . 'headers.csv'; $this->export->getFileDisk()->put($filePath, $csv->toString(), Filesystem::VISIBILITY_PRIVATE); - $query = EloquentSerializeFacade::unserialize($this->query); + $query = app(EloquentSerializer::class)->unserialize($this->query); $keyName = $query->getModel()->getKeyName(); $qualifiedKeyName = $query->getModel()->getQualifiedKeyName(); @@ -96,8 +96,11 @@ class PrepareCsvExport implements ShouldQueue $firstOrder = $originalOrders->first(); if (($firstOrder['type'] ?? null) === 'Raw') { + /** @var literal-string $sql */ + $sql = $firstOrder['sql']; + $query->reorder(); - $query->orderByRaw($firstOrder['sql']); + $query->orderByRaw($sql); } else { $query->reorder($firstOrder['column'], $firstOrder['direction']); } @@ -109,7 +112,10 @@ class PrepareCsvExport implements ShouldQueue foreach ($originalOrders as $order) { if (($order['type'] ?? null) === 'Raw') { - $query->orderByRaw($order['sql']); + /** @var literal-string $orderSql */ + $orderSql = $order['sql']; + + $query->orderByRaw($orderSql); } elseif (filled($order['column'] ?? null) && filled($order['direction'] ?? null)) { $query->orderBy($order['column'], $order['direction']); } diff --git a/packages/panels/src/Commands/FileGenerators/PanelProviderClassGenerator.php b/packages/panels/src/Commands/FileGenerators/PanelProviderClassGenerator.php index 7da0ea7719..81bd17486b 100644 --- a/packages/panels/src/Commands/FileGenerators/PanelProviderClassGenerator.php +++ b/packages/panels/src/Commands/FileGenerators/PanelProviderClassGenerator.php @@ -15,6 +15,7 @@ use Filament\Widgets\AccountWidget; use Filament\Widgets\FilamentInfoWidget; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -54,7 +55,7 @@ class PanelProviderClassGenerator extends ClassGenerator StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + $this->getCsrfMiddlewareClass(), SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, @@ -138,7 +139,7 @@ class PanelProviderClassGenerator extends ClassGenerator {$this->simplifyFqn(StartSession::class)}::class, {$this->simplifyFqn(AuthenticateSession::class)}::class, {$this->simplifyFqn(ShareErrorsFromSession::class)}::class, - {$this->simplifyFqn(VerifyCsrfToken::class)}::class, + {$this->simplifyFqn($this->getCsrfMiddlewareClass())}::class, {$this->simplifyFqn(SubstituteBindings::class)}::class, {$this->simplifyFqn(DisableBladeIconComponents::class)}::class, {$this->simplifyFqn(DispatchServingFilamentEvent::class)}::class, @@ -167,4 +168,14 @@ class PanelProviderClassGenerator extends ClassGenerator { return $this->isDefault; } + + /** + * @return class-string + */ + protected function getCsrfMiddlewareClass(): string + { + return class_exists(PreventRequestForgery::class) + ? PreventRequestForgery::class + : VerifyCsrfToken::class; + } } diff --git a/packages/support/composer.json b/packages/support/composer.json index 9fd69f1663..6196520f7f 100644 --- a/packages/support/composer.json +++ b/packages/support/composer.json @@ -12,16 +12,15 @@ "ext-intl": "*", "blade-ui-kit/blade-heroicons": "^2.5", "danharrin/livewire-rate-limiting": "^2.0", - "illuminate/contracts": "^11.28|^12.0", + "illuminate/contracts": "^11.28|^12.0|^13.0", "kirschbaum-development/eloquent-power-joins": "^4.0", "league/uri-components": "^7.0", "livewire/livewire": "^3.5", "nette/php-generator": "^4.0", - "ryangjchandler/blade-capture-directive": "^1.0", "spatie/invade": "^2.0", "spatie/laravel-package-tools": "^1.9", "symfony/html-sanitizer": "^7.0|^8.0", - "symfony/console": "^7.0" + "symfony/console": "^7.0|^8.0" }, "autoload": { "files": [ diff --git a/packages/support/src/EloquentSerializer/EloquentSerializer.php b/packages/support/src/EloquentSerializer/EloquentSerializer.php new file mode 100644 index 0000000000..650899961a --- /dev/null +++ b/packages/support/src/EloquentSerializer/EloquentSerializer.php @@ -0,0 +1,76 @@ +getQuery(); // chaperone/inverse is not supported! + } + + if ($builder instanceof Relation) { + throw new RuntimeException(get_class($builder) . ' cannot be packed.'); + } + + $package = $this->pack($builder); + + return serialize($package); // important! + } + + /** + * @throws LogicException + */ + public function unserialize(Package | string $package): Builder + { + // Prepare data + if (is_string($package)) { + $oldClass = 'AnourValar\EloquentSerialize\Package'; + $newClass = Package::class; + + // Replace the class reference in the serialized object header (`O:36:"..."`) + $package = str_replace( + 'O:' . strlen($oldClass) . ':"' . $oldClass . '"', + 'O:' . strlen($newClass) . ':"' . $newClass . '"', + $package, + ); + + // Replace the class prefix in serialized private properties (`s:42:"\0...\0data"`) + $package = str_replace( + 's:' . (strlen($oldClass) + 6) . ':"' . "\0" . $oldClass . "\0" . 'data"', + 's:' . (strlen($newClass) + 6) . ':"' . "\0" . $newClass . "\0" . 'data"', + $package, + ); + + $package = unserialize($package); + } + if (! ($package instanceof Package)) { + throw new LogicException('Incorrect argument.'); + } + + // Unpack + return $this->unpack($package); + } +} diff --git a/packages/support/src/EloquentSerializer/Grammars/EloquentBuilderGrammar.php b/packages/support/src/EloquentSerializer/Grammars/EloquentBuilderGrammar.php new file mode 100644 index 0000000000..a50f49b165 --- /dev/null +++ b/packages/support/src/EloquentSerializer/Grammars/EloquentBuilderGrammar.php @@ -0,0 +1,154 @@ +|null $parentModels + * @return array + */ + protected function packEloquentBuilder(EloquentBuilder $builder, ?array $parentModels = null): array + { + return [ + 'with' => $this->getEagers($builder, $parentModels ?? []), // preloaded ("eager") relations + 'removed_scopes' => $builder->removedScopes(), // global scopes + 'casts' => $builder->getModel()->getCasts(), + ]; + } + + /** + * @param array $data + */ + protected function unpackEloquentBuilder(array $data, EloquentBuilder &$builder): void + { + // Preloaded ("eager") relations + $this->setEagers($builder, $data['with']); + + // Global scopes + if ($data['removed_scopes']) { + $builder->withoutGlobalScopes($data['removed_scopes']); + } + + // Casts + $builder->getModel()->mergeCasts($data['casts']); + } + + /** + * @param array $parentModels + * @return array + */ + private function getEagers(EloquentBuilder $builder, array $parentModels): array + { + $result = []; + + foreach ($builder->getEagerLoads() as $name => $value) { + $relation = $builder; + foreach (explode('.', $name) as $part) { + $relation = $relation->getRelation($part); // get a relation without "constraints" + } + $referenceRelation = clone $relation; + + if (count(array_filter($parentModels, fn ($item) => $item == get_class($referenceRelation->getModel()))) > 1) { + $result[$name] = ['closure' => serialize(new SerializableClosure($value))]; // recursion detected... + + continue; + } + $parentModels[] = get_class($builder->getModel()); + + $value($relation); // apply closure + $result[$name] = [ + 'query' => $this->packQueryBuilder($relation->getQuery()->getQuery()), + 'eloquent' => $this->packEloquentBuilder($relation->getQuery(), $parentModels), + 'extra' => $this->getExtraRelationParameters($relation), + ]; + + $relation->getQuery()->getModel()->newInstance()->with($name)->getEagerLoads()[$name]($referenceRelation); + $this->cleanStaticConstraints($result[$name]['query'], $this->packQueryBuilder($referenceRelation->getQuery()->getQuery())); + } + + return $result; + } + + /** + * @param array $eagers + */ + private function setEagers(EloquentBuilder $builder, array $eagers): void + { + foreach ($eagers as &$value) { + if (isset($value['closure'])) { + $value = unserialize($value['closure'])->getClosure(); + + continue; + } + + $value = function ($query) use ($value) { + if (isset($value['extra']) && $query instanceof Relation) { + $this->setExtraRelationParameters($query, $value['extra']); + } + + // Input argument may be different depends on context + while (! ($query instanceof EloquentBuilder)) { + $query = $query->getQuery(); + } + if (isset($value['eloquent'])) { + $this->unpackEloquentBuilder($value['eloquent'], $query); + } + + // Input argument may be different depends on context + while (! ($query instanceof QueryBuilder)) { + $query = $query->getQuery(); + } + + $this->unpackQueryBuilder(isset($value['query']) ? $value['query'] : $value, $query); + }; + } + unset($value); + + $builder->setEagerLoads($eagers); + } + + /** + * @param array $packedQueryBuilder + * @param array $packedReferenceQueryBuilder + */ + private function cleanStaticConstraints(array &$packedQueryBuilder, array $packedReferenceQueryBuilder): void + { + $properties = [ + 'aggregate', 'columns', 'distinct', 'wheres', 'groups', 'havings', 'orders', 'limit', 'offset', 'unions', + 'unionLimit', 'unionOffset', 'unionOrders', 'joins', 'groupLimit', + ]; + + foreach ($properties as $property) { + if (! is_array($packedQueryBuilder[$property] ?? null)) { + continue; + } + + foreach ($packedQueryBuilder[$property] as $key => $item) { + if (in_array($item, (array) ($packedReferenceQueryBuilder[$property] ?? null), true)) { + unset($packedQueryBuilder[$property][$key]); + } + } + } + + foreach ($packedQueryBuilder['bindings'] as $binding => $data) { + if (! is_array($data)) { + continue; + } + + foreach ($data as $key => $value) { + if ( + isset($packedReferenceQueryBuilder['bindings'][$binding][$key]) + && $packedReferenceQueryBuilder['bindings'][$binding][$key] === $value + ) { + unset($packedQueryBuilder['bindings'][$binding][$key]); + } + } + } + } +} diff --git a/packages/support/src/EloquentSerializer/Grammars/ModelGrammar.php b/packages/support/src/EloquentSerializer/Grammars/ModelGrammar.php new file mode 100644 index 0000000000..c7b3f497e2 --- /dev/null +++ b/packages/support/src/EloquentSerializer/Grammars/ModelGrammar.php @@ -0,0 +1,148 @@ +applyScopes(); + + /** @var array $scopes */ + $scopes = invade($builder)->scopes; + $builder->withoutGlobalScopes(array_keys($scopes)); + + return new Package([ + 'model' => get_class($builder->getModel()), + 'connection' => $builder->getModel()->getConnectionName(), + 'eloquent' => $this->packEloquentBuilder($builder), + 'query' => $this->packQueryBuilder($builder->getQuery()), + ]); + } + + protected function unpack(Package $package): Builder + { + $builder = $package->get('model'); + $builder = $builder::on($package->get('connection')); + + $this->unpackEloquentBuilder($package->get('eloquent'), $builder); + $this->unpackQueryBuilder($package->get('query'), $builder->getQuery()); + + return $builder; + } + + /** + * @return array|null + */ + private function getExtraRelationParameters(Relation $relation): ?array + { + if ($relation instanceof MorphTo) { + $invaded = invade($relation); + + return [ + 'morphableEagerLoads' => $this->serializeMorphableEager($invaded->morphableEagerLoads), + 'morphableEagerLoadCounts' => $this->serializeMorphableEager($invaded->morphableEagerLoadCounts), + 'morphableConstraints' => $invaded->morphableConstraints, + ]; + } + + if ($relation instanceof HasOneOrMany) { + return [ + 'inverseRelationship' => invade($relation)->inverseRelationship, + ]; + } + + return null; + } + + /** + * @param array|null $params + */ + private function setExtraRelationParameters(Relation $relation, ?array $params): void + { + if ($params === null) { + return; + } + + $invaded = invade($relation); + + foreach ($params as $key => $value) { + if ($key === 'morphableEagerLoads' || $key === 'morphableEagerLoadCounts') { + $value = $this->unserializeMorphableEager($value); + } + + $invaded->{$key} = $value; + } + } + + /** + * @param array> $value + * @return array> + */ + private function serializeMorphableEager(array $value): array + { + foreach ($value as $class => &$items) { + foreach ($items as $relation => &$item) { + if (! is_callable($item)) { + continue; + } + + if (! method_exists($class, $relation)) { + throw new RuntimeException("Serialization error. Does relation '{$relation}' exists in the model '{$class}' ?"); + } + + $eloquentBuilder = (new $class)->{$relation}()->getModel()->newQuery(); + $item($eloquentBuilder); + + $item = [ + 'eloquent' => $this->packEloquentBuilder($eloquentBuilder), + 'builder' => $this->packQueryBuilder($eloquentBuilder->getQuery()), + ]; + } + unset($item); + } + unset($items); + + return $value; + } + + /** + * @param array> $value + * @return array> + */ + private function unserializeMorphableEager(array $value): array + { + foreach ($value as &$items) { + foreach ($items as &$item) { + if (! is_array($item)) { + continue; + } + + $item = function ($query) use ($item) { + if ($query instanceof Builder) { + $this->unpackEloquentBuilder($item['eloquent'], $query); + $this->unpackQueryBuilder($item['builder'], $query->getQuery()); + } else { + $eloquent = $query->getQuery(); + $this->unpackEloquentBuilder($item['eloquent'], $eloquent); + $this->unpackQueryBuilder($item['builder'], $query->getBaseQuery()); + } + }; + } + unset($item); + } + unset($items); + + return $value; + } +} diff --git a/packages/support/src/EloquentSerializer/Grammars/QueryBuilderGrammar.php b/packages/support/src/EloquentSerializer/Grammars/QueryBuilderGrammar.php new file mode 100644 index 0000000000..4a1bc20ec9 --- /dev/null +++ b/packages/support/src/EloquentSerializer/Grammars/QueryBuilderGrammar.php @@ -0,0 +1,163 @@ + + */ + protected function packQueryBuilder(Builder $builder): array + { + return array_filter([ + 'bindings' => $builder->bindings, + 'aggregate' => $builder->aggregate, + 'columns' => $builder->columns, + 'distinct' => $builder->distinct, + 'from' => $builder->from, + 'wheres' => $this->packWheres($builder->wheres), + 'groups' => $builder->groups, + 'havings' => $this->packWheres($builder->havings), + 'groupLimit' => $builder->groupLimit ?? null, + 'orders' => $builder->orders, + 'limit' => $builder->limit, + 'offset' => $builder->offset, + 'unions' => $this->packUnions($builder->unions), + 'unionLimit' => $builder->unionLimit, + 'unionOffset' => $builder->unionOffset, + 'unionOrders' => $builder->unionOrders, + 'lock' => $builder->lock, + + 'joins' => $this->packJoins($builder->joins), // must be the last + ], fn ($item) => isset($item)); + } + + /** + * @param array $data + */ + protected function unpackQueryBuilder(array $data, Builder $builder): Builder + { + foreach ($data as $key => $value) { + if (in_array($key, ['wheres', 'havings'])) { + $value = $this->unpackWheres($value, $builder); + } + + if ($key == 'unions') { + $value = $this->unpackUnions($value); + } + + if ($key == 'joins') { + $value = $this->unpackJoins($value, $builder); + } + + if (is_array($builder->$key) && is_array($value)) { + $builder->$key = array_merge_recursive($builder->$key, $value); + } else { + $builder->$key = $value; + } + } + + return $builder; + } + + private function packWheres(mixed $wheres): mixed + { + if (is_null($wheres)) { + return $wheres; + } + + foreach ($wheres as &$item) { + if (isset($item['query'])) { + $item['query'] = $this->packQueryBuilder($item['query']); + } + } + unset($item); + + return $wheres; + } + + private function packUnions(mixed $unions): mixed + { + if (! is_array($unions)) { + return $unions; + } + + foreach ($unions as &$item) { + if (isset($item['query'])) { + $item['query'] = $this->pack($item['query']); + } + } + unset($item); + + return $unions; + } + + private function packJoins(mixed $joins): mixed + { + if (! is_array($joins)) { + return $joins; + } + + foreach ($joins as &$item) { + $item = array_replace( + ['type' => $item->type, 'table' => $item->table], + $this->packQueryBuilder($item) + ); + } + unset($item); + + return $joins; + } + + private function unpackWheres(mixed $wheres, Builder $builder): mixed + { + if (is_null($wheres)) { + return $wheres; + } + + foreach ($wheres as &$item) { + if (isset($item['query'])) { + $item['query'] = $this->unpackQueryBuilder($item['query'], $builder->newQuery()); + } + } + unset($item); + + return $wheres; + } + + private function unpackUnions(mixed $unions): mixed + { + if (! is_array($unions)) { + return $unions; + } + + foreach ($unions as &$item) { + if (isset($item['query'])) { + $item['query'] = $this->unpack($item['query']); + } + } + unset($item); + + return $unions; + } + + private function unpackJoins(mixed $joins, Builder $builder): mixed + { + if (! is_array($joins)) { + return $joins; + } + + foreach ($joins as &$item) { + $parentQuery = new JoinClause($builder, $item['type'], $item['table']); + unset($item['type'], $item['table']); + + $item = $this->unpackQueryBuilder($item, $parentQuery); + } + unset($item); + + return $joins; + } +} diff --git a/packages/support/src/EloquentSerializer/Package.php b/packages/support/src/EloquentSerializer/Package.php new file mode 100644 index 0000000000..0561ebc9f0 --- /dev/null +++ b/packages/support/src/EloquentSerializer/Package.php @@ -0,0 +1,22 @@ + $data + */ + public function __construct( + private array $data, + ) {} + + public function get(?string $key = null): mixed + { + if (is_null($key)) { + return $this->data; + } + + return $this->data[$key] ?? null; + } +} diff --git a/packages/support/src/SupportServiceProvider.php b/packages/support/src/SupportServiceProvider.php index 68000c6cb5..c7677abfbd 100644 --- a/packages/support/src/SupportServiceProvider.php +++ b/packages/support/src/SupportServiceProvider.php @@ -153,6 +153,26 @@ class SupportServiceProvider extends PackageServiceProvider Js::make('support', __DIR__ . '/../dist/index.js'), ], 'filament/support'); + Blade::directive('capture', function (string $expression): string { + [$name, $arguments] = str_contains($expression, ',') ? + array_map('trim', explode(',', $expression, 2)) : + [$expression, '']; + + return " + + "; + }); + + Blade::directive('endcapture', function (): string { + return " + + "; + }); + Blade::directive('captureSlots', function (string $expression): string { return "mapWithKeys(fn (string \$slot): array => [\$slot => \$slotContents[\$slot] ?? null])->all(); unset(\$slotContents) ?>"; }); diff --git a/tests/src/Fixtures/Providers/AdminPanelProvider.php b/tests/src/Fixtures/Providers/AdminPanelProvider.php index 4905106a36..55f100e28d 100644 --- a/tests/src/Fixtures/Providers/AdminPanelProvider.php +++ b/tests/src/Fixtures/Providers/AdminPanelProvider.php @@ -42,6 +42,7 @@ use Filament\Tests\Fixtures\Resources\Users\Resources\UserPostResource; use Filament\Tests\Fixtures\Resources\Users\UserResource; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -102,7 +103,7 @@ class AdminPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/AppAuthenticationPanelProvider.php b/tests/src/Fixtures/Providers/AppAuthenticationPanelProvider.php index 1e94f8a3b1..b4a3d9f86d 100644 --- a/tests/src/Fixtures/Providers/AppAuthenticationPanelProvider.php +++ b/tests/src/Fixtures/Providers/AppAuthenticationPanelProvider.php @@ -11,6 +11,7 @@ use Filament\Panel; use Filament\PanelProvider; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -34,7 +35,7 @@ class AppAuthenticationPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/ConfigurationPanelProvider.php b/tests/src/Fixtures/Providers/ConfigurationPanelProvider.php index 484569280a..ebea451724 100644 --- a/tests/src/Fixtures/Providers/ConfigurationPanelProvider.php +++ b/tests/src/Fixtures/Providers/ConfigurationPanelProvider.php @@ -13,6 +13,7 @@ use Filament\Tests\Fixtures\Pages\ConfigurableSettings; use Filament\Tests\Fixtures\Resources\Posts\ConfigurablePostResource; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -69,7 +70,7 @@ class ConfigurationPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/CustomPanelProvider.php b/tests/src/Fixtures/Providers/CustomPanelProvider.php index faf4966841..a7e154655e 100644 --- a/tests/src/Fixtures/Providers/CustomPanelProvider.php +++ b/tests/src/Fixtures/Providers/CustomPanelProvider.php @@ -10,6 +10,7 @@ use Filament\Panel; use Filament\PanelProvider; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -31,7 +32,7 @@ class CustomPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/DomainTenancyPanelProvider.php b/tests/src/Fixtures/Providers/DomainTenancyPanelProvider.php index e21da5f6a7..11dd07745d 100644 --- a/tests/src/Fixtures/Providers/DomainTenancyPanelProvider.php +++ b/tests/src/Fixtures/Providers/DomainTenancyPanelProvider.php @@ -19,6 +19,7 @@ use Filament\Tests\Fixtures\Resources\Shop\Products\ProductResource; use Filament\Tests\Fixtures\Resources\Users\UserResource; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -54,7 +55,7 @@ class DomainTenancyPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/EmailAuthenticationPanelProvider.php b/tests/src/Fixtures/Providers/EmailAuthenticationPanelProvider.php index f4fac5eb53..93bb8591cb 100644 --- a/tests/src/Fixtures/Providers/EmailAuthenticationPanelProvider.php +++ b/tests/src/Fixtures/Providers/EmailAuthenticationPanelProvider.php @@ -11,6 +11,7 @@ use Filament\Panel; use Filament\PanelProvider; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -34,7 +35,7 @@ class EmailAuthenticationPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/Fixtures/Providers/SingleDomainPanel.php b/tests/src/Fixtures/Providers/Fixtures/Providers/SingleDomainPanel.php index 2f61a462e0..272ae75505 100644 --- a/tests/src/Fixtures/Providers/Fixtures/Providers/SingleDomainPanel.php +++ b/tests/src/Fixtures/Providers/Fixtures/Providers/SingleDomainPanel.php @@ -17,6 +17,7 @@ use Filament\Tests\Fixtures\Resources\Shop\Products\ProductResource; use Filament\Tests\Fixtures\Resources\Users\UserResource; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -50,7 +51,7 @@ class SingleDomainPanel extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/MultiDomainPanel.php b/tests/src/Fixtures/Providers/MultiDomainPanel.php index 7919957b7c..d1bcd7efe1 100644 --- a/tests/src/Fixtures/Providers/MultiDomainPanel.php +++ b/tests/src/Fixtures/Providers/MultiDomainPanel.php @@ -17,6 +17,7 @@ use Filament\Tests\Fixtures\Resources\Shop\Products\ProductResource; use Filament\Tests\Fixtures\Resources\Users\UserResource; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -50,7 +51,7 @@ class MultiDomainPanel extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/RequiredMultiFactorAuthenticationPanelProvider.php b/tests/src/Fixtures/Providers/RequiredMultiFactorAuthenticationPanelProvider.php index e661494d70..dfbf99de74 100644 --- a/tests/src/Fixtures/Providers/RequiredMultiFactorAuthenticationPanelProvider.php +++ b/tests/src/Fixtures/Providers/RequiredMultiFactorAuthenticationPanelProvider.php @@ -13,6 +13,7 @@ use Filament\Panel; use Filament\PanelProvider; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -41,7 +42,7 @@ class RequiredMultiFactorAuthenticationPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/SlugsPanelProvider.php b/tests/src/Fixtures/Providers/SlugsPanelProvider.php index ad726f6b34..1a864342f0 100644 --- a/tests/src/Fixtures/Providers/SlugsPanelProvider.php +++ b/tests/src/Fixtures/Providers/SlugsPanelProvider.php @@ -12,6 +12,7 @@ use Filament\Panel; use Filament\PanelProvider; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -54,7 +55,7 @@ class SlugsPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/Fixtures/Providers/TenancyPanelProvider.php b/tests/src/Fixtures/Providers/TenancyPanelProvider.php index ce9371ef09..7a530bf22e 100644 --- a/tests/src/Fixtures/Providers/TenancyPanelProvider.php +++ b/tests/src/Fixtures/Providers/TenancyPanelProvider.php @@ -21,6 +21,7 @@ use Filament\Tests\Fixtures\Resources\Tenancy\TenantScopedUsers\TenantScopedUser use Filament\Tests\Fixtures\Resources\Users\UserResource; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; +use Illuminate\Foundation\Http\Middleware\PreventRequestForgery; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; @@ -57,7 +58,7 @@ class TenancyPanelProvider extends PanelProvider StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, - VerifyCsrfToken::class, + class_exists(PreventRequestForgery::class) ? PreventRequestForgery::class : VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, diff --git a/tests/src/TestCase.php b/tests/src/TestCase.php index 7fb0d00140..d1b6f52a5a 100644 --- a/tests/src/TestCase.php +++ b/tests/src/TestCase.php @@ -39,7 +39,6 @@ use Orchestra\Testbench\Concerns\WithWorkbench; use Orchestra\Testbench\TestCase as BaseTestCase; use PDO; use PDOException; -use RyanChandler\BladeCaptureDirective\BladeCaptureDirectiveServiceProvider; abstract class TestCase extends BaseTestCase { @@ -50,7 +49,6 @@ abstract class TestCase extends BaseTestCase { $providers = [ ActionsServiceProvider::class, - BladeCaptureDirectiveServiceProvider::class, BladeHeroiconsServiceProvider::class, BladeIconsServiceProvider::class, FilamentServiceProvider::class,