From ece30706767372875cdde22782f5787b9a67ea02 Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 30 May 2026 23:32:22 +0300 Subject: [PATCH] Ensure PHP 8.3 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pin symfony/yaml to ^7.4 — v8.x requires PHP >=8.4.1 which is incompatible with our PHP 8.3 requirement. All packages that depend on symfony/yaml accept ^7.0, so this is a safe downgrade. Co-Authored-By: Claude Sonnet 4.6 --- composer.json | 5 +- composer.lock | 510 +++++++++++++++++++++++++++++++++++++------------- 2 files changed, 378 insertions(+), 137 deletions(-) diff --git a/composer.json b/composer.json index d7599ad..32d3a4b 100644 --- a/composer.json +++ b/composer.json @@ -12,8 +12,9 @@ "laravel/framework": "^13.8", "laravel/scout": "^11.2", "laravel/tinker": "^3.0", - "spatie/laravel-sitemap": "^8.1", - "spatie/laravel-sluggable": "^4.0" + "spatie/laravel-sitemap": "^7.4", + "spatie/laravel-sluggable": "^4.0", + "symfony/yaml": "^7.4" }, "require-dev": { "fakerphp/faker": "^1.23", diff --git a/composer.lock b/composer.lock index 6bb2392..5c5ace5 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": "5f3c7ba864f94b76dc35fa83162314fa", + "content-hash": "26bdf3db91d9eb34ccbe7666ad92c525", "packages": [ { "name": "brick/math", @@ -853,16 +853,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.10.3", + "version": "2.10.4", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "7c1472269227dc6f18930bd903d7a88fe6c52130" + "reference": "d2a1a094e396da8957e797489fddaf860c340cfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/7c1472269227dc6f18930bd903d7a88fe6c52130", - "reference": "7c1472269227dc6f18930bd903d7a88fe6c52130", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/d2a1a094e396da8957e797489fddaf860c340cfc", + "reference": "d2a1a094e396da8957e797489fddaf860c340cfc", "shasum": "" }, "require": { @@ -950,7 +950,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.10.3" + "source": "https://github.com/guzzle/psr7/tree/2.10.4" }, "funding": [ { @@ -966,7 +966,7 @@ "type": "tidelift" } ], - "time": "2026-05-27T11:48:20+00:00" + "time": "2026-05-29T12:59:07+00:00" }, { "name": "guzzlehttp/uri-template", @@ -2250,6 +2250,73 @@ ], "time": "2026-03-08T20:05:35+00:00" }, + { + "name": "masterminds/html5", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "fcf91eb64359852f00d921887b219479b4f21251" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251", + "reference": "fcf91eb64359852f00d921887b219479b4f21251", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" + }, + "time": "2025-07-25T09:04:22+00:00" + }, { "name": "monolog/monolog", "version": "3.10.0", @@ -2616,6 +2683,60 @@ }, "time": "2026-05-11T20:49:54+00:00" }, + { + "name": "nicmart/tree", + "version": "0.10.1", + "source": { + "type": "git", + "url": "https://github.com/nicmart/Tree.git", + "reference": "2ef11e329d26005ef49dbacd0223bcfd2515b6cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nicmart/Tree/zipball/2ef11e329d26005ef49dbacd0223bcfd2515b6cc", + "reference": "2ef11e329d26005ef49dbacd0223bcfd2515b6cc", + "shasum": "" + }, + "require": { + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.48.2", + "ergebnis/license": "^2.7.0", + "ergebnis/php-cs-fixer-config": "^6.28.1", + "fakerphp/faker": "^1.24.1", + "infection/infection": "~0.26.19", + "phpunit/phpunit": "^9.6.19", + "psalm/plugin-phpunit": "~0.19.0", + "vimeo/psalm": "^5.26.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Tree\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolò Martini", + "email": "nicmartnic@gmail.com" + }, + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "description": "A basic but flexible php tree data structure and a fluent tree builder implementation.", + "support": { + "issues": "https://github.com/nicmart/Tree/issues", + "source": "https://github.com/nicmart/Tree/tree/0.10.1" + }, + "time": "2025-11-25T08:51:01+00:00" + }, { "name": "nikic/php-parser", "version": "v5.7.0", @@ -3526,45 +3647,102 @@ "time": "2025-12-14T04:43:48+00:00" }, { - "name": "spatie/crawler", - "version": "9.3.1", + "name": "spatie/browsershot", + "version": "5.4.0", "source": { "type": "git", - "url": "https://github.com/spatie/crawler.git", - "reference": "0c0b6e4928040d90c1d0508fd6e5655e8a51067c" + "url": "https://github.com/spatie/browsershot.git", + "reference": "dcf7a65fd1d0fc8fd113739b84982377728d0b2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/crawler/zipball/0c0b6e4928040d90c1d0508fd6e5655e8a51067c", - "reference": "0c0b6e4928040d90c1d0508fd6e5655e8a51067c", + "url": "https://api.github.com/repos/spatie/browsershot/zipball/dcf7a65fd1d0fc8fd113739b84982377728d0b2f", + "reference": "dcf7a65fd1d0fc8fd113739b84982377728d0b2f", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "ext-json": "*", + "php": "^8.2", + "spatie/temporary-directory": "^2.0", + "symfony/process": "^6.0|^7.0|^8.0" + }, + "require-dev": { + "pestphp/pest": "^3.0|^4.0", + "spatie/image": "^3.6", + "spatie/pdf-to-text": "^1.52", + "spatie/phpunit-snapshot-assertions": "^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Browsershot\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://github.com/freekmurze", + "role": "Developer" + } + ], + "description": "Convert a webpage to an image or pdf using headless Chrome", + "homepage": "https://github.com/spatie/browsershot", + "keywords": [ + "chrome", + "convert", + "headless", + "image", + "pdf", + "puppeteer", + "screenshot", + "webpage" + ], + "support": { + "source": "https://github.com/spatie/browsershot/tree/5.4.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2026-05-26T13:13:33+00:00" + }, + { + "name": "spatie/crawler", + "version": "8.5.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/crawler.git", + "reference": "18198a2198adff1637c0028cb60d2c9559721556" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/crawler/zipball/18198a2198adff1637c0028cb60d2c9559721556", + "reference": "18198a2198adff1637c0028cb60d2c9559721556", "shasum": "" }, "require": { "guzzlehttp/guzzle": "^7.3", "guzzlehttp/psr7": "^2.0", - "php": "^8.4", + "illuminate/collections": "^10.0|^11.0|^12.0|^13.0", + "nicmart/tree": "^0.10", + "php": "^8.2", + "spatie/browsershot": "^5.0.5", "spatie/robots-txt": "^2.0", - "symfony/css-selector": "^7.0|^8.0", - "symfony/dom-crawler": "^7.0|^8.0" + "symfony/dom-crawler": "^6.0|^7.0|^8.0" }, "require-dev": { - "pestphp/pest": "^4.0", - "phpstan/extension-installer": "^1.4", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-deprecation-rules": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "spatie/invade": "^2.1", + "pestphp/pest": "^2.0|^3.0|^4.0", "spatie/ray": "^1.37" }, - "suggest": { - "spatie/browsershot": "Required for JavaScript rendering with BrowsershotRenderer (^5.0.5)" - }, "type": "library", - "extra": { - "branch-alias": { - "dev-v9": "9.x-dev" - } - }, "autoload": { "psr-4": { "Spatie\\Crawler\\": "src" @@ -3590,7 +3768,7 @@ ], "support": { "issues": "https://github.com/spatie/crawler/issues", - "source": "https://github.com/spatie/crawler/tree/9.3.1" + "source": "https://github.com/spatie/crawler/tree/8.5.0" }, "funding": [ { @@ -3602,7 +3780,7 @@ "type": "github" } ], - "time": "2026-05-18T13:26:09+00:00" + "time": "2026-02-21T22:52:37+00:00" }, { "name": "spatie/laravel-package-tools", @@ -3667,34 +3845,33 @@ }, { "name": "spatie/laravel-sitemap", - "version": "8.1.0", + "version": "7.4.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-sitemap.git", - "reference": "5a8d3467f670d4dbe277c00bf960617912c97fb1" + "reference": "52397c6f4219a8a0a163ddb8a8d5bc5f9bba0df4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-sitemap/zipball/5a8d3467f670d4dbe277c00bf960617912c97fb1", - "reference": "5a8d3467f670d4dbe277c00bf960617912c97fb1", + "url": "https://api.github.com/repos/spatie/laravel-sitemap/zipball/52397c6f4219a8a0a163ddb8a8d5bc5f9bba0df4", + "reference": "52397c6f4219a8a0a163ddb8a8d5bc5f9bba0df4", "shasum": "" }, "require": { - "illuminate/support": "^12.0|^13.0", + "guzzlehttp/guzzle": "^7.8", + "illuminate/support": "^11.0|^12.0||^13.0", "nesbot/carbon": "^2.71|^3.0", - "php": "^8.4", - "spatie/crawler": "^9.0", - "spatie/laravel-package-tools": "^1.16.1" + "php": "^8.2||^8.3||^8.4||^8.5", + "spatie/crawler": "^8.0.1", + "spatie/laravel-package-tools": "^1.16.1", + "symfony/dom-crawler": "^6.3.4|^7.0|^8.0" }, "require-dev": { - "larastan/larastan": "^3.0", - "laravel/pint": "^1.13", - "orchestra/testbench": "^10.0|^11.0", - "pestphp/pest": "^4.0", - "phpstan/extension-installer": "^1.3", - "phpstan/phpstan-deprecation-rules": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", + "mockery/mockery": "^1.6.6", + "orchestra/testbench": "^9.0|^10.0||^11.0", + "pestphp/pest": "^3.7.4|^4.0", "spatie/pest-plugin-snapshots": "^2.1", + "spatie/phpunit-snapshot-assertions": "^5.1.2", "spatie/temporary-directory": "^2.2" }, "type": "library", @@ -3729,7 +3906,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-sitemap/tree/8.1.0" + "source": "https://github.com/spatie/laravel-sitemap/tree/7.4.0" }, "funding": [ { @@ -3737,7 +3914,7 @@ "type": "custom" } ], - "time": "2026-03-12T09:30:40+00:00" + "time": "2026-02-21T23:00:46+00:00" }, { "name": "spatie/laravel-sluggable", @@ -3877,6 +4054,67 @@ ], "time": "2026-02-25T07:59:20+00:00" }, + { + "name": "spatie/temporary-directory", + "version": "2.3.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "662e481d6ec07ef29fd05010433428851a42cd07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/662e481d6ec07ef29fd05010433428851a42cd07", + "reference": "662e481d6ec07ef29fd05010433428851a42cd07", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TemporaryDirectory\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily create, use and destroy temporary directories", + "homepage": "https://github.com/spatie/temporary-directory", + "keywords": [ + "php", + "spatie", + "temporary-directory" + ], + "support": { + "issues": "https://github.com/spatie/temporary-directory/issues", + "source": "https://github.com/spatie/temporary-directory/tree/2.3.1" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2026-01-12T07:42:22+00:00" + }, { "name": "symfony/clock", "version": "v7.4.8", @@ -4195,25 +4433,27 @@ }, { "name": "symfony/dom-crawler", - "version": "v8.1.0", + "version": "v7.4.12", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "77ca351474ea018daba5f2e473cbf1b9b8e72ac6" + "reference": "b59b59122690976550fd142c23fab62c84738db6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/77ca351474ea018daba5f2e473cbf1b9b8e72ac6", - "reference": "77ca351474ea018daba5f2e473cbf1b9b8e72ac6", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b59b59122690976550fd142c23fab62c84738db6", + "reference": "b59b59122690976550fd142c23fab62c84738db6", "shasum": "" }, "require": { - "php": ">=8.4.1", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.0" + "masterminds/html5": "^2.6", + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/css-selector": "^7.4|^8.0" + "symfony/css-selector": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -4241,7 +4481,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v8.1.0" + "source": "https://github.com/symfony/dom-crawler/tree/v7.4.12" }, "funding": [ { @@ -4261,7 +4501,7 @@ "type": "tidelift" } ], - "time": "2026-05-29T05:06:50+00:00" + "time": "2026-05-20T07:20:23+00:00" }, { "name": "symfony/error-handler", @@ -6536,6 +6776,82 @@ ], "time": "2026-03-30T13:44:50+00:00" }, + { + "name": "symfony/yaml", + "version": "v7.4.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "a7ec3b1156faf8815db7683ec7c1e7338e6f977c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a7ec3b1156faf8815db7683ec7c1e7338e6f977c", + "reference": "a7ec3b1156faf8815db7683ec7c1e7338e6f977c", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0|^8.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v7.4.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-25T06:06:12+00:00" + }, { "name": "tijsverkoyen/css-to-inline-styles", "version": "v2.4.0", @@ -9107,82 +9423,6 @@ ], "time": "2024-10-20T05:08:20+00:00" }, - { - "name": "symfony/yaml", - "version": "v8.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "efb42bd2c6f4f3ccfd4683583449938b5fc146b0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/efb42bd2c6f4f3ccfd4683583449938b5fc146b0", - "reference": "efb42bd2c6f4f3ccfd4683583449938b5fc146b0", - "shasum": "" - }, - "require": { - "php": ">=8.4.1", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/console": "<7.4" - }, - "require-dev": { - "symfony/console": "^7.4|^8.0", - "yaml/yaml-test-suite": "*" - }, - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Loads and dumps YAML files", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v8.1.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-29T05:06:50+00:00" - }, { "name": "theseer/tokenizer", "version": "2.0.1",