From 5bfadfd1b6dff14ba872c7775d2cc3a31d79b623 Mon Sep 17 00:00:00 2001 From: Sebastian Mendel Date: Sun, 1 Mar 2026 14:28:19 +0100 Subject: [PATCH 1/2] [TASK] Upgrade league/flysystem from v1 to v3 (#1186) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Upgrade league/flysystem from abandoned v1 (EOL since 2022) to v3. The upstream `phpdocumentor/guides` already supports flysystem v3 via its `FileSystem` interface shim. ### Dependency changes - `league/flysystem`: `^1.1.10` → `^3.29` (resolved: 3.32.0) - `league/flysystem-local`: new transitive dependency (3.31.0) - `phpdocumentor/flyfinder`: 1.1.0 → 2.0.0 (flysystem v3 compatible) ### Code changes | File | Change | |------|--------| | `CopyResources.php` | `Adapter\Local` → `LocalFilesystemAdapter`, `FilesystemException` try/catch/finally for both `readStream()` and `putStream()` with proper stream cleanup | | `TwigExtension.php` | `League\Flysystem\Exception` → `League\Flysystem\FilesystemException` | | `IncludeDirective.php` | Removed 3 `@throws FileNotFoundException` docblocks (class removed in v3) | | `SiteSetSettingsDirective.php` | Removed 1 `@throws FileNotFoundException` docblock | | Integration test logs | Updated expected error messages: "Path is outside of the defined root" → "Path traversal detected" | ### Error handling In v3, `readStream()` throws `UnableToReadFile` and `writeStream()` throws `UnableToWriteFile` instead of returning false. A `try/catch(FilesystemException)` block wraps both read and write operations with a `finally` clause to ensure `fclose()` on the stream. Individual file failures are logged and skipped — a single unreadable/unwritable file will not abort the entire resource copy loop. ### Compatibility The phpdocumentor `FileSystem` interface shim (`phpdocumentor/filesystem`) provides backward compatibility. The `FilesystemInterface` union type in `IncludeDirective` is preserved since the shim provides a polyfill for the v1 interface. ## Test plan - [x] PHPStan passes (0 errors) - [x] Unit tests pass (83/83) - [x] Integration tests pass (113/113) - [x] CI green Signed-off-by: Sebastian Mendel --- composer.json | 2 +- composer.lock | 157 +++++++++++------- .../src/Directives/IncludeDirective.php | 9 - .../Directives/SiteSetSettingsDirective.php | 1 - .../src/EventListeners/CopyResources.php | 35 ++-- .../src/Twig/TwigExtension.php | 4 +- .../site-set-failure/expected/logs/error.log | 2 +- .../expected/logs/warning.log | 2 +- 8 files changed, 124 insertions(+), 88 deletions(-) diff --git a/composer.json b/composer.json index ee2f8844f..ffe86093a 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,7 @@ "ext-dom": "*", "ext-libxml": "*", "brotkrueml/twig-codehighlight": "^1.0", - "league/flysystem": "^1.1.10", + "league/flysystem": "^3.29", "phpdocumentor/dev-server": "^1.9.4", "phpdocumentor/filesystem": "^1.9", "phpdocumentor/guides": "^1.9", diff --git a/composer.lock b/composer.lock index 0dc5bbbfa..99dcd569c 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": "a539658a6108a63f5757061bda1439ce", + "content-hash": "6bc548c131c804a8eba2d57af4be3cae", "packages": [ { "name": "brotkrueml/twig-codehighlight", @@ -876,54 +876,55 @@ }, { "name": "league/flysystem", - "version": "1.1.10", + "version": "3.32.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1" + "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1", - "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/254b1595b16b22dbddaaef9ed6ca9fdac4956725", + "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" }, "conflict": { - "league/flysystem-sftp": "<1.0.6" + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" }, "require-dev": { - "phpspec/prophecy": "^1.11.1", - "phpunit/phpunit": "^8.5.8" - }, - "suggest": { - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-mongodb": "^1.3|^2", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", + "microsoft/azure-storage-blob": "^1.1", + "mongodb/mongodb": "^1.2|^2", + "phpseclib/phpseclib": "^3.0.36", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "psr-4": { - "League\\Flysystem\\": "src/" + "League\\Flysystem\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -933,40 +934,77 @@ "authors": [ { "name": "Frank de Jonge", - "email": "info@frenky.net" + "email": "info@frankdejonge.nl" } ], - "description": "Filesystem abstraction: Many filesystems, one API.", + "description": "File storage abstraction for PHP", "keywords": [ - "Cloud Files", "WebDAV", - "abstraction", "aws", "cloud", - "copy.com", - "dropbox", - "file systems", + "file", "files", "filesystem", "filesystems", "ftp", - "rackspace", - "remote", "s3", "sftp", "storage" ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.10" + "source": "https://github.com/thephpleague/flysystem/tree/3.32.0" }, - "funding": [ + "time": "2026-02-25T17:01:41+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.31.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/2f669db18a4c20c755c2bb7d3a7b0b2340488079", + "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://offset.earth/frankdejonge", - "type": "other" + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" } ], - "time": "2022-10-04T09:16:37+00:00" + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-local/tree/3.31.0" + }, + "time": "2026-01-23T15:30:45+00:00" }, { "name": "league/mime-type-detection", @@ -1675,30 +1713,35 @@ }, { "name": "phpdocumentor/flyfinder", - "version": "1.1.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/FlyFinder.git", - "reference": "6e145e676d9fbade7527fd8d4c99ab36b687b958" + "reference": "92f5c407f63952fb66a6bb8c0489935b9c605888" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/FlyFinder/zipball/6e145e676d9fbade7527fd8d4c99ab36b687b958", - "reference": "6e145e676d9fbade7527fd8d4c99ab36b687b958", + "url": "https://api.github.com/repos/phpDocumentor/FlyFinder/zipball/92f5c407f63952fb66a6bb8c0489935b9c605888", + "reference": "92f5c407f63952fb66a6bb8c0489935b9c605888", "shasum": "" }, "require": { - "league/flysystem": "^1.0", - "php": "^7.2||^8.0" + "league/flysystem": "^3.0", + "php": "^8.0||^8.1||^8.2||^8.3" }, "require-dev": { - "league/flysystem-memory": "~1", - "mockery/mockery": "^1.3" + "league/flysystem-memory": "~3", + "mockery/mockery": "^1.4", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^1.12", + "phpstan/phpstan-phpunit": "^1.4", + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "^5.26" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -1720,9 +1763,9 @@ ], "support": { "issues": "https://github.com/phpDocumentor/FlyFinder/issues", - "source": "https://github.com/phpDocumentor/FlyFinder/tree/1.1.0" + "source": "https://github.com/phpDocumentor/FlyFinder/tree/2.0.0" }, - "time": "2021-06-04T13:44:40+00:00" + "time": "2024-09-15T19:58:36+00:00" }, { "name": "phpdocumentor/guides", diff --git a/packages/typo3-docs-theme/src/Directives/IncludeDirective.php b/packages/typo3-docs-theme/src/Directives/IncludeDirective.php index 47cc5bb62..1e7845672 100644 --- a/packages/typo3-docs-theme/src/Directives/IncludeDirective.php +++ b/packages/typo3-docs-theme/src/Directives/IncludeDirective.php @@ -54,9 +54,6 @@ public function processNode( } - /** - * @throws \League\Flysystem\FileNotFoundException - */ public function resolveGlobInclude(BlockContext $blockContext, string $inputPath, Directive $directive): LiteralBlockNode|CollectionNode|CodeNode { $parserContext = $blockContext->getDocumentParserContext()->getParser()->getParserContext(); @@ -103,9 +100,6 @@ public function resolveGlobInclude(BlockContext $blockContext, string $inputPath return new CollectionNode($nodes); } - /** - * @throws \League\Flysystem\FileNotFoundException - */ public function resolveBasicInclude(BlockContext $blockContext, string $inputPath, Directive $directive): LiteralBlockNode|CollectionNode|CodeNode { $parserContext = $blockContext->getDocumentParserContext()->getParser()->getParserContext(); @@ -121,9 +115,6 @@ public function resolveBasicInclude(BlockContext $blockContext, string $inputPat return $this->getCollectionFromPath($origin, $path, $directive, $blockContext); } - /** - * @throws \League\Flysystem\FileNotFoundException - */ public function getCollectionFromPath(\League\Flysystem\FilesystemInterface|\phpDocumentor\FileSystem\FileSystem $origin, string $path, Directive $directive, BlockContext $blockContext): LiteralBlockNode|CollectionNode|CodeNode { $contents = $origin->read($path); diff --git a/packages/typo3-docs-theme/src/Directives/SiteSetSettingsDirective.php b/packages/typo3-docs-theme/src/Directives/SiteSetSettingsDirective.php index cda78f18e..68e22e9fb 100644 --- a/packages/typo3-docs-theme/src/Directives/SiteSetSettingsDirective.php +++ b/packages/typo3-docs-theme/src/Directives/SiteSetSettingsDirective.php @@ -126,7 +126,6 @@ public function processNode( } /** - * @throws \League\Flysystem\FileNotFoundException * @throws FileLoadingException */ public function loadFileFromDocumentation(BlockContext $blockContext, string $filename): string diff --git a/packages/typo3-docs-theme/src/EventListeners/CopyResources.php b/packages/typo3-docs-theme/src/EventListeners/CopyResources.php index 093eb77fa..6abc9d455 100644 --- a/packages/typo3-docs-theme/src/EventListeners/CopyResources.php +++ b/packages/typo3-docs-theme/src/EventListeners/CopyResources.php @@ -4,8 +4,9 @@ namespace T3Docs\Typo3DocsTheme\EventListeners; -use League\Flysystem\Adapter\Local; +use League\Flysystem\FilesystemException; use League\Flysystem\Filesystem; +use League\Flysystem\Local\LocalFilesystemAdapter; use phpDocumentor\Guides\Event\PostRenderProcess; use Psr\Log\LoggerInterface; use Symfony\Component\Finder\Finder; @@ -35,29 +36,31 @@ public function __invoke(PostRenderProcess $event): void return; } - $source = new Filesystem(new Local($fullResourcesPath)); + $source = new Filesystem(new LocalFilesystemAdapter($fullResourcesPath)); - /** @var \League\Flysystem\FilesystemInterface */ $destination = $event->getCommand()->getDestination(); $finder = new Finder(); $finder->files()->in($fullResourcesPath); foreach ($finder as $file) { - $stream = $source->readStream($file->getRelativePathname()); - if ($stream === false) { - $this->logger->warning(sprintf('Cannot read stream from "%s"', $file->getRealPath())); - continue; + $stream = null; + try { + $stream = $source->readStream($file->getRelativePathname()); + $destinationPath = sprintf( + '%s/%s%s', + self::DESTINATION_PATH, + $file->getRelativePath() !== '' ? $file->getRelativePath() . '/' : '', + $file->getFilename() + ); + $destination->putStream($destinationPath, $stream); + } catch (FilesystemException $e) { + $this->logger->warning(sprintf('Cannot copy resource "%s": %s', $file->getRealPath(), $e->getMessage())); + } finally { + if (is_resource($stream)) { + fclose($stream); + } } - - $destinationPath = sprintf( - '%s/%s%s', - self::DESTINATION_PATH, - $file->getRelativePath() !== '' ? $file->getRelativePath() . '/' : '', - $file->getFilename() - ); - $destination->putStream($destinationPath, $stream); - is_resource($stream) && fclose($stream); } } } diff --git a/packages/typo3-docs-theme/src/Twig/TwigExtension.php b/packages/typo3-docs-theme/src/Twig/TwigExtension.php index e3cc2635b..3b81facc4 100644 --- a/packages/typo3-docs-theme/src/Twig/TwigExtension.php +++ b/packages/typo3-docs-theme/src/Twig/TwigExtension.php @@ -4,7 +4,7 @@ namespace T3Docs\Typo3DocsTheme\Twig; -use League\Flysystem\Exception; +use League\Flysystem\FilesystemException; use LogicException; use phpDocumentor\Guides\Nodes\AnchorNode; use phpDocumentor\Guides\Nodes\DocumentTree\DocumentEntryNode; @@ -617,7 +617,7 @@ private function copyAsset( $renderContext->getLoggerInformation(), ); } - } catch (LogicException|Exception $e) { + } catch (LogicException|FilesystemException $e) { $this->logger->error( sprintf('Unable to write file "%s", %s', $outputPath, $e->getMessage()), $renderContext->getLoggerInformation(), diff --git a/tests/Integration/tests/site-set-failure/expected/logs/error.log b/tests/Integration/tests/site-set-failure/expected/logs/error.log index 03f8548ca..2cff43b58 100644 --- a/tests/Integration/tests/site-set-failure/expected/logs/error.log +++ b/tests/Integration/tests/site-set-failure/expected/logs/error.log @@ -1 +1 @@ -app.ERROR: Error while processing "typo3:site-set-settings" directive in "index": Path is outside of the defined root, path: [/../../../tests/Integration/tests/site-set/input/_includes/Sets/FluidStyledContent/settings.definitions.yaml] {"rst-file":"index.rst","currentLineNumber":1} [] +app.ERROR: Error while processing "typo3:site-set-settings" directive in "index": Path traversal detected: /../../../tests/Integration/tests/site-set/input/_includes/Sets/FluidStyledContent/settings.definitions.yaml {"rst-file":"index.rst","currentLineNumber":1} [] diff --git a/tests/Integration/tests/site-set-failure/expected/logs/warning.log b/tests/Integration/tests/site-set-failure/expected/logs/warning.log index 03f8548ca..2cff43b58 100644 --- a/tests/Integration/tests/site-set-failure/expected/logs/warning.log +++ b/tests/Integration/tests/site-set-failure/expected/logs/warning.log @@ -1 +1 @@ -app.ERROR: Error while processing "typo3:site-set-settings" directive in "index": Path is outside of the defined root, path: [/../../../tests/Integration/tests/site-set/input/_includes/Sets/FluidStyledContent/settings.definitions.yaml] {"rst-file":"index.rst","currentLineNumber":1} [] +app.ERROR: Error while processing "typo3:site-set-settings" directive in "index": Path traversal detected: /../../../tests/Integration/tests/site-set/input/_includes/Sets/FluidStyledContent/settings.definitions.yaml {"rst-file":"index.rst","currentLineNumber":1} [] From fc5064a7f4e84e999f63944a37bb3a0d0406db8f Mon Sep 17 00:00:00 2001 From: Sebastian Mendel Date: Sat, 28 Feb 2026 18:39:25 +0100 Subject: [PATCH 2/2] [TASK] Raise minimum PHP to 8.2, update DDEV to PHP 8.2 and Node.js 20 - Raise minimum PHP version from 8.1 to 8.2 across the project - Update composer.json: php ^8.2, platform 8.2.28, replace polyfill-php82 - Update all sub-packages to require php ^8.2 - Add missing ext-* declarations to sub-packages: - typo3-docs-theme: add ext-dom (uses DOMDocument) - typo3-guides-cli: add ext-simplexml (uses SimpleXMLElement) - typo3-version-handling: add ext-curl (uses curl_* functions) - Update PHPStan target version to 80200 - Update PHP-CS-Fixer migration ruleset to @PHP82Migration - Remove PHP 8.1 from CI test matrix, set default to 8.2 - Update Dockerfile base image to php:8.2-cli-alpine - Update DDEV to PHP 8.2 and Node.js 20 Signed-off-by: Sebastian Mendel --- .ddev/config.yaml | 4 +- .github/workflows/docker-test.yaml | 2 +- .github/workflows/main.yaml | 3 +- .php-cs-fixer.dist.php | 2 +- Dockerfile | 4 +- composer.json | 5 +- composer.lock | 833 ++++++++++-------- packages/typo3-api/composer.json | 2 +- packages/typo3-docs-theme/composer.json | 2 + packages/typo3-guides-cli/composer.json | 2 + packages/typo3-guides-extension/composer.json | 1 + packages/typo3-version-handling/composer.json | 4 + phpstan.neon | 2 +- .../tests/admonitions/expected/index.html | 2 + .../md-admonitions/expected/README.html | 2 +- .../markdown/readme/expected/logs/warning.log | 1 + 16 files changed, 487 insertions(+), 384 deletions(-) create mode 100644 tests/Integration/tests/markdown/readme/expected/logs/warning.log diff --git a/.ddev/config.yaml b/.ddev/config.yaml index 8e5aee70f..86da67483 100644 --- a/.ddev/config.yaml +++ b/.ddev/config.yaml @@ -1,7 +1,7 @@ name: render-guides type: php docroot: Documentation-GENERATED-temp -php_version: "8.1" +php_version: "8.2" webserver_type: nginx-fpm router_http_port: "80" router_https_port: "443" @@ -13,7 +13,7 @@ webimage_extra_packages: [build-essential] use_dns_when_possible: true composer_version: "2" web_environment: [] -nodejs_version: "18" +nodejs_version: "20" # Key features of DDEV's config.yaml: diff --git a/.github/workflows/docker-test.yaml b/.github/workflows/docker-test.yaml index 5ca1346fd..a0e97580a 100644 --- a/.github/workflows/docker-test.yaml +++ b/.github/workflows/docker-test.yaml @@ -10,7 +10,7 @@ on: # yamllint disable-line rule:truthy name: "Test Dockerfile" env: - DEFAULT_PHP_VERSION: "8.1" + DEFAULT_PHP_VERSION: "8.2" RUN_ENVIRONMENT: "local" jobs: diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 2ff7270ff..9c63da5cd 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -7,7 +7,7 @@ on: # yamllint disable-line rule:truthy - "main" env: - DEFAULT_PHP_VERSION: "8.1" + DEFAULT_PHP_VERSION: "8.2" RUN_ENVIRONMENT: "local" jobs: @@ -18,7 +18,6 @@ jobs: fail-fast: false matrix: php: - - '8.1' - '8.2' - '8.3' - '8.4' diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 3149472de..3f621eb15 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -12,7 +12,7 @@ ->setCacheFile('.cache/.php-cs-fixer.cache') ->setRules([ '@PER-CS1.0' => true, - '@PHP81Migration' => true, + '@PHP82Migration' => true, // Already implemented PER-CS2 rules we opt-in explicitly // @todo: Can be dropped once we enable @PER-CS2.0 diff --git a/Dockerfile b/Dockerfile index 2c909e4d3..660d35105 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.1-cli-alpine AS builder +FROM php:8.2-cli-alpine AS builder COPY --from=ghcr.io/php/pie:bin /pie /usr/bin/pie COPY --from=composer:2 /usr/bin/composer /usr/bin/composer @@ -12,7 +12,7 @@ COPY . /opt/guides RUN composer install --no-dev --no-interaction --no-progress \ --no-suggest --optimize-autoloader --classmap-authoritative -FROM php:8.1-cli-alpine +FROM php:8.2-cli-alpine COPY --from=ghcr.io/php/pie:bin /pie /usr/bin/pie RUN apk add --update $PHPIZE_DEPS diff --git a/composer.json b/composer.json index ffe86093a..c38b82901 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "phpDocumentor-based Documentation rendering for docs.typo3.org or custom extensions.", "license": "OPL-1.0", "require": { - "php": "^8.1", + "php": "^8.2", "ext-curl": "*", "ext-dom": "*", "ext-libxml": "*", @@ -42,6 +42,7 @@ "replace": { "symfony/polyfill-php80": "*", "symfony/polyfill-php81": "*", + "symfony/polyfill-php82": "*", "t3docs/typo3-api": "self.version", "t3docs/typo3-docs-theme": "self.version", "t3docs/typo3-guides-cli": "self.version", @@ -69,7 +70,7 @@ "phpstan/extension-installer": true }, "platform": { - "php": "8.1.27" + "php": "8.2.28" }, "sort-packages": true }, diff --git a/composer.lock b/composer.lock index 99dcd569c..ba1757b24 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": "6bc548c131c804a8eba2d57af4be3cae", + "content-hash": "00bccc4f7c3b5c825f5df5435891eb41", "packages": [ { "name": "brotkrueml/twig-codehighlight", @@ -204,26 +204,29 @@ }, { "name": "doctrine/deprecations", - "version": "1.1.4", + "version": "1.1.6", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=14" + }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12", - "phpstan/phpstan": "1.4.10 || 2.0.3", + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", "psr/log": "^1 || ^2 || ^3" }, "suggest": { @@ -243,9 +246,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.4" + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" }, - "time": "2024-12-07T21:18:45+00:00" + "time": "2026-02-07T07:09:04+00:00" }, { "name": "doctrine/lexer", @@ -596,16 +599,16 @@ }, { "name": "league/commonmark", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405" + "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6fbb36d44824ed4091adbcf4c7d4a3923cdb3405", - "reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/4efa10c1e56488e658d10adf7b7b7dcd19940bfb", + "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb", "shasum": "" }, "require": { @@ -634,7 +637,7 @@ "symfony/process": "^5.4 | ^6.0 | ^7.0", "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", - "vimeo/psalm": "^4.24.0 || ^5.0.0" + "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0" }, "suggest": { "symfony/yaml": "v2.3+ required if using the Front Matter extension" @@ -642,7 +645,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.8-dev" + "dev-main": "2.9-dev" } }, "autoload": { @@ -699,7 +702,7 @@ "type": "tidelift" } ], - "time": "2025-05-05T12:20:28+00:00" + "time": "2025-11-26T21:48:24+00:00" }, { "name": "league/config", @@ -785,16 +788,16 @@ }, { "name": "league/csv", - "version": "9.27.1", + "version": "9.28.0", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "26de738b8fccf785397d05ee2fc07b6cd8749797" + "reference": "6582ace29ae09ba5b07049d40ea13eb19c8b5073" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/26de738b8fccf785397d05ee2fc07b6cd8749797", - "reference": "26de738b8fccf785397d05ee2fc07b6cd8749797", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/6582ace29ae09ba5b07049d40ea13eb19c8b5073", + "reference": "6582ace29ae09ba5b07049d40ea13eb19c8b5073", "shasum": "" }, "require": { @@ -804,14 +807,14 @@ "require-dev": { "ext-dom": "*", "ext-xdebug": "*", - "friendsofphp/php-cs-fixer": "^3.75.0", - "phpbench/phpbench": "^1.4.1", - "phpstan/phpstan": "^1.12.27", + "friendsofphp/php-cs-fixer": "^3.92.3", + "phpbench/phpbench": "^1.4.3", + "phpstan/phpstan": "^1.12.32", "phpstan/phpstan-deprecation-rules": "^1.2.1", "phpstan/phpstan-phpunit": "^1.4.2", "phpstan/phpstan-strict-rules": "^1.6.2", - "phpunit/phpunit": "^10.5.16 || ^11.5.22 || ^12.3.6", - "symfony/var-dumper": "^6.4.8 || ^7.3.0" + "phpunit/phpunit": "^10.5.16 || ^11.5.22 || ^12.5.4", + "symfony/var-dumper": "^6.4.8 || ^7.4.0 || ^8.0" }, "suggest": { "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes", @@ -872,7 +875,7 @@ "type": "github" } ], - "time": "2025-10-25T08:35:20+00:00" + "time": "2025-12-27T15:18:42+00:00" }, { "name": "league/flysystem", @@ -1064,16 +1067,16 @@ }, { "name": "league/tactician", - "version": "v1.1.0", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/thephpleague/tactician.git", - "reference": "e79f763170f3d5922ec29e85cffca0bac5cd8975" + "reference": "93b2eafa4321f84164f3d3f607a32a953f3fff0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/tactician/zipball/e79f763170f3d5922ec29e85cffca0bac5cd8975", - "reference": "e79f763170f3d5922ec29e85cffca0bac5cd8975", + "url": "https://api.github.com/repos/thephpleague/tactician/zipball/93b2eafa4321f84164f3d3f607a32a953f3fff0b", + "reference": "93b2eafa4321f84164f3d3f607a32a953f3fff0b", "shasum": "" }, "require": { @@ -1113,39 +1116,44 @@ ], "support": { "issues": "https://github.com/thephpleague/tactician/issues", - "source": "https://github.com/thephpleague/tactician/tree/v1.1.0" + "source": "https://github.com/thephpleague/tactician/tree/v1.2.0" }, - "time": "2021-02-14T15:29:04+00:00" + "time": "2025-12-21T18:05:37+00:00" }, { "name": "league/uri", - "version": "7.5.1", + "version": "7.8.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "81fb5145d2644324614cc532b28efd0215bda430" + "reference": "4436c6ec8d458e4244448b069cc572d088230b76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", - "reference": "81fb5145d2644324614cc532b28efd0215bda430", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76", + "reference": "4436c6ec8d458e4244448b069cc572d088230b76", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.5", - "php": "^8.1" + "league/uri-interfaces": "^7.8", + "php": "^8.1", + "psr/http-factory": "^1" }, "conflict": { "league/uri-schemes": "^1.0" }, "suggest": { "ext-bcmath": "to improve IPV4 host parsing", + "ext-dom": "to convert the URI into an HTML anchor tag", "ext-fileinfo": "to create Data URI from file contennts", "ext-gmp": "to improve IPV4 host parsing", "ext-intl": "to handle IDN host with the best performance", - "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", - "league/uri-components": "Needed to easily manipulate URI objects components", + "ext-uri": "to use the PHP native URI class", + "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain", + "league/uri-components": "to provide additional tools to manipulate URI objects components", + "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP", "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", @@ -1173,6 +1181,7 @@ "description": "URI manipulation library", "homepage": "https://uri.thephpleague.com", "keywords": [ + "URN", "data-uri", "file-uri", "ftp", @@ -1185,9 +1194,11 @@ "psr-7", "query-string", "querystring", + "rfc2141", "rfc3986", "rfc3987", "rfc6570", + "rfc8141", "uri", "uri-template", "url", @@ -1197,7 +1208,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.5.1" + "source": "https://github.com/thephpleague/uri/tree/7.8.0" }, "funding": [ { @@ -1205,26 +1216,25 @@ "type": "github" } ], - "time": "2024-12-08T08:40:02+00:00" + "time": "2026-01-14T17:24:56+00:00" }, { "name": "league/uri-interfaces", - "version": "7.5.0", + "version": "7.8.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" + "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", - "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4", + "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4", "shasum": "" }, "require": { "ext-filter": "*", "php": "^8.1", - "psr/http-factory": "^1", "psr/http-message": "^1.1 || ^2.0" }, "suggest": { @@ -1232,6 +1242,7 @@ "ext-gmp": "to improve IPV4 host parsing", "ext-intl": "to handle IDN host with the best performance", "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", @@ -1256,7 +1267,7 @@ "homepage": "https://nyamsprod.com" } ], - "description": "Common interfaces and classes for URI representation and interaction", + "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI", "homepage": "https://uri.thephpleague.com", "keywords": [ "data-uri", @@ -1281,7 +1292,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.5.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.0" }, "funding": [ { @@ -1289,20 +1300,20 @@ "type": "github" } ], - "time": "2024-12-08T08:18:47+00:00" + "time": "2026-01-15T06:54:53+00:00" }, { "name": "masterminds/html5", - "version": "2.9.0", + "version": "2.10.0", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" + "reference": "fcf91eb64359852f00d921887b219479b4f21251" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", - "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251", + "reference": "fcf91eb64359852f00d921887b219479b4f21251", "shasum": "" }, "require": { @@ -1354,22 +1365,22 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" + "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" }, - "time": "2024-03-31T07:05:07+00:00" + "time": "2025-07-25T09:04:22+00:00" }, { "name": "monolog/monolog", - "version": "3.9.0", + "version": "3.10.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" + "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", - "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0", + "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0", "shasum": "" }, "require": { @@ -1387,7 +1398,7 @@ "graylog2/gelf-php": "^1.4.2 || ^2.0", "guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", + "mongodb/mongodb": "^1.8 || ^2.0", "php-amqplib/php-amqplib": "~2.4 || ^3", "php-console/php-console": "^3.1.8", "phpstan/phpstan": "^2", @@ -1447,7 +1458,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.9.0" + "source": "https://github.com/Seldaek/monolog/tree/3.10.0" }, "funding": [ { @@ -1459,29 +1470,31 @@ "type": "tidelift" } ], - "time": "2025-03-24T10:02:05+00:00" + "time": "2026-01-02T08:56:05+00:00" }, { "name": "nette/schema", - "version": "v1.3.2", + "version": "v1.3.5", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "da801d52f0354f70a638673c4a0f04e16529431d" + "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", - "reference": "da801d52f0354f70a638673c4a0f04e16529431d", + "url": "https://api.github.com/repos/nette/schema/zipball/f0ab1a3cda782dbc5da270d28545236aa80c4002", + "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "require-dev": { - "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^1.0", + "nette/phpstan-rules": "^1.0", + "nette/tester": "^2.6", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1.39@stable", "tracy/tracy": "^2.8" }, "type": "library", @@ -1491,6 +1504,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1519,26 +1535,26 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.2" + "source": "https://github.com/nette/schema/tree/v1.3.5" }, - "time": "2024-10-06T23:10:23+00:00" + "time": "2026-02-23T03:47:12+00:00" }, { "name": "nette/utils", - "version": "v4.0.10", + "version": "v4.1.3", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3" + "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3", - "reference": "2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3", + "url": "https://api.github.com/repos/nette/utils/zipball/bb3ea637e3d131d72acc033cfc2746ee893349fe", + "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe", "shasum": "" }, "require": { - "php": "8.0 - 8.5" + "php": "8.2 - 8.5" }, "conflict": { "nette/finder": "<3", @@ -1546,8 +1562,10 @@ }, "require-dev": { "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", "nette/tester": "^2.5", - "phpstan/phpstan-nette": "^2.0@stable", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -1561,7 +1579,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -1608,22 +1626,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.10" + "source": "https://github.com/nette/utils/tree/v4.1.3" }, - "time": "2025-12-01T17:30:42+00:00" + "time": "2026-02-13T03:05:33+00:00" }, { "name": "phpdocumentor/dev-server", - "version": "1.9.4", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/phpDocumentor/dev-server.git", - "reference": "119fce271e09ea9cfb2193946ad54c593397db5d" + "reference": "ed2082e2d50daf2c1ba9ee4370f3be449c5a68d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/dev-server/zipball/119fce271e09ea9cfb2193946ad54c593397db5d", - "reference": "119fce271e09ea9cfb2193946ad54c593397db5d", + "url": "https://api.github.com/repos/phpDocumentor/dev-server/zipball/ed2082e2d50daf2c1ba9ee4370f3be449c5a68d9", + "reference": "ed2082e2d50daf2c1ba9ee4370f3be449c5a68d9", "shasum": "" }, "require": { @@ -1636,8 +1654,8 @@ "psr/log": "^1.0 || ^2.0 || ^3.0", "react/http": "^v1.11", "react/socket": "^v1.16", - "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0", - "symfony/routing": "^5.4 || ^6.3 || ^7.0" + "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/routing": "^5.4 || ^6.3 || ^7.0 || ^8.0" }, "type": "project", "extra": { @@ -1663,9 +1681,9 @@ "description": "A php development server with live reloading to preview your documentation", "support": { "issues": "https://github.com/phpDocumentor/dev-server/issues", - "source": "https://github.com/phpDocumentor/dev-server/tree/1.9.4" + "source": "https://github.com/phpDocumentor/dev-server/tree/1.9.5" }, - "time": "2025-11-12T12:20:44+00:00" + "time": "2025-11-29T17:03:22+00:00" }, { "name": "phpdocumentor/filesystem", @@ -1769,16 +1787,16 @@ }, { "name": "phpdocumentor/guides", - "version": "1.9.2", + "version": "1.9.6", "source": { "type": "git", "url": "https://github.com/phpDocumentor/guides-core.git", - "reference": "d60e8dae9fcb85da610f05f4ef673a42f266b47a" + "reference": "3ebb9c4d4ad0c19335a13d0f3932a9d48b461c41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/guides-core/zipball/d60e8dae9fcb85da610f05f4ef673a42f266b47a", - "reference": "d60e8dae9fcb85da610f05f4ef673a42f266b47a", + "url": "https://api.github.com/repos/phpDocumentor/guides-core/zipball/3ebb9c4d4ad0c19335a13d0f3932a9d48b461c41", + "reference": "3ebb9c4d4ad0c19335a13d0f3932a9d48b461c41", "shasum": "" }, "require": { @@ -1792,11 +1810,11 @@ "phpdocumentor/filesystem": "^1.7.4", "phpdocumentor/flyfinder": "^1.1 || ^2.0", "psr/event-dispatcher": "^1.0", - "symfony/clock": "^6.4.8", - "symfony/html-sanitizer": "^6.4.8", - "symfony/http-client": "^6.4.9", + "symfony/clock": "^6.4.8 || ^7.4 || ^8", + "symfony/html-sanitizer": "^6.4.8 || ^7.4 || ^8", + "symfony/http-client": "^6.4.9 || ^7.4 || ^8", "symfony/polyfill-php84": "^1.33.0", - "symfony/string": "^6.4.9", + "symfony/string": "^6.4.9 || ^7.4 || ^8", "symfony/translation-contracts": "^3.5.1", "twig/twig": "~2.15 || ^3.0", "webmozart/assert": "^1.11" @@ -1823,22 +1841,22 @@ "homepage": "https://www.phpdoc.org", "support": { "issues": "https://github.com/phpDocumentor/guides-core/issues", - "source": "https://github.com/phpDocumentor/guides-core/tree/1.9.2" + "source": "https://github.com/phpDocumentor/guides-core/tree/1.9.6" }, - "time": "2025-10-17T16:59:53+00:00" + "time": "2026-01-23T12:31:23+00:00" }, { "name": "phpdocumentor/guides-cli", - "version": "1.9.3", + "version": "1.9.6", "source": { "type": "git", "url": "https://github.com/phpDocumentor/guides-cli.git", - "reference": "6ee2adab921b2d64f94fd574e90060d8c1e96f45" + "reference": "93fae3c50cdb175850fbab12e5f700d820218c2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/guides-cli/zipball/6ee2adab921b2d64f94fd574e90060d8c1e96f45", - "reference": "6ee2adab921b2d64f94fd574e90060d8c1e96f45", + "url": "https://api.github.com/repos/phpDocumentor/guides-cli/zipball/93fae3c50cdb175850fbab12e5f700d820218c2c", + "reference": "93fae3c50cdb175850fbab12e5f700d820218c2c", "shasum": "" }, "require": { @@ -1846,10 +1864,10 @@ "php": "^8.1", "phpdocumentor/guides": "^1.0 || ^2.0", "phpdocumentor/guides-restructured-text": "^1.0 || ^2.0", - "symfony/config": "^5.4 || ^6.3 || ^7.0", - "symfony/console": "^5.4 || ^6.3 || ^7.0", - "symfony/dependency-injection": "^5.4 || ^6.3 || ^7.0", - "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0" + "symfony/config": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/console": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/dependency-injection": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/event-dispatcher": "^5.4 || ^6.3 || ^7.0 || ^8.0" }, "suggest": { "phpdocumentor/dev-server": "Allows you to run a development server with live reloading to preview your documentation" @@ -1880,22 +1898,22 @@ ], "description": "Allows you to run phpDocumentor Guides as a stand alone application as console command", "support": { - "source": "https://github.com/phpDocumentor/guides-cli/tree/1.9.3" + "source": "https://github.com/phpDocumentor/guides-cli/tree/1.9.6" }, - "time": "2025-10-17T18:51:10+00:00" + "time": "2026-01-22T08:17:47+00:00" }, { "name": "phpdocumentor/guides-graphs", - "version": "1.7.3", + "version": "1.9.6", "source": { "type": "git", "url": "https://github.com/phpDocumentor/guides-graphs.git", - "reference": "e0fedc704884c261f60bc840760120b280bc2240" + "reference": "580ffeb50d12363973b09a24109fb4d7a198efdd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/guides-graphs/zipball/e0fedc704884c261f60bc840760120b280bc2240", - "reference": "e0fedc704884c261f60bc840760120b280bc2240", + "url": "https://api.github.com/repos/phpDocumentor/guides-graphs/zipball/580ffeb50d12363973b09a24109fb4d7a198efdd", + "reference": "580ffeb50d12363973b09a24109fb4d7a198efdd", "shasum": "" }, "require": { @@ -1903,7 +1921,7 @@ "php": "^8.1", "phpdocumentor/guides": "^1.0 || ^2.0", "phpdocumentor/guides-restructured-text": "^1.0 || ^2.0", - "symfony/process": "^5.4 || ^6.3 || ^7.0", + "symfony/process": "^5.4 || ^6.3 || ^7.0 || ^8.0", "twig/twig": "~2.0 || ^3.0" }, "suggest": { @@ -1928,29 +1946,29 @@ "homepage": "https://www.phpdoc.org", "support": { "issues": "https://github.com/phpDocumentor/guides-graphs/issues", - "source": "https://github.com/phpDocumentor/guides-graphs/tree/1.7.3" + "source": "https://github.com/phpDocumentor/guides-graphs/tree/1.9.6" }, - "time": "2025-03-07T15:51:49+00:00" + "time": "2026-01-18T19:20:03+00:00" }, { "name": "phpdocumentor/guides-markdown", - "version": "1.9.1", + "version": "1.9.6", "source": { "type": "git", "url": "https://github.com/phpDocumentor/guides-markdown.git", - "reference": "04bc3e1da61fcf28758cfa379ced5650a6e9f933" + "reference": "b6a58befc859634333c3f1b5475b0c75eacac8f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/guides-markdown/zipball/04bc3e1da61fcf28758cfa379ced5650a6e9f933", - "reference": "04bc3e1da61fcf28758cfa379ced5650a6e9f933", + "url": "https://api.github.com/repos/phpDocumentor/guides-markdown/zipball/b6a58befc859634333c3f1b5475b0c75eacac8f7", + "reference": "b6a58befc859634333c3f1b5475b0c75eacac8f7", "shasum": "" }, "require": { "league/commonmark": "^2.4", "php": "^8.1", "phpdocumentor/guides": "^1.0 || ^2.0", - "symfony/yaml": "^6.4 || ^7.0" + "symfony/yaml": "^6.4 || ^7.0 || ^8.0" }, "type": "library", "extra": { @@ -1971,22 +1989,22 @@ "homepage": "https://www.phpdoc.org", "support": { "issues": "https://github.com/phpDocumentor/guides-markdown/issues", - "source": "https://github.com/phpDocumentor/guides-markdown/tree/1.9.1" + "source": "https://github.com/phpDocumentor/guides-markdown/tree/1.9.6" }, - "time": "2025-09-22T14:05:17+00:00" + "time": "2026-02-27T16:08:02+00:00" }, { "name": "phpdocumentor/guides-restructured-text", - "version": "1.9.4", + "version": "1.9.6", "source": { "type": "git", "url": "https://github.com/phpDocumentor/guides-restructured-text.git", - "reference": "f31f98a0b0e51189eb1fa200fe62b531b60f2cf0" + "reference": "5b381632eb32b9f255348a938bafdcfe322ab8d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/guides-restructured-text/zipball/f31f98a0b0e51189eb1fa200fe62b531b60f2cf0", - "reference": "f31f98a0b0e51189eb1fa200fe62b531b60f2cf0", + "url": "https://api.github.com/repos/phpDocumentor/guides-restructured-text/zipball/5b381632eb32b9f255348a938bafdcfe322ab8d0", + "reference": "5b381632eb32b9f255348a938bafdcfe322ab8d0", "shasum": "" }, "require": { @@ -2014,22 +2032,22 @@ "description": "Adds reStructuredText Markup support to the phpDocumentor's Guides library.", "homepage": "https://www.phpdoc.org", "support": { - "source": "https://github.com/phpDocumentor/guides-restructured-text/tree/1.9.4" + "source": "https://github.com/phpDocumentor/guides-restructured-text/tree/1.9.6" }, - "time": "2025-11-12T19:52:51+00:00" + "time": "2026-02-27T16:00:14+00:00" }, { "name": "phpdocumentor/guides-theme-bootstrap", - "version": "1.7.0", + "version": "1.9.6", "source": { "type": "git", "url": "https://github.com/phpDocumentor/guides-theme-bootstrap.git", - "reference": "763e635c3491e379a3b3197c4e3740f10c56c652" + "reference": "ac4e5f2afc10eb31de916b9d3f6bee2ef90d82ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/guides-theme-bootstrap/zipball/763e635c3491e379a3b3197c4e3740f10c56c652", - "reference": "763e635c3491e379a3b3197c4e3740f10c56c652", + "url": "https://api.github.com/repos/phpDocumentor/guides-theme-bootstrap/zipball/ac4e5f2afc10eb31de916b9d3f6bee2ef90d82ec", + "reference": "ac4e5f2afc10eb31de916b9d3f6bee2ef90d82ec", "shasum": "" }, "require": { @@ -2055,22 +2073,22 @@ "description": "A theme for phpdocumentor/guides based on Bootstrap", "homepage": "https://www.phpdoc.org", "support": { - "source": "https://github.com/phpDocumentor/guides-theme-bootstrap/tree/1.7.0" + "source": "https://github.com/phpDocumentor/guides-theme-bootstrap/tree/1.9.6" }, - "time": "2025-01-29T20:10:47+00:00" + "time": "2026-02-23T20:35:06+00:00" }, { "name": "phpdocumentor/guides-theme-rst", - "version": "1.7.3", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/phpDocumentor/guides-theme-rst.git", - "reference": "7d9312f41e53f4640b8e892b11b7b24e79e2d0ab" + "reference": "422110746919cc127f36442bb8b2af3afd625da6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/guides-theme-rst/zipball/7d9312f41e53f4640b8e892b11b7b24e79e2d0ab", - "reference": "7d9312f41e53f4640b8e892b11b7b24e79e2d0ab", + "url": "https://api.github.com/repos/phpDocumentor/guides-theme-rst/zipball/422110746919cc127f36442bb8b2af3afd625da6", + "reference": "422110746919cc127f36442bb8b2af3afd625da6", "shasum": "" }, "require": { @@ -2097,9 +2115,9 @@ "homepage": "https://www.phpdoc.org", "support": { "issues": "https://github.com/phpDocumentor/guides-theme-rst/issues", - "source": "https://github.com/phpDocumentor/guides-theme-rst/tree/1.7.3" + "source": "https://github.com/phpDocumentor/guides-theme-rst/tree/1.9.5" }, - "time": "2025-03-07T15:51:49+00:00" + "time": "2025-12-28T13:55:49+00:00" }, { "name": "psr/clock", @@ -3133,16 +3151,16 @@ }, { "name": "symfony/clock", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b" + "reference": "fb2df4bc9e3037c4765ba7fd29e00167001a9b68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/b2bf55c4dd115003309eafa87ee7df9ed3dde81b", - "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b", + "url": "https://api.github.com/repos/symfony/clock/zipball/fb2df4bc9e3037c4765ba7fd29e00167001a9b68", + "reference": "fb2df4bc9e3037c4765ba7fd29e00167001a9b68", "shasum": "" }, "require": { @@ -3187,7 +3205,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v6.4.13" + "source": "https://github.com/symfony/clock/tree/v6.4.30" }, "funding": [ { @@ -3198,43 +3216,47 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-11-11T21:24:34+00:00" }, { "name": "symfony/config", - "version": "v6.4.24", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "80e2cf005cf17138c97193be0434cdcfd1b2212e" + "reference": "9400e2f9226b3b64ebb0a8ae967ae84e54e39640" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/80e2cf005cf17138c97193be0434cdcfd1b2212e", - "reference": "80e2cf005cf17138c97193be0434cdcfd1b2212e", + "url": "https://api.github.com/repos/symfony/config/zipball/9400e2f9226b3b64ebb0a8ae967ae84e54e39640", + "reference": "9400e2f9226b3b64ebb0a8ae967ae84e54e39640", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^5.4|^6.0|^7.0", + "symfony/filesystem": "^7.1|^8.0", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/finder": "<5.4", + "symfony/finder": "<6.4", "symfony/service-contracts": "<2.5" }, "require-dev": { - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3262,7 +3284,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.24" + "source": "https://github.com/symfony/config/tree/v7.4.6" }, "funding": [ { @@ -3282,20 +3304,20 @@ "type": "tidelift" } ], - "time": "2025-07-26T13:50:30+00:00" + "time": "2026-02-25T16:50:00+00:00" }, { "name": "symfony/console", - "version": "v6.4.32", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3" + "reference": "7b1f1c37eff5910ddda2831345467e593a5120ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", - "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", + "url": "https://api.github.com/repos/symfony/console/zipball/7b1f1c37eff5910ddda2831345467e593a5120ad", + "reference": "7b1f1c37eff5910ddda2831345467e593a5120ad", "shasum": "" }, "require": { @@ -3360,7 +3382,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.32" + "source": "https://github.com/symfony/console/tree/v6.4.34" }, "funding": [ { @@ -3380,44 +3402,43 @@ "type": "tidelift" } ], - "time": "2026-01-13T08:45:59+00:00" + "time": "2026-02-23T15:42:15+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.24", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "929ab73b93247a15166ee79e807ccee4f930322d" + "reference": "a3f7d594ca53a34a7d39ae683fbca09408b0c598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/929ab73b93247a15166ee79e807ccee4f930322d", - "reference": "929ab73b93247a15166ee79e807ccee4f930322d", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a3f7d594ca53a34a7d39ae683fbca09408b0c598", + "reference": "a3f7d594ca53a34a7d39ae683fbca09408b0c598", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4.20|^7.2.5" + "symfony/service-contracts": "^3.6", + "symfony/var-exporter": "^6.4.20|^7.2.5|^8.0" }, "conflict": { "ext-psr": "<1.1|>=2", - "symfony/config": "<6.1", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.3", - "symfony/yaml": "<5.4" + "symfony/config": "<6.4", + "symfony/finder": "<6.4", + "symfony/yaml": "<6.4" }, "provide": { "psr/container-implementation": "1.1|2.0", "symfony/service-implementation": "1.1|2.0|3.0" }, "require-dev": { - "symfony/config": "^6.1|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3445,7 +3466,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.24" + "source": "https://github.com/symfony/dependency-injection/tree/v7.4.6" }, "funding": [ { @@ -3465,7 +3486,7 @@ "type": "tidelift" } ], - "time": "2025-07-30T17:30:48+00:00" + "time": "2026-02-25T16:50:00+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3536,24 +3557,24 @@ }, { "name": "symfony/event-dispatcher", - "version": "v6.4.32", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "99d7e101826e6610606b9433248f80c1997cd20b" + "reference": "dc2c0eba1af673e736bb851d747d266108aea746" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99d7e101826e6610606b9433248f80c1997cd20b", - "reference": "99d7e101826e6610606b9433248f80c1997cd20b", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dc2c0eba1af673e736bb851d747d266108aea746", + "reference": "dc2c0eba1af673e736bb851d747d266108aea746", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -3562,13 +3583,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3596,7 +3618,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.32" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.4" }, "funding": [ { @@ -3616,7 +3638,7 @@ "type": "tidelift" } ], - "time": "2026-01-05T11:13:48+00:00" + "time": "2026-01-05T11:45:34+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3696,25 +3718,25 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.30", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789" + "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/441c6b69f7222aadae7cbf5df588496d5ee37789", - "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/3ebc794fa5315e59fd122561623c2e2e4280538e", + "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^5.4|^6.4|^7.0" + "symfony/process": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3742,7 +3764,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.30" + "source": "https://github.com/symfony/filesystem/tree/v7.4.6" }, "funding": [ { @@ -3762,20 +3784,20 @@ "type": "tidelift" } ], - "time": "2025-11-26T14:43:45+00:00" + "time": "2026-02-25T16:50:00+00:00" }, { "name": "symfony/finder", - "version": "v6.4.33", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "24965ca011dac87431729640feef8bcf7b5523e0" + "reference": "9590e86be1d1c57bfbb16d0dd040345378c20896" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/24965ca011dac87431729640feef8bcf7b5523e0", - "reference": "24965ca011dac87431729640feef8bcf7b5523e0", + "url": "https://api.github.com/repos/symfony/finder/zipball/9590e86be1d1c57bfbb16d0dd040345378c20896", + "reference": "9590e86be1d1c57bfbb16d0dd040345378c20896", "shasum": "" }, "require": { @@ -3810,7 +3832,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.33" + "source": "https://github.com/symfony/finder/tree/v6.4.34" }, "funding": [ { @@ -3830,27 +3852,28 @@ "type": "tidelift" } ], - "time": "2026-01-26T13:03:48+00:00" + "time": "2026-01-28T15:16:37+00:00" }, { "name": "symfony/html-sanitizer", - "version": "v6.4.18", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "28e9fb12a6784c64b1b5e6fc92853bb7a3c4bf05" + "reference": "5b0bbcc3600030b535dd0b17a0e8c56243f96d7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/28e9fb12a6784c64b1b5e6fc92853bb7a3c4bf05", - "reference": "28e9fb12a6784c64b1b5e6fc92853bb7a3c4bf05", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/5b0bbcc3600030b535dd0b17a0e8c56243f96d7f", + "reference": "5b0bbcc3600030b535dd0b17a0e8c56243f96d7f", "shasum": "" }, "require": { "ext-dom": "*", "league/uri": "^6.5|^7.0", "masterminds/html5": "^2.7.2", - "php": ">=8.1" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3" }, "type": "library", "autoload": { @@ -3883,7 +3906,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v6.4.18" + "source": "https://github.com/symfony/html-sanitizer/tree/v7.4.0" }, "funding": [ { @@ -3894,25 +3917,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-01-17T13:18:31+00:00" + "time": "2025-10-30T13:39:42+00:00" }, { "name": "symfony/http-client", - "version": "v6.4.19", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "3294a433fc9d12ae58128174896b5b1822c28dad" + "reference": "0dc71f52e5d35bb045fd0f82b1a80c027971d551" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/3294a433fc9d12ae58128174896b5b1822c28dad", - "reference": "3294a433fc9d12ae58128174896b5b1822c28dad", + "url": "https://api.github.com/repos/symfony/http-client/zipball/0dc71f52e5d35bb045fd0f82b1a80c027971d551", + "reference": "0dc71f52e5d35bb045fd0f82b1a80c027971d551", "shasum": "" }, "require": { @@ -3920,6 +3947,7 @@ "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-client-contracts": "~3.4.4|^3.5.2", + "symfony/polyfill-php83": "^1.29", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -3976,7 +4004,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.19" + "source": "https://github.com/symfony/http-client/tree/v6.4.34" }, "funding": [ { @@ -3987,25 +4015,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-02-13T09:55:13+00:00" + "time": "2026-02-18T07:27:25+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v3.5.2", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645" + "reference": "75d7043853a42837e68111812f4d964b01e5101c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ee8d807ab20fcb51267fdace50fbe3494c31e645", - "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/75d7043853a42837e68111812f4d964b01e5101c", + "reference": "75d7043853a42837e68111812f4d964b01e5101c", "shasum": "" }, "require": { @@ -4018,7 +4050,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -4054,7 +4086,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.2" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.6.0" }, "funding": [ { @@ -4070,20 +4102,20 @@ "type": "tidelift" } ], - "time": "2024-12-07T08:49:48+00:00" + "time": "2025-04-29T11:18:49+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.26", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "369241591d92bb5dfb4c6ccd6ee94378a45b1521" + "reference": "5bb346d1b4b2a616e5c3d99b3ee4d5810735c535" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/369241591d92bb5dfb4c6ccd6ee94378a45b1521", - "reference": "369241591d92bb5dfb4c6ccd6ee94378a45b1521", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5bb346d1b4b2a616e5c3d99b3ee4d5810735c535", + "reference": "5bb346d1b4b2a616e5c3d99b3ee4d5810735c535", "shasum": "" }, "require": { @@ -4131,7 +4163,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.26" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.34" }, "funding": [ { @@ -4151,7 +4183,7 @@ "type": "tidelift" } ], - "time": "2025-09-16T08:22:30+00:00" + "time": "2026-02-21T15:48:41+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4490,16 +4522,16 @@ }, { "name": "symfony/polyfill-php83", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", "shasum": "" }, "require": { @@ -4546,7 +4578,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" }, "funding": [ { @@ -4557,12 +4589,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-07-08T02:45:35+00:00" }, { "name": "symfony/polyfill-php84", @@ -4646,20 +4682,20 @@ }, { "name": "symfony/process", - "version": "v6.4.33", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "c46e854e79b52d07666e43924a20cb6dc546644e" + "reference": "608476f4604102976d687c483ac63a79ba18cc97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/c46e854e79b52d07666e43924a20cb6dc546644e", - "reference": "c46e854e79b52d07666e43924a20cb6dc546644e", + "url": "https://api.github.com/repos/symfony/process/zipball/608476f4604102976d687c483ac63a79ba18cc97", + "reference": "608476f4604102976d687c483ac63a79ba18cc97", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -4687,7 +4723,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.33" + "source": "https://github.com/symfony/process/tree/v7.4.5" }, "funding": [ { @@ -4707,20 +4743,20 @@ "type": "tidelift" } ], - "time": "2026-01-23T16:02:12+00:00" + "time": "2026-01-26T15:07:59+00:00" }, { "name": "symfony/routing", - "version": "v6.4.26", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "6fc4c445f22857d4b8b40a02b73f423ddab295de" + "reference": "5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/6fc4c445f22857d4b8b40a02b73f423ddab295de", - "reference": "6fc4c445f22857d4b8b40a02b73f423ddab295de", + "url": "https://api.github.com/repos/symfony/routing/zipball/5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47", + "reference": "5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47", "shasum": "" }, "require": { @@ -4774,7 +4810,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.26" + "source": "https://github.com/symfony/routing/tree/v6.4.34" }, "funding": [ { @@ -4794,7 +4830,7 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2026-02-24T17:34:50+00:00" }, { "name": "symfony/service-contracts", @@ -4885,22 +4921,23 @@ }, { "name": "symfony/string", - "version": "v6.4.30", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb" + "reference": "9f209231affa85aa930a5e46e6eb03381424b30b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/50590a057841fa6bf69d12eceffce3465b9e32cb", - "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb", + "url": "https://api.github.com/repos/symfony/string/zipball/9f209231affa85aa930a5e46e6eb03381424b30b", + "reference": "9f209231affa85aa930a5e46e6eb03381424b30b", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-grapheme": "~1.33", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, @@ -4908,10 +4945,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" + "symfony/var-exporter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -4950,7 +4988,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.30" + "source": "https://github.com/symfony/string/tree/v7.4.6" }, "funding": [ { @@ -4970,20 +5008,20 @@ "type": "tidelift" } ], - "time": "2025-11-21T18:03:05+00:00" + "time": "2026-02-09T09:33:46+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.5.1", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", - "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", "shasum": "" }, "require": { @@ -4996,7 +5034,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -5032,7 +5070,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" }, "funding": [ { @@ -5043,35 +5081,39 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.24", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "1e742d559fe5b19d0cdc281b1bf0b1fcc243bd35" + "reference": "03a60f169c79a28513a78c967316fbc8bf17816f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1e742d559fe5b19d0cdc281b1bf0b1fcc243bd35", - "reference": "1e742d559fe5b19d0cdc281b1bf0b1fcc243bd35", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/03a60f169c79a28513a78c967316fbc8bf17816f", + "reference": "03a60f169c79a28513a78c967316fbc8bf17816f", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "require-dev": { - "symfony/property-access": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/property-access": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5109,7 +5151,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.24" + "source": "https://github.com/symfony/var-exporter/tree/v7.4.0" }, "funding": [ { @@ -5129,20 +5171,20 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2025-09-11T10:15:23+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.18", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5" + "reference": "7bca30dabed7900a08c5ad4f1d6483f881a64d0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", - "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", + "url": "https://api.github.com/repos/symfony/yaml/zipball/7bca30dabed7900a08c5ad4f1d6483f881a64d0f", + "reference": "7bca30dabed7900a08c5ad4f1d6483f881a64d0f", "shasum": "" }, "require": { @@ -5185,7 +5227,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.18" + "source": "https://github.com/symfony/yaml/tree/v6.4.34" }, "funding": [ { @@ -5196,12 +5238,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-01-07T09:44:41+00:00" + "time": "2026-02-06T18:32:11+00:00" }, { "name": "t3docs/console-command", @@ -5299,16 +5345,16 @@ }, { "name": "twig/twig", - "version": "v3.20.0", + "version": "v3.23.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "3468920399451a384bef53cf7996965f7cd40183" + "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/3468920399451a384bef53cf7996965f7cd40183", - "reference": "3468920399451a384bef53cf7996965f7cd40183", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9", + "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9", "shasum": "" }, "require": { @@ -5362,7 +5408,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.20.0" + "source": "https://github.com/twigphp/Twig/tree/v3.23.0" }, "funding": [ { @@ -5374,7 +5420,7 @@ "type": "tidelift" } ], - "time": "2025-02-13T08:34:43+00:00" + "time": "2026-01-23T21:00:41+00:00" }, { "name": "webmozart/assert", @@ -6353,16 +6399,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "6.6.4", + "version": "v6.7.2", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "2eeb75d21cf73211335888e7f5e6fd7440723ec7" + "reference": "6fea66c7204683af437864e7c4e7abf383d14bc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/2eeb75d21cf73211335888e7f5e6fd7440723ec7", - "reference": "2eeb75d21cf73211335888e7f5e6fd7440723ec7", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/6fea66c7204683af437864e7c4e7abf383d14bc0", + "reference": "6fea66c7204683af437864e7c4e7abf383d14bc0", "shasum": "" }, "require": { @@ -6422,9 +6468,9 @@ ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/6.6.4" + "source": "https://github.com/jsonrainbow/json-schema/tree/v6.7.2" }, - "time": "2025-12-19T15:01:32+00:00" + "time": "2026-02-15T15:06:22+00:00" }, { "name": "localheinz/diff", @@ -6556,16 +6602,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.0", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -6604,7 +6650,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -6612,20 +6658,20 @@ "type": "tidelift" } ], - "time": "2025-02-12T12:17:51+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nikic/php-parser", - "version": "v5.4.0", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "447a020a1f875a434d62f2a401f53b82a396e494" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", - "reference": "447a020a1f875a434d62f2a401f53b82a396e494", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { @@ -6644,7 +6690,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -6668,9 +6714,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2024-12-30T11:07:19+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "phar-io/manifest", @@ -6840,11 +6886,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.39", + "version": "2.1.40", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c6f73a2af4cbcd99c931d0fb8f08548cc0fa8224", - "reference": "c6f73a2af4cbcd99c931d0fb8f08548cc0fa8224", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b", + "reference": "9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b", "shasum": "" }, "require": { @@ -6889,7 +6935,7 @@ "type": "github" } ], - "time": "2026-02-11T14:48:56+00:00" + "time": "2026-02-23T15:04:35+00:00" }, { "name": "phpstan/phpstan-strict-rules", @@ -7265,16 +7311,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.45", + "version": "10.5.63", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bd68a781d8e30348bc297449f5234b3458267ae8" + "reference": "33198268dad71e926626b618f3ec3966661e4d90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bd68a781d8e30348bc297449f5234b3458267ae8", - "reference": "bd68a781d8e30348bc297449f5234b3458267ae8", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/33198268dad71e926626b618f3ec3966661e4d90", + "reference": "33198268dad71e926626b618f3ec3966661e4d90", "shasum": "" }, "require": { @@ -7284,7 +7330,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", + "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.1", @@ -7295,13 +7341,13 @@ "phpunit/php-timer": "^6.0.0", "sebastian/cli-parser": "^2.0.1", "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.3", + "sebastian/comparator": "^5.0.5", "sebastian/diff": "^5.1.1", "sebastian/environment": "^6.1.0", - "sebastian/exporter": "^5.1.2", + "sebastian/exporter": "^5.1.4", "sebastian/global-state": "^6.0.2", "sebastian/object-enumerator": "^5.0.0", - "sebastian/recursion-context": "^5.0.0", + "sebastian/recursion-context": "^5.0.1", "sebastian/type": "^4.0.0", "sebastian/version": "^4.0.1" }, @@ -7346,7 +7392,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.45" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.63" }, "funding": [ { @@ -7357,12 +7403,20 @@ "url": "https://github.com/sebastianbergmann", "type": "github" }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", "type": "tidelift" } ], - "time": "2025-02-06T16:08:12+00:00" + "time": "2026-01-27T05:48:37+00:00" }, { "name": "react/child-process", @@ -7609,16 +7663,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.3", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" + "reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55dfef806eb7dfeb6e7a6935601fef866f8ca48d", + "reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d", "shasum": "" }, "require": { @@ -7674,15 +7728,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.5" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2024-10-18T14:56:07+00:00" + "time": "2026-01-24T09:25:16+00:00" }, { "name": "sebastian/complexity", @@ -7875,16 +7941,16 @@ }, { "name": "sebastian/exporter", - "version": "5.1.2", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf" + "reference": "0735b90f4da94969541dac1da743446e276defa6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0735b90f4da94969541dac1da743446e276defa6", + "reference": "0735b90f4da94969541dac1da743446e276defa6", "shasum": "" }, "require": { @@ -7893,7 +7959,7 @@ "sebastian/recursion-context": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -7941,15 +8007,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.4" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T07:17:12+00:00" + "time": "2025-09-24T06:09:11+00:00" }, { "name": "sebastian/global-state", @@ -8185,23 +8263,23 @@ }, { "name": "sebastian/recursion-context", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/47e34210757a2f37a97dcd207d032e1b01e64c7a", + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -8236,15 +8314,28 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T07:05:40+00:00" + "time": "2025-08-10T07:50:56+00:00" }, { "name": "sebastian/type", @@ -8357,20 +8448,20 @@ }, { "name": "symfony/options-resolver", - "version": "v6.4.30", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "eeaa8cabe54c7b3516938c72a4a161c0cc80a34f" + "reference": "b38026df55197f9e39a44f3215788edf83187b80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/eeaa8cabe54c7b3516938c72a4a161c0cc80a34f", - "reference": "eeaa8cabe54c7b3516938c72a4a161c0cc80a34f", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b38026df55197f9e39a44f3215788edf83187b80", + "reference": "b38026df55197f9e39a44f3215788edf83187b80", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "type": "library", @@ -8404,7 +8495,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.4.30" + "source": "https://github.com/symfony/options-resolver/tree/v7.4.0" }, "funding": [ { @@ -8424,24 +8515,24 @@ "type": "tidelift" } ], - "time": "2025-11-12T13:06:53+00:00" + "time": "2025-11-12T15:39:26+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.4.24", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "b67e94e06a05d9572c2fa354483b3e13e3cb1898" + "reference": "8a24af0a2e8a872fb745047180649b8418303084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b67e94e06a05d9572c2fa354483b3e13e3cb1898", - "reference": "b67e94e06a05d9572c2fa354483b3e13e3cb1898", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/8a24af0a2e8a872fb745047180649b8418303084", + "reference": "8a24af0a2e8a872fb745047180649b8418303084", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -8470,7 +8561,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.4.24" + "source": "https://github.com/symfony/stopwatch/tree/v7.4.0" }, "funding": [ { @@ -8490,7 +8581,7 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2025-08-04T07:05:15+00:00" }, { "name": "symplify/monorepo-builder", @@ -8603,16 +8694,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -8641,7 +8732,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -8649,7 +8740,7 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" } ], "aliases": [], @@ -8658,14 +8749,14 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^8.1", + "php": "^8.2", "ext-curl": "*", "ext-dom": "*", "ext-libxml": "*" }, "platform-dev": {}, "platform-overrides": { - "php": "8.1.27" + "php": "8.2.28" }, "plugin-api-version": "2.9.0" } diff --git a/packages/typo3-api/composer.json b/packages/typo3-api/composer.json index 215f642b4..d471ef329 100644 --- a/packages/typo3-api/composer.json +++ b/packages/typo3-api/composer.json @@ -4,6 +4,6 @@ "type": "library", "license": "MIT", "require": { - "php": "^8.1" + "php": "^8.2" } } diff --git a/packages/typo3-docs-theme/composer.json b/packages/typo3-docs-theme/composer.json index b19e4e223..a0188adc2 100644 --- a/packages/typo3-docs-theme/composer.json +++ b/packages/typo3-docs-theme/composer.json @@ -10,7 +10,9 @@ } }, "require": { + "php": "^8.2", "ext-curl": "*", + "ext-dom": "*", "brotkrueml/twig-codehighlight": "^1.0", "phpdocumentor/guides-graphs": "^1.0", "phpdocumentor/guides-theme-bootstrap": "^1.7", diff --git a/packages/typo3-guides-cli/composer.json b/packages/typo3-guides-cli/composer.json index a1e28749a..7af4bed0f 100644 --- a/packages/typo3-guides-cli/composer.json +++ b/packages/typo3-guides-cli/composer.json @@ -10,8 +10,10 @@ } }, "require": { + "php": "^8.2", "ext-dom": "*", "ext-libxml": "*", + "ext-simplexml": "*", "t3docs/typo3-version-handling": "self.version" }, "bin": [ diff --git a/packages/typo3-guides-extension/composer.json b/packages/typo3-guides-extension/composer.json index 658c4b7a0..7c5ed7d3f 100644 --- a/packages/typo3-guides-extension/composer.json +++ b/packages/typo3-guides-extension/composer.json @@ -9,6 +9,7 @@ } }, "require": { + "php": "^8.2", "phpdocumentor/guides-cli": "^1.9", "symfony/clock": "^6.4", "t3docs/guides-php-domain": "^1.0" diff --git a/packages/typo3-version-handling/composer.json b/packages/typo3-version-handling/composer.json index 72e9b1afd..18c8bce88 100644 --- a/packages/typo3-version-handling/composer.json +++ b/packages/typo3-version-handling/composer.json @@ -7,5 +7,9 @@ "psr-4": { "T3Docs\\VersionHandling\\": "src/" } + }, + "require": { + "php": "^8.2", + "ext-curl": "*" } } diff --git a/phpstan.neon b/phpstan.neon index 86f7c36ef..857ae72dc 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,7 +1,7 @@ includes: - phpstan-baseline.neon parameters: - phpVersion: 80100 + phpVersion: 80200 level: max strictRules: allRules: false diff --git a/tests/Integration/tests/admonitions/expected/index.html b/tests/Integration/tests/admonitions/expected/index.html index 0779cc284..737a5fd45 100644 --- a/tests/Integration/tests/admonitions/expected/index.html +++ b/tests/Integration/tests/admonitions/expected/index.html @@ -48,6 +48,8 @@

Tip

Hint

+

One line hint

+
diff --git a/tests/Integration/tests/markdown/md-admonitions/expected/README.html b/tests/Integration/tests/markdown/md-admonitions/expected/README.html index 22aee3b3c..86a05e9e8 100644 --- a/tests/Integration/tests/markdown/md-admonitions/expected/README.html +++ b/tests/Integration/tests/markdown/md-admonitions/expected/README.html @@ -5,7 +5,7 @@

MarkDown admonitions

Note

- Image and screenshot files should be placed within Images/MyGuidesFileName/ where MyGuidesFileName is your guide's filename without the final .md. +

Image and screenshot files should be placed within Images/MyGuidesFileName/ where MyGuidesFileName is your guide's filename without the final .md.

diff --git a/tests/Integration/tests/markdown/readme/expected/logs/warning.log b/tests/Integration/tests/markdown/readme/expected/logs/warning.log new file mode 100644 index 000000000..413d21935 --- /dev/null +++ b/tests/Integration/tests/markdown/readme/expected/logs/warning.log @@ -0,0 +1 @@ +Language "pseudocode" is not available to highlight code